calvin.goh
/ aam · 03 / sports-season-churn
← All projects
Gartner Analytics Ascendancy Model · stage 03 of 04 · on Sooka
01
Descriptive
what's happening?
02
Diagnostic
why is it happening?
03 · YOU ARE HERE
Predictive
what will happen?
04
Prescriptive
what should we do?
Predictive · what will happenSooka · freemium → VIPSports-season cyclesTelco bundle exposure

A churn forecast that knows when the football stops.

Sports OTT lives or dies on fixtures. A subscriber who joined for matchweek 32 has a different shelf-life than one who joined in October — and a flat retention model treats them the same. This forecast layers the fixture calendar, key-match flags, telco bundle expiries and Ramadan overlap onto the trial-to-VIP cohort, so retention numbers reflect the season the subscribers actually live in.

Mar retention vs naive
−12pp
6 month season-cycle backtest
Calendar signals fused
4
Fixtures · keymatch · bundle · Ramadan
Bundle subs at risk
11.4k
Celcom · Maxis Q1 expiry window
Forecast horizon
M+0..6
Refit weekly · cohort by join-month
01 · PROBLEM
Flat retention models lie about sports

A linear churn curve assumes every month is equal. In sports OTT they are not. The trial cohort that joined for Liverpool–Utd does not behave like the cohort that joined in pre-season — and a single retention number averages them into uselessness.

02 · APPROACH
Fold the calendar into the cohort

For every join-month cohort, build a feature vector: fixture density over the next 90 days, count of top-6 derbies, telco bundle overlap, Ramadan overlap, key tournaments. Refit a survival model per segment, not a global one.

03 · RESULT
A March cliff you can see in January

Marketing buys the offseason media in advance, not after retention has already crashed. Bundle teams renegotiate Celcom and Maxis windows knowing exactly which weeks are exposed. Programming pulls forward Euros marketing into March.

// THE FORECAST · TRIAL-TO-VIP RETENTION · NEXT 6 MONTHS

The naive line says climb. The fixture list says cliff.

50%60%70%FORECAST →AprMayJunJulAugSepOctNovDecJanFebMarAprMayJunFIXTURES/WKSEASON CLIFF · MAR−12pp retentionEPL · MW 32→38OFFSEASONEPL · NEW SEASONEPL ENDSEUROS
Actuals · trial-to-VIP %Naive forecastSeason-aware forecast80% confidence bandEPL fixtures/week
// LIVE RUN

Score one cohort yourself.

Pick a cohort dossier — or paste your own (4 KB cap) — and watch the agent score 6-month churn, name the dominant driver, recommend one retention play, and surface the calendar signals that drive the score. Live model call. Cached replay if the rate-limit fires.

pick a fixture_
or

waiting for verification token…

~/demo/sports-season-churn.log
idle · waiting for input
model_
pick a fixture, then press [ run demo ].
01 · cohortrisk tier
waiting for run…
02 · forecast6-month churn
waiting for run…
03 · retention playsingle highest-leverage
waiting for run…
── churn scorer log ──
no log entries yet
// THE SIGNALS · CLICK TO INSPECT

What the season layer actually reads.

SIGNAL · EPL FIXTURE DENSITY
season trough · Mar 26
0.6/wk

When matches per week fall below 1.5, freemium-to-VIP retention drops 8–12pp within 3 weeks. The trial cohorts joining for end-of-season fixtures churn through the dry month.

COHORTS · MOST EXPOSED THIS WINDOW
Trial · joined matchweek 32–38
Joined for end-of-EPL · no fixtures Mar 18→Apr 8
14.2k subsMar conversion−18pp
Bundle · Celcom Postpaid 5G
Bundled access ending · low intrinsic VIP intent
6.8k subsMar 31 expiry−11pp
Bundle · Maxis Hotlink Football
Football-themed bundle · season-end correlation
4.6k subsApr 15 expiry−9pp
Trial · keymatch-driven (top-6)
Tournament tailwind · Euros pre-marketing lifts intent
3.1k subsMar conversion+4pp
// HOW IT RUNS · WEEKLY

From join-month cohort to a calendar-aware number.

COHORT
Group trial subs by join-month
Last 18 months · rolling
ENRICH
Fixture · keymatch bundle · Ramadan
Per-cohort calendar vector
FIT
Survival per cohort lifelines · Python
Refit weekly · backtest
NARRATE
GPT layer why this cohort, this month
For growth + programming
DELIVER
Tableau · Slack weekly digest
Two numbers + the gap
Predicting accurately is good. Acting on it is better. The final stage is prescriptive — closing the loop on the real revenue side.
NEXT IN THE MODEL →
Prescriptive
Subscriber next-best-action · Sooka