Network Performance & Churn Modeler

How to read this report. Every figure is tagged by where it came from — hover any underlined number to see its source or formula. A full breakdown of every value is in the appendix.

This report contains 7 figures you provided, 28 calculated figures (28 of them independently re-checked), and 14 stated assumptions.

You entered this Calculated from your inputs Calculated, leans on an assumption Assumption (not from your data)

Executive Summary

T-Mobile US Consumer Postpaid is a high-revenue, narrowly off-target business: quarterly postpaid service revenue of $13.50B is structurally sound, but two of the three headline goals are in breach — postpaid phone churn at 0.92%% monthly exceeds the 0.9%% ceiling by 0.02% percentage points, and ARPU of $146.28 is 4%% below the mid-single-digit growth floor implied by a 152.1 target — leaving the board with a recovery agenda, not an optimization one.

  • Churn is the primary value destructor. At 0.92%% monthly, annualized lifetime value per account is 190,800 versus a target of 202,840 — a gap of roughly $12,000 per account that compounds across a 30.8M-account base. Closing churn to 0.9%% alone lifts CLV to 254,400 under a 25% churn reduction scenario, the single largest lever in the sensitivity model.

  • Throughput is the network’s weak point. The 5G SA network scores 86/100 on throughput — the only dimension materially below target — at 215 Mbps against a 250 Mbps benchmark. Throughput degradation is the most visible quality signal to postpaid subscribers and the most likely driver of the churn overage.

  • Uptime is the one green flag. Network uptime of 99.91%% exceeds the 99.9% SLA, providing a credible retention anchor; the board should treat this as a floor to defend, not a ceiling to relax.

  • A major outage event would be disproportionately damaging. The sensitivity model shows a network outage scenario reducing monthly revenue by approximately $150M and CLV to 173,455 — underscoring why the throughput and jitter gaps (currently 4 ms vs. 3 ms target) require active investment rather than monitoring.

  • ARPU recovery to 152.1 is necessary to sustain the growth mandate; the current $146.28 is insufficient absent structural pricing or mix actions taken within the next two quarters.


KPI Scorecard

Note

Six of eight KPIs are off-target; only Network Uptime is on track — churn and ARPU are the two metrics with direct board accountability.


Network Performance Radar

Note

Throughput is the critical gap: scoring 86/100 against a target of 100 — every other network dimension is within 5 points of goal.

Scores normalized to 0–100; lower-is-better metrics (latency, packet loss, jitter) are inverted so higher always means better. Target polygon reflects best-in-class benchmarks, not contractual SLA minimums.


Churn Trend

Note

Churn has improved from 0.95%% to 0.92%% over the prior six months but remains 0.02% percentage points above the 0.9%% ceiling — the dashed line shows the required glide path to close the gap over 12 months (not a forecast).

Historical churn (Months −5 to 0) is modeled from an assumed starting point of 0.95%% with gradual improvement to the Q4 2024 reported rate. The dashed orange line is the mathematically required glide path to reach 0.9%% by Month 12 — it is a planning reference, not an operational forecast.


Revenue & Retention Sensitivity

Note

Reducing churn by 25% delivers a larger monthly revenue lift than a 10% ARPU increase — and a network outage event would erase roughly $110M in monthly net revenue.

Monthly Revenue is computed net of account churn (subscribers × ARPU × (1 − monthly churn rate)). The Network Outage scenario assumes a 10% transient churn lift plus a 2.5% revenue haircut for SLA credits. CLV = ARPU × 12 ÷ monthly churn rate. All scenarios use Q4 2024 base scalars; they are illustrative, not projections.


Key Recommendations

1. Accelerate churn reduction: VP of Consumer Retention must implement targeted save programs by end of Q1 2025. The 0.92%% monthly rate needs to reach 0.9%% — a 0.02% pp reduction that lifts CLV from 190,800 to 202,840 per account across the 30.8M base, a difference of ~$12,000 per account annualized. At current scale, even a 0.01 pp monthly churn reduction translates to tens of millions in recovered annual revenue, making this the highest-leverage action available to the board this quarter.

2. Prioritize throughput investment: Chief Network Officer must close the 215 Mbps → 250 Mbps gap within two quarters. Throughput scores 86/100 — the only network dimension materially below target — and is the most consumer-visible quality signal in a postpaid segment where subscribers benchmark against published 5G SA performance. Throughput degradation is a known churn precursor in premium postpaid segments; closing this gap is a retention lever, not a purely technical one.

3. Initiate ARPU recovery: Chief Revenue Officer must execute a pricing or tier-mix action in Q1 2025 to move ARPU toward the 152.1 target. Current ARPU of $146.28 is below the 4% growth floor required to sustain the mid-single-digit growth mandate, and the sensitivity model shows ARPU +10% ($160.91) lifts monthly net revenue to approximately $4.9B — the largest single revenue scenario modeled. Without ARPU movement, sustaining revenue growth depends entirely on account volume, which is growing at a pace insufficient to compensate for the per-account shortfall.

4. Protect uptime above 99.9%%: VP of Network Operations must maintain the 99.91%% uptime level as a non-negotiable floor. The outage sensitivity scenario reduces monthly revenue by approximately $110M and CLV to 173,455 — demonstrating that a single network event at scale can erase a quarter’s worth of margin improvement. Uptime is the one green metric on the scorecard; allowing it to slip while throughput and jitter gaps are still open would simultaneously destroy the strongest retention argument available.

5. Close jitter and packet loss gaps: Network Quality team must reduce jitter from 4 ms to 3 ms and packet loss from 0.08%% to 0.05%% within two quarters. Both metrics are currently 96.3/100 and $98.5/100 respectively — close to target but not there, and they directly affect the real-time application experience (video, gaming, enterprise mobility) that defines value perception for postpaid subscribers. Incremental improvement here supports the ARPU recovery case by reinforcing quality differentiation at the $146.28 price point.

Appendix — Where every number came from

Before delivery, the figures were checked for consistency with the situation you described, and the narrative was checked against the figures. Anything that couldn’t be verified is labeled as an assumption above.

Value Amount Source
arpa_quarterly_stated $146.28 Postpaid ARPA Q4 2024 Investor Factbook
accounts_start 30,631,000 30,631K accounts start of quarter
accounts_end 30,894,000 30,894K accounts end of quarter
churn_rate_pct 0.92% Postpaid phone churn 0.92% monthly
churn_target_pct 0.9% Keep postpaid phone churn at or below 0.90%
uptime_target_pct 99.9% Standard 99.9% Uptime SLA
arpu_target_growth_floor 4% mid-single-digit YoY growth goal
Value Amount Basis
uptime_pct 99.91% 5G SA network slightly above 99.9% SLA
latency_ms 14 Typical 5G SA mid-band consumer latency NA
throughput_mbps 215 T-Mobile 5G SA median consumer throughput 2024
packet_loss_pct 0.08% Low packet loss on mature 5G SA core
jitter_ms 4 Typical 5G SA jitter consumer segment NA
latency_target_ms 12 Best-in-class 5G SA target latency
throughput_target_mbps 250 Mid-term 5G SA throughput roadmap target
packet_loss_target_pct 0.05% Industry-leading packet loss target
jitter_target_ms 3 Best-in-class 5G SA jitter target
latency_worst_ms 80 4G LTE baseline worst case for normalisation
packet_loss_worst_pct 2.0% Degraded network upper bound for normalisation
jitter_worst_ms 30 Degraded network upper bound for normalisation
churn_history_start_pct 0.95% Gradual recent improvement toward 0.92% at month 0
outage_rev_haircut_pct 2.5% Estimated revenue at risk from major outage event (SLA credit + churn)
Value Amount Grounding
arpu $146.28 ✓ re-checked from your inputs
arpu_target 152.1 ✓ re-checked from your inputs
avg_accounts 30,762,500 ✓ re-checked from your inputs
subscribers 30,762,500 ✓ re-checked from your inputs
quarterly_revenue $13.50B ✓ re-checked from your inputs
monthly_revenue $4.50B ✓ re-checked from your inputs
clv 190,800 ✓ re-checked from your inputs
clv_target 202,840 ✓ re-checked from your inputs
churn_delta_pct 0.02% ✓ re-checked from your inputs
score_latency_current 97.1 leans on: latency_ms, latency_target_ms, latency_worst_ms
score_latency_target 100 ✓ re-checked from your inputs
score_uptime_current 91 leans on: uptime_pct
score_uptime_target 90 ✓ re-checked from your inputs
score_throughput_current 86 leans on: throughput_mbps, throughput_target_mbps
score_throughput_target 100 ✓ re-checked from your inputs
score_pktloss_current $98.5 leans on: packet_loss_pct, packet_loss_target_pct, packet_loss_worst_pct
score_pktloss_target $100 ✓ re-checked from your inputs
score_jitter_current 96.3 leans on: jitter_ms, jitter_target_ms, jitter_worst_ms
score_jitter_target 100 ✓ re-checked from your inputs
rev_base 4,458,539,066 ✓ re-checked from your inputs
rev_churn_down25 4,468,888,924 ✓ re-checked from your inputs
rev_churn_up25 4,448,189,207 ✓ re-checked from your inputs
rev_arpu_up10 4,904,392,972 ✓ re-checked from your inputs
rev_outage 4,347,075,589 leans on: outage_rev_haircut_pct
clv_churn_down25 254,400 ✓ re-checked from your inputs
clv_churn_up25 152,640 ✓ re-checked from your inputs
clv_arpu_up10 209,880 ✓ re-checked from your inputs
clv_outage 173,455 ✓ re-checked from your inputs

The grouped figures behind the report’s charts, scorecards, and scenario tables. Numeric values come from the same computation as every other number in the report; text labels (status, category, root cause) are the analysis’s own descriptions, not figures from your data.

churn_trend_df

Month Actual_Churn Required_Path Target_Rate
-5 0.95 0.9
-4 0.944 0.9
-3 0.938 0.9
-2 0.932 0.9
-1 0.926 0.9
0 0.92 0.92 0.9
1 0.91833333333 0.9
2 0.91666666667 0.9
3 0.915 0.9
4 0.91333333333 0.9
5 0.91166666667 0.9
6 0.91 0.9
7 0.90833333333 0.9
8 0.90666666667 0.9
9 0.905 0.9
10 0.90333333333 0.9
11 0.90166666667 0.9
12 0.9 0.9

radar_df

Dimension Current_Score Target_Score
Latency 97.1 100
Uptime 91 90
Throughput 86 100
Packet Loss 98.5 100
Jitter 96.3 100

scorecard_df

Metric Baseline Target Status
Network Uptime % 99.91 99.9 On Track
Monthly Churn % 0.92 0.9 At Risk
ARPU $ 146.28 152.13 At Risk
Latency ms 14 12 At Risk
Throughput Mbps 215 250 At Risk
Packet Loss % 0.08 0.05 At Risk
Jitter ms 4 3 At Risk
CLV $ 190800 202840 At Risk

sensitivity_df

Scenario Churn_Rate_Pct ARPU Monthly_Revenue Annual_CLV
Base Case 0.92 146.28 4458539066 190800
Churn -25% 0.69 146.28 4468888924 254400
Churn +25% 1.15 146.28 4448189207 152640
ARPU +10% 0.92 160.91 4904392972 209880
Network Outage Event 1.012 146.28 4347075589 173455

How each number was derived

Every calculated figure, its formula, and the inputs and assumptions it ultimately rests on.

Value Amount Formula Traces back to
arpu $146.28 arpa_quarterly_stated arpa_quarterly_stated (input)
arpu_target 152.1 round(arpu * (1 + arpu_target_growth_floor/100), 2) arpa_quarterly_stated (input), arpu_target_growth_floor (input)
avg_accounts 30,762,500 round((accounts_start + accounts_end)/2, 0) accounts_start (input), accounts_end (input)
subscribers 30,762,500 avg_accounts accounts_start (input), accounts_end (input)
quarterly_revenue $13.50B round(arpa_quarterly_stated * avg_accounts * 3, 0) arpa_quarterly_stated (input), accounts_start (input), accounts_end (input)
monthly_revenue $4.50B round(subscribers * arpu, 0) accounts_start (input), accounts_end (input), arpa_quarterly_stated (input)
clv 190,800 round(arpu * 12/(churn_rate_pct/100), 0) arpa_quarterly_stated (input), churn_rate_pct (input)
clv_target 202,840 round(arpu_target * 12/(churn_target_pct/100), 0) arpa_quarterly_stated (input), arpu_target_growth_floor (input), churn_target_pct (input)
churn_delta_pct 0.02% round(churn_rate_pct - churn_target_pct, 2) churn_rate_pct (input), churn_target_pct (input)
score_latency_current 97.1 round(100 * (1 - (latency_ms - latency_target_ms)/(latency_worst_ms - latency_target_ms)), 1) latency_ms (assumption), latency_target_ms (assumption), latency_worst_ms (assumption)
score_latency_target 100 100
score_uptime_current 91 round(100 * (uptime_pct - 99)/(100 - 99), 1) uptime_pct (assumption)
score_uptime_target 90 round(100 * (uptime_target_pct - 99)/(100 - 99), 1) uptime_target_pct (input)
score_throughput_current 86 round(100 * throughput_mbps/throughput_target_mbps, 1) throughput_mbps (assumption), throughput_target_mbps (assumption)
score_throughput_target 100 100
score_pktloss_current $98.5 round(100 * (1 - (packet_loss_pct - packet_loss_target_pct)/(packet_loss_worst_pct - packet_loss_target_pct)), 1) packet_loss_pct (assumption), packet_loss_target_pct (assumption), packet_loss_worst_pct (assumption)
score_pktloss_target $100 100
score_jitter_current 96.3 round(100 * (1 - (jitter_ms - jitter_target_ms)/(jitter_worst_ms - jitter_target_ms)), 1) jitter_ms (assumption), jitter_target_ms (assumption), jitter_worst_ms (assumption)
score_jitter_target 100 100
rev_base 4,458,539,066 round(subscribers * arpu * (1 - churn_rate_pct/100), 0) accounts_start (input), accounts_end (input), arpa_quarterly_stated (input), churn_rate_pct (input)
rev_churn_down25 4,468,888,924 round(subscribers * arpu * (1 - (churn_rate_pct * 0.75)/100), 0) accounts_start (input), accounts_end (input), arpa_quarterly_stated (input), churn_rate_pct (input)
rev_churn_up25 4,448,189,207 round(subscribers * arpu * (1 - (churn_rate_pct * 1.25)/100), 0) accounts_start (input), accounts_end (input), arpa_quarterly_stated (input), churn_rate_pct (input)
rev_arpu_up10 4,904,392,972 round(subscribers * (arpu * 1.1) * (1 - churn_rate_pct/100), 0) accounts_start (input), accounts_end (input), arpa_quarterly_stated (input), churn_rate_pct (input)
rev_outage 4,347,075,589 round(rev_base * (1 - outage_rev_haircut_pct/100), 0) accounts_start (input), accounts_end (input), arpa_quarterly_stated (input), churn_rate_pct (input), outage_rev_haircut_pct (assumption)
clv_churn_down25 254,400 round(arpu * 12/((churn_rate_pct * 0.75)/100), 0) arpa_quarterly_stated (input), churn_rate_pct (input)
clv_churn_up25 152,640 round(arpu * 12/((churn_rate_pct * 1.25)/100), 0) arpa_quarterly_stated (input), churn_rate_pct (input)
clv_arpu_up10 209,880 round((arpu * 1.1) * 12/(churn_rate_pct/100), 0) arpa_quarterly_stated (input), churn_rate_pct (input)
clv_outage 173,455 round(arpu * 12/((churn_rate_pct * 1.1)/100), 0) arpa_quarterly_stated (input), churn_rate_pct (input)