Flagship case study · Customer & commercial analytics

Subscription Churn & Retention Decision System

Who should a retention team contact, and what must be true for the intervention to pay? An independent retrospective study of KKBox data connects customer behaviour, risk ranking and commercial thresholds to a practical validation decision.

SQL / DuckDBPythonPower BITemporal validationRetention economics
Operating recommendation

Validate the data and economics before funding a controlled pilot.

The model concentrates historical churn in a limited contact list. However, refreshed source records change the commercial conclusion. Risk ranking alone cannot establish whether an offer will cause a customer to renew.

4.38 millioncustomer/date feature rows across seven scoring dates
680,401customers in the February 2017 final test
66.13%of reconstructed churn captured at 10% contact capacity
16.27–24.94%conditional save rate needed to break even across source cases
The analytical problem

Historical events need a defensible timeline.

I reconstructed subscription cohorts from transactions, combined them with listening behaviour and built 38 predictors using events strictly before each scoring date. A seven-day intervention lead and a 30-day renewal-gap outcome keep the targeting question explicit.

The workflow audits 392 million original listening records, tests duplicate and time-boundary handling, and separates future outcomes from past features. Backdated records in a refreshed release are tested as an alternative label source.

Predictive evidence

Strong concentration of risk, with clear limits.

The selected logistic model combines transaction and listening features. At 10% capacity, 68,040 contacts contain 25,155 of the 38,037 reconstructed churners.

Final-test measureResultInterpretation
Precision at 10%36.97%Historical churn among selected customers
Recall at 10%66.13%Share of all reconstructed churn captured
Lift at 10%6.61×Concentration relative to the 5.59% churn rate
Average precision0.508Compared with 0.488 for transactions only
AUROC0.866Overall ranking across the final cohort

Recall has a conditional 95% customer-bootstrap interval of 65.78–66.59%. This describes the frozen model and observed month; it does not cover all future-market or source-version uncertainty. Model evidence and limitations.

Commercial judgement

A source update can reverse the funding decision.

On the common population, a fixed list of 67,930 contacts is assessed under both label sources. With assumed retained contribution of 60 generic currency units (CU) and contact/offer cost of 3.50 CU per customer, the required conditional save rate rises from 16.27% to 24.94%.

Assuming 20% of would-be churners are saved gives +54,445 CU under baseline labels and −47,087 CU under refreshed labels. These are scenario estimates, not realised profit or measured treatment effects.

Commercial assumptions, capacity comparisons and sensitivity.

Power BI executive report

Six pages connect evidence to a decision.

The report covers cohorts, model reliability, commercial sensitivity, a guarded scenario explorer and experiment gates. Select an image to inspect the report at full size.

Download the Power BI project and handoff. The public report contains aggregate evidence only.

Executive overview: evidence, capacity and the validation decision.
Executive overview: evidence, capacity and the validation decision.
Cohorts and segments: renewal behaviour and coverage limits.
Cohorts and segments: renewal behaviour and coverage limits.
Model reliability: temporal evaluation, calibration and source sensitivity.
Model reliability: temporal evaluation, calibration and source sensitivity.
Commercial sensitivity: assumed economics and break-even requirements.
Commercial sensitivity: assumed economics and break-even requirements.
Scenario explorer: choose one policy and one assumption set.
Scenario explorer: choose one policy and one assumption set.
Selected baseline: 20% conditional saves at matched 10% capacity.
Selected baseline: 20% conditional saves at matched 10% capacity.
Experiment gates: operational validation before a controlled pilot.
Experiment gates: operational validation before a controlled pilot.
Controls and limitations

Make the uncertainty part of the recommendation.

Independent checks reconcile 7,000 sampled labels, 16,100 listening-feature values, 96 model metrics and 5,604 commercial values. Versioned SQL, pinned dependencies, a frozen evaluation plan and a separate final reproduction record make the work inspectable.

Final reproduction and publication record · Proposed experiment

From reproducible evidence to a bounded recommendation.

This portfolio project demonstrates analytical design, data quality, SQL engineering, temporal model evaluation, commercial reasoning and executive communication. It is an independent case study, not work commissioned by KKBox.