Telecom Analytics at Scale: Building Pipelines from CDRs to Predictive Network Healing
A hands-on guide to telecom analytics pipelines, from CDRs and telemetry to churn models, predictive maintenance, and runbook automation.
Telecom analytics is no longer just a reporting discipline. At scale, it becomes the operating system for network optimization, churn prediction, predictive maintenance, and service assurance. The operators that win in 2026 are the ones that can turn raw CDR, real-time telemetry, and alarm streams into decisions fast enough to prevent customer pain and revenue loss. That means building a pipeline that does not stop at dashboards; it feeds models, triggers runbook automation, and closes the loop with observability. If you are modernizing this stack, it helps to study the broader evolution of data use in telecom, especially how analytics now spans customer behavior, revenue assurance, and network optimization, as outlined in this telecom analytics overview.
This guide is written for telecom engineers, data platform teams, and operations leaders who need a practical blueprint. We will move from ingesting CDRs and telemetry to selecting features for churn and outage models, then operationalizing predictive maintenance with feedback loops and runbook automation. Along the way, we will treat this as an MLOps problem as much as a data problem, because predictive systems fail when they are not observable, governable, and easy to act on. For teams building the surrounding data platform, the ideas in how to build a hybrid search stack for enterprise knowledge bases are surprisingly relevant: telecom analytics pipelines also need indexed, searchable, cross-domain context.
1. What Telecom Analytics Needs to Solve at Scale
From reporting to operational decisioning
Traditional telecom BI answers questions after the fact: how many dropped calls occurred yesterday, which cell sites were busiest last week, or which plans underperformed this quarter. That is useful, but not enough for modern networks where customer churn can rise within hours of repeated packet loss or regional congestion. The real target is operational decisioning: spotting an emerging problem, identifying the likely cause, and taking an action while impact is still local. This is why predictive maintenance and network optimization have become the center of gravity in telecom analytics.
In practice, the analytics stack must handle multiple time scales. CDRs are often batch-oriented and best for behavioral analysis, billing validation, and longer-horizon churn modeling. Telemetry, alarms, and KPI streams are closer to real time and support outage detection, congestion forecasting, and automated remediation. The best teams design for both, then unify them through a shared entity model for subscriber, device, cell, region, and service. That same principle shows up in story-driven dashboards, where the right hierarchy of metrics turns raw data into action.
What breaks when scale increases
At small scale, teams can get away with one warehouse, a few scheduled jobs, and a manually maintained list of critical alarms. At telecom scale, that approach collapses under volume, latency, and schema drift. CDRs can arrive in large daily or hourly batches, telemetry can stream in at sub-minute cadence, and vendor formats differ across network elements. Without discipline, feature definitions diverge, training labels become inconsistent, and model performance degrades quietly.
Another common failure mode is treating network analytics as a pure data science exercise. A churn model that predicts risk but cannot be tied to service incidents, segmentation, or support interactions is hard to act on. Similarly, an outage model that fires but does not map to a runbook with confidence thresholds, escalation paths, and rollback logic can increase operator fatigue. The goal is not to generate more alerts; it is to improve precision in the operating environment, which is a theme echoed in the metrics playbook for moving from AI pilots to an AI operating model.
Why MLOps is part of telecom analytics
Telecom analytics systems are decision pipelines, so they need the same rigor as software delivery pipelines. That means versioned schemas, reproducible training sets, model registries, automated tests, drift detection, approval workflows, and auditable deployments. If you cannot answer which model version triggered a maintenance ticket or why a specific cell was flagged, the system is not production-ready. MLOps is not a separate layer; it is the control plane that makes analytics trustworthy at scale.
For telecom teams also pursuing governed automation across the enterprise, the operating model resembles the patterns in agentic AI in the enterprise: constrained autonomy, clear permissions, human-in-the-loop escalation, and measurable outcomes. That is especially important in networks, where wrong actions can affect availability, revenue, and customer trust.
2. Designing the Data Foundation: CDRs, Telemetry, and Context
CDRs as the behavioral backbone
Call detail records remain one of the most valuable telecom datasets because they encode service usage, mobility patterns, and billing-relevant events. A typical CDR may include subscriber ID, timestamp, originating and terminating cell, call duration, session type, roaming status, data volume, and outcome codes. For churn prediction, CDRs reveal behavioral volatility: fewer sessions, shorter durations, reduced data use, and recurring failures often precede a customer leaving. For revenue assurance, they also help identify missing records, duplicate charges, and improbable usage sequences.
But CDRs are not enough by themselves. They are retrospective and often sparse relative to the operational reality of the network. Their real power comes from joining them with topology, ticketing, and support context. In other words, the unit of analysis should not be just a subscriber-day; it should be a subscriber in the context of a cell, a device, a location, and recent incidents. This is where the pipeline begins to look like the data systems used in operationalizing competitive intelligence and anomaly detection: the strongest signal comes from combining structured events with surrounding context.
Real-time telemetry and service health signals
Telemetry provides the live pulse of the network. Key signals include latency, jitter, packet loss, handover success rate, RSRP/RSRQ, throughput, CPU and memory pressure on network functions, optical link errors, and alarm bursts from hardware or virtualized infrastructure. These measures are especially valuable because they capture degradation before the customer experience becomes visibly poor. A churn model trained only on CDRs may identify risk after the service pattern has already changed; telemetry can surface the network cause earlier.
When building real-time telemetry ingestion, favor event-time processing, watermarks, and late-arriving event handling. Telecom systems routinely see delayed records from edge sites, unstable backhaul, or vendor-specific buffering. If you sort by ingestion time only, you will produce false trends and inaccurate windows. Real-time pipelines should preserve raw events, normalize them into a canonical schema, and then derive windows for operational metrics, model features, and alerting.
Enrichment data: topology, weather, tickets, and inventory
Predictive network healing improves dramatically when you enrich records with outside-the-packet context. Topology tells you which nodes are upstream and downstream of an impacted cell. Ticket data adds the operator’s historical knowledge of recurring faults and resolution patterns. Inventory data reveals hardware age, software version, and maintenance status. In some regions, weather or scheduled events explain load spikes and correlated failures. The better your enrichment layer, the more precise your models and runbooks become.
For teams who need to govern these enrichment sources carefully, the patterns in identity and access for governed industry AI platforms are highly applicable. In telecom analytics, not every team should see every subscriber attribute or operational detail, so role-based access, masking, and auditability are not optional.
3. Pipeline Architecture: From Raw Events to Model-Ready Features
Ingestion patterns that survive telecom scale
A resilient telecom analytics pipeline usually starts with multiple ingestion lanes. Batch ingestion handles CDR files and periodic inventory exports. Stream ingestion handles telemetry, alarms, and event notifications. CDC or API-based ingestion handles support cases, configuration changes, and ticket updates. The objective is to land everything in a raw immutable zone, then normalize downstream with clear data contracts. Do not let operational systems depend directly on brittle source tables or vendor-specific file names.
A practical pattern is bronze/silver/gold layering. Bronze stores raw events with minimal transformation. Silver standardizes schemas, deduplicates, and enriches with reference data. Gold produces business-ready aggregates, features, and model inputs for churn prediction, outage scoring, or maintenance prioritization. This approach reduces accidental coupling and makes reprocessing possible when definitions change. For organizations also modernizing infrastructure, the memory and throughput tradeoffs discussed in architectural responses to memory scarcity translate well to telecom data platforms: design for high cardinality, burstiness, and cost control.
Feature store thinking without overengineering
You do not need a massive platform to benefit from feature store concepts. You do need consistent definitions between training and inference. In telecom, that means a feature such as “7-day dropped-call rate” must be computed identically in offline training, batch scoring, and streaming scoring. Store the logic centrally, version it, and ensure that the point-in-time lookup uses event timestamps, not load timestamps. This prevents leakage and makes postmortems far more reliable.
Some of the most valuable features are simple rolling statistics, counts, and ratios. For example, a cell’s 15-minute packet-loss moving average, a subscriber’s 30-day session count decline, or a device’s repeated attach failure rate can outperform more complex signals. The key is temporal consistency and interpretability, not feature sprawl. Teams sometimes overfocus on advanced modeling and underinvest in feature discipline, but in telecom, feature quality often matters more than model complexity.
Data quality checks that matter in telecom
Quality checks should be operational, not generic. Validate record completeness by source and hour, compare traffic volume against expected baselines, detect duplicate or missing sequence ranges, and flag impossible combinations such as calls with negative durations or telemetry values outside physical bounds. Build checks for join coverage as well, because enrichment gaps can silently destroy model usefulness. If 18 percent of records lose topology context, your outage model may still train, but it will not generalize cleanly.
It helps to apply the same rigor used in enterprise-level research services: do not trust one source, triangulate the evidence, and maintain a traceable chain from raw data to decision. Telecom analytics is a high-stakes domain; you want every feature, label, and alert traceable back to source records and transformation logic.
4. Feature Engineering for Churn Prediction and Outage Models
Churn features: behavior, experience, and relationship signals
Churn prediction works best when you model three layers: behavioral change, service quality, and customer relationship friction. Behavioral features include usage decline, session frequency changes, roaming patterns, top-up cadence, and plan downgrades. Service features include dropped calls, latency spikes, packet loss, and repeated failed handovers. Relationship features include unresolved tickets, complaint volume, call center transfers, and recent discounts or contract changes. These signals are often more predictive together than in isolation.
For example, a postpaid customer whose voice usage remains flat but whose data sessions decline, while also experiencing repeated evening congestion on the same serving cell, is at materially higher churn risk than a customer with one isolated outage. Windowed trend features are especially important: slope over the last 14 or 30 days often captures risk better than a single aggregate. In operational terms, churn is usually not one bad event; it is a pattern of worsening friction. That idea mirrors why retention-focused products, such as the logic in day-1 retention analysis, emphasize early behavior shifts rather than one-off engagement numbers.
Outage and degradation features: precursors and blast radius
Outage models should be built around precursor events, topology, and blast radius. Good features include alarm burst density, node restart frequency, software version changes, abnormal temperature or power readings, elevated error counters, and rapid degradation in one or more adjacent cells. The model should understand not just whether a site is unhealthy, but how far the issue is likely to spread. If a core router is under stress, the impact surface may be regional; if a single radio unit is failing, the blast radius may be localized.
Graph features are valuable here. A site’s upstream dependencies, neighbor-cell health, and shared backhaul relationships often explain correlated failures. If one node’s metric deteriorates and its dependent nodes follow within minutes, the model should elevate confidence. The best telecom teams combine classical time series features with topology-aware signals so they can distinguish isolated noise from network-wide risk. This is one place where techniques from benchmarking complex hardware systems are instructive: the metric matters, but the test context matters just as much.
Labeling strategy and leakage control
Labels are where many telecom ML efforts fail. For churn, define the target window precisely: if a subscriber becomes inactive, ported out, or canceled within the next 30/60/90 days, what counts as churn? Exclude cases where retention actions or plan migrations blur the definition unless those are explicitly part of the business objective. For outages, decide whether the model predicts future incident start, severity escalation, or recovery delay. Each label needs a single operational meaning, or else model evaluation becomes meaningless.
Leakage control is equally important. A feature derived from a ticket opened after the outage begins cannot be used to predict that outage. Likewise, a churn feature that includes post-cancellation billing adjustments is contaminated. Point-in-time feature generation is not a nice-to-have; it is the difference between a model that looks good in a notebook and a model that survives production. The same discipline applies in analytics-heavy fields such as workers’ compensation analytics, where timing and event sequencing can determine whether a model is valid.
5. Model Selection: What Works for Telecom Use Cases
Practical baselines first
For churn prediction, start with logistic regression, gradient-boosted trees, and survival models. These are usually strong baselines, easy to explain, and robust with tabular feature sets. For outage and maintenance forecasting, gradient-boosted trees often perform well for classification, while probabilistic time-to-failure models and anomaly detection can complement them. Deep learning can help when you have very dense temporal and topological data, but it should not replace interpretable baselines unless you can justify the operational complexity.
Do not confuse model sophistication with business value. A well-tuned gradient-boosted model with clean features, calibrated probabilities, and a clear thresholding policy will often outperform a more complex but poorly governed neural network. In telecom, the cost of false positives is real, because every unnecessary dispatch or customer save offer consumes budget and trust. Start with models that your network and customer operations teams can understand and act on.
Sequence and graph models when signal structure matters
When you need to capture temporal sequences of alarms, call behavior, or handoff patterns, sequence models can add value. Recurrent networks and temporal transformers can identify evolving failure signatures or changing customer behavior that fixed windows miss. Graph neural networks can be useful when topology is central, particularly for correlating site dependencies and predicting blast radius. The challenge is not just accuracy but operational fit: these models must be explainable enough for engineers to trust.
One pragmatic pattern is to ensemble a transparent baseline with a more expressive sequence model. If both agree, confidence rises; if they diverge, route the case for human review. That approach often works better than forcing all logic into one “perfect” model. It also improves resilience when source data quality changes, because a simpler model can act as a safety check.
Metrics that align to operations
For churn, AUC alone is not sufficient. Measure precision at the top-K, lift by segment, calibration, and the incremental retention value of interventions. If your retention team can only call 5,000 customers a week, the question is how many true at-risk customers are in that top slice. For outages, use precision, recall, lead time, and mean time to detect or heal. If the model alerts too late, the operational value collapses even if the ROC curve looks good.
When comparing model families, remember that telecom is a cost-sensitive environment. A model that slightly improves recall but floods operations with low-confidence tickets may be worse than a more conservative system. The analytics discipline here resembles moving from AI pilots to an AI operating model: success is not just predictive performance, but measurable impact on the process the model is meant to improve.
6. Predictive Maintenance and Network Healing Workflows
From anomaly detection to probable cause
Predictive maintenance starts with detection, but it must quickly progress to probable cause. A site exhibiting degraded RSRP, rising retransmissions, and repeated alarms may be suffering from radio failure, backhaul impairment, or a configuration regression. The system should score probable causes using historical incident patterns, device age, topology proximity, and recent change events. This lets operators focus on the most likely repair path instead of chasing symptoms.
In a mature setup, detection should be paired with a confidence score and recommended action. For example: “Cell cluster 14 is 0.82 likely to fail within 2 hours due to backhaul saturation; suggested action is to shift traffic and inspect link 3.” That is much more useful than a raw anomaly score. It also becomes the basis for automation, where high-confidence events can trigger scripted mitigations and lower-confidence events create review tasks.
Runbook automation with guardrails
Runbook automation is how predictive models become operational. A runbook can shift traffic, restart a failed function, open a ticket, page the right engineer, or initiate a planned rollback. The key is to build guardrails around every action: confidence thresholds, blast-radius limits, approval gates, and rollback verification. You want the model to accelerate recovery, not create a new failure mode.
The strongest teams use tiered automation. Low-risk issues can be auto-remediated. Medium-risk issues can be proposed to an on-call engineer with evidence and suggested commands. High-risk issues should require explicit approval. This mirrors the design principles behind secure OTA pipelines: automate aggressively where safe, but never at the expense of control and auditability.
Observability for healing loops
Once automation begins, observability becomes non-negotiable. You need to know whether the model fired, which features drove the score, what action was taken, whether the service recovered, and how long it took. Collect before/after metrics around latency, packet loss, error counters, customer complaints, and support ticket closures. This closes the loop from analytics to action and lets you quantify not just accuracy, but operational efficacy.
Telemetry about the automation itself matters too. Track runbook success rate, manual override rate, false escalation rate, and post-action regression incidence. If the model consistently recommends good fixes but the automation layer fails due to permissions or outdated scripts, your system will appear intelligent but deliver poor outcomes. Good observability makes those bottlenecks visible quickly.
7. Operationalizing MLOps for Telecom Analytics
Versioning data, features, and models together
Telecom MLOps should version three things together: the source schema, the feature definitions, and the model artifact. If one changes without the others, reproducibility breaks. Store training data snapshots or pointers to immutable partitions, capture feature code in version control, and register model metadata including training period, label definition, and decision threshold. This makes audits, rollback, and re-training manageable.
CI/CD for telecom models should include unit tests for feature logic, integration tests for joins and time windows, and shadow deployments before full rollout. Do not skip validation on rarely seen conditions such as holiday spikes, weather events, or roaming surges. Model quality in telecom is often seasonal and regional, so production tests should reflect that complexity. For teams already thinking about governed workflows across the stack, the patterns in multi-assistant enterprise workflows are a useful reminder that integration must be both technical and policy-aware.
Drift detection and retraining triggers
Feature drift is common in telecom because customer behavior, device mix, and network configurations change constantly. A plan launch can alter usage distributions, a software upgrade can shift error counters, and a new device family can change handoff patterns. Monitor both data drift and performance drift. If the score distribution changes but outcome quality remains stable, that may be fine; if the precision of your top-K churn list drops, retraining or recalibration may be necessary.
Retraining should be event-driven, not only calendar-driven. Trigger it when drift crosses thresholds, when a major topology change lands, or when a new incident class appears. Also consider per-segment retraining, because the model that works in dense urban areas may not work in rural or enterprise customer segments. The point is to preserve operational relevance, not merely to refresh the model on a schedule.
Feedback loops from operations back into training
Feedback loops are where telecom analytics matures. Every ticket, disposition, customer save outcome, and manual override should flow back into the training corpus. If an engineer labels a predicted outage as a false positive because maintenance was already planned, that label helps improve future routing. If a retention campaign succeeds or fails, that outcome should inform the churn model and the intervention policy. Without feedback loops, the system learns from history only, not from its own actions.
To make feedback usable, standardize incident taxonomies and action outcomes. Free-text notes are helpful, but structured dispositions are what unlock reliable retraining. This same principle is visible in systematic decision frameworks: structured judgment beats ad hoc memory when the goal is repeatable improvement.
8. Comparison Table: Choosing the Right Analytics Pattern
The right implementation depends on latency, explainability, and the operational target. Use the table below to decide where each pattern fits best in your telecom analytics stack.
| Pattern | Best For | Latency | Strengths | Limitations |
|---|---|---|---|---|
| Batch CDR scoring | Churn prediction, revenue assurance | Hourly to daily | Stable, cheap, easy to audit | Misses fast-changing network events |
| Streaming telemetry scoring | Outage detection, congestion alerts | Seconds to minutes | Early warning, operationally timely | Higher complexity, noisy signals |
| Feature store-backed scoring | Consistent online/offline inference | Near real time | Prevents training-serving skew | Requires strong governance |
| Graph-aware model | Blast radius, dependency risk | Minutes | Captures topology effects | Harder to explain and maintain |
| Runbook automation | Self-healing and faster MTTR | Immediate | Turns prediction into action | Needs strict guardrails |
9. A Reference Operating Model for Telecom Predictive Healing
Step 1: Define the decision and the owner
Every predictive use case should begin with a decision statement. For churn, that may be “prioritize the top 2 percent of at-risk subscribers for retention offers.” For predictive maintenance, it may be “flag sites likely to degrade within two hours so NOC engineers can intervene before customer impact.” Assign a single accountable owner for each decision, because analytics without ownership tends to drift into dashboard theater. The model should serve a process with clear economics, not a vague aspiration.
Step 2: Build the minimum viable data contract
Document source systems, field definitions, freshness expectations, join keys, and failure behavior. For CDRs, specify record completeness thresholds and accepted lateness. For telemetry, define event-time windows, deduplication logic, and backfill procedures. If your data contract is weak, every downstream model inherits that fragility. A good contract is the cheapest form of model risk management.
Step 3: Pilot with one region or one fault class
Do not attempt a nationwide self-healing platform on day one. Start with one region, one device family, or one common fault class such as congestion-related degradations. This lets you validate feature quality, alert thresholds, operational response times, and engineer trust. After you prove value, expand gradually with segmentation and playbook refinement. Telecom systems are too consequential for a big-bang deployment.
Pro Tip: If a model cannot explain itself to the engineer who will receive the alert, it is not ready for automated healing. Favor clear features, top reasons, and action-oriented outputs before adding complexity.
10. Common Pitfalls and How to Avoid Them
Overfitting to historical incidents
Networks evolve, vendors change, and customer behavior shifts. If your model is trained too closely on one incident era, it may not generalize. Avoid this by using rolling validation, segment-aware evaluation, and holdout periods that include different traffic patterns. Reassess model relevance after major hardware or software changes.
Ignoring human workflow design
A predictive alert is only useful if it fits the real workflow of NOC, field ops, and customer care. If alerts arrive in the wrong channel, with no context, or at the wrong priority, they will be ignored. Design the handoff from model to operator as carefully as the model itself. This is the difference between assistance and noise.
Skipping observability on the model itself
Many teams observe the network but not the analytics layer. That is a mistake. Observe data freshness, missing feature rates, score distributions, false positives, human overrides, and remediation outcomes. If model drift is invisible, it will appear as a slow decline in trust rather than a measurable change you can fix. As with AI tools for enhancing user experience, the value is not just in the algorithm but in the feedback and instrumentation around it.
11. FAQ
What is the difference between telecom analytics and generic analytics?
Telecom analytics must deal with high-volume event streams, strict latency requirements, topology dependencies, and operational consequences. Generic analytics often focuses on reporting or broad business intelligence, while telecom analytics must support network optimization, churn prediction, and service healing in near real time. It also needs stronger data contracts and richer observability because the same data drives both customer experience and network operations.
Should I start with CDRs or telemetry for predictive models?
Start with the data that matches the decision you want to improve. For churn prediction, CDRs and customer support data are usually the best starting point because they directly reflect behavior. For outage detection and predictive maintenance, telemetry is more valuable because it captures the live health of the network. In practice, the strongest systems combine both.
What features usually matter most for churn prediction?
The most useful churn features typically involve declines in usage, repeated service issues, unresolved complaints, and recent changes in plan or device behavior. Windowed trends are more powerful than single snapshots because churn is usually a pattern, not a single event. You should also segment features by customer type, because enterprise, postpaid, prepaid, and roaming customers often churn for different reasons.
How do I prevent training-serving skew in telecom MLOps?
Use the same feature definitions for offline and online scoring, and calculate them using event time rather than ingestion time. Version your transformation logic, keep raw immutable data, and validate joins and time windows with automated tests. A feature store can help, but the real requirement is consistency and traceability across environments.
When should runbook automation be allowed to act without human approval?
Only for low-risk, well-understood failure modes with strong confidence and clear rollback steps. Examples include benign restarts, minor traffic shifts, or standard ticket creation. Anything with a large blast radius, ambiguous diagnosis, or customer-facing risk should retain human approval until the automation has proven itself under monitored conditions.
How often should telecom models be retrained?
There is no universal schedule, because telecom environments change at different speeds. Retrain when drift appears, after major network changes, when new device classes or plans launch, or when performance drops below acceptable thresholds. In mature systems, retraining is event-driven and validated against operational outcomes rather than a fixed calendar alone.
12. Closing Thoughts: Make Analytics Actionable, Not Decorative
Telecom analytics at scale is about connecting the signal to the action. CDRs tell you how customers behave, telemetry tells you how the network is holding up, and MLOps turns those signals into reproducible decisions. Predictive maintenance and network healing only work when models are embedded in the operational loop, with clear thresholds, guardrails, feedback, and ownership. That is what separates a useful analytics program from a collection of impressive but disconnected reports.
If you are building this capability now, focus on one production-grade path first: define the decision, standardize the data, choose features with temporal discipline, deploy a simple baseline, and wire it into a runbook with observability. Then expand into richer models, more topology awareness, and more sophisticated automation. For teams thinking about the broader modernization journey, the same operating discipline shows up in metrics-driven AI operations, and in the practical architecture choices behind agentic enterprise systems. The lesson is consistent: make the system measurable, governable, and useful to the people who keep the network alive.
Related Reading
- Data Analytics in Telecom: What Actually Works in 2026 - A practical overview of telecom analytics use cases, from customer insights to predictive maintenance.
- How to Build a Hybrid Search Stack for Enterprise Knowledge Bases - Useful patterns for indexing operational context across large, messy data estates.
- Agentic AI in the Enterprise: Practical Architectures IT Teams Can Operate - A strong reference for governed automation and controlled autonomy.
- Designing Story-Driven Dashboards - Learn how to turn raw metrics into decision-ready operational views.
- Identity and Access for Governed Industry AI Platforms - A helpful guide for access control, compliance, and auditability in AI systems.
Related Topics
Maya Chen
Senior Technical Content Strategist
Senior editor and content strategist. Writing about technology, design, and the future of digital media. Follow along for deep dives into the industry's moving parts.
Up Next
More stories handpicked for you
CI/CD for regulated ML: safe model updates and validation patterns for AI-enabled medical devices
Architecting Governed Industry AI Platforms: Engineering Patterns from Energy Use Cases
HIPAA‑grade pipelines for AI-enabled medical devices: architecture, telemetry, and vendor integration
Workload Identity for AI Agents: Authenticating Nonhuman Actors Across Protocols
Cloud security upskilling roadmap for engineering teams: practical labs, certs and KPIs
From Our Network
Trending stories across our publication group