Subscription Churn Analytics

Why members churn

Every time a paid period runs out, a member either renews within 30 days or churns. Across 12,104,158 of those renewal decisions in 2016 to early 2017, 5.1% ended in churn. Members renewing manually churn at 7.5× the rate of members on auto-renew.

Each chart below changes one factor at a time. These are associations, not causes: auto-renewers differ from manual renewers in many ways. The model page tests which factors still predict churn when they are considered together.

Three ways to churn

View SQL ↗

Of all churners, 24% actively cancelled, 52% were on manual renewal and simply didn't renew, and 24% had auto-renew on but the renewal never went through. That last group is likely payment failure, the cheapest churn to win back.

Show data table
MonthChurnersCancelledDidn't renewAuto-renew lapsed
Jan 201647,83810,66719,06318,108
Feb 201651,89211,01421,70719,171
Mar 201654,95511,69326,35116,911
Apr 201643,8599,40727,6126,840
May 201647,2768,11123,59315,572
Jun 201638,2817,42123,8866,974
Jul 201638,3327,31323,0457,974
Aug 201637,7719,08221,5067,183
Sep 201638,16010,82524,1613,174
Oct 201640,47911,49821,8587,123
Nov 201635,19911,01720,6573,525
Dec 201656,93211,69522,14423,093
Jan 201747,89313,92926,0307,934
Feb 201738,33013,70421,7582,868

Churn rate at renewal, by factor

Auto-renew

View SQL ↗

Whether the member's most recent payment was set to renew automatically.

off churns at 20.9% versus 2.8% for on, 7.5× the rate.

Show data table
GroupRenewal decisionsChurn rate
off1,552,34620.86%
on10,551,8122.78%

Cancelled before expiry

View SQL ↗

An explicit cancellation during the paid period. Near-certain churn, so it is also the easiest signal to act on.

yes churns at 77.6% versus 3.9% for no, 19.7× the rate.

Show data table
GroupRenewal decisionsChurn rate
no11,914,2113.94%
yes189,94777.59%

Listening days (last month)

View SQL ↗

Days with any listening in the last full month before the renewal decision.

1-4 days churns at 6.7% versus 4.5% for 15+ days, 1.5× the rate.

Show data table
GroupRenewal decisionsChurn rate
0 days2,609,1164.28%
1-4 days1,207,4236.73%
5-14 days2,561,5006.59%
15+ days5,726,1194.46%

Months since the member's first paid period.

<3 mo churns at 12.8% versus 4.4% for 12+ mo, 2.9× the rate.

Show data table
GroupRenewal decisionsChurn rate
<3 mo1,001,01912.81%
3-5 mo1,341,7994.78%
6-11 mo2,588,6144.20%
12+ mo7,172,7264.41%

Plan length

View SQL ↗

Longer prepaid plans are a commitment; weekly and monthly plans are not.

<=7 days churns at 50.7% versus 4.6% for 30 days, 11.1× the rate.

Show data table
GroupRenewal decisionsChurn rate
<=7 days4,57050.72%
30 days11,840,0154.58%
90 days32,49328.01%
180+ days227,08027.88%

Discount

View SQL ↗

Price paid versus list price on the expiring period.

50%+ off churns at 69.2% versus 5.1% for full price, 13.6× the rate.

Show data table
GroupRenewal decisionsChurn rate
full price12,068,4695.10%
<50% off32,9240.17%
50%+ off2,76569.22%

Returning subscriber

View SQL ↗

Whether this member had churned before and come back.

yes churns at 8.9% versus 4.3% for no, 2.1× the rate.

Show data table
GroupRenewal decisionsChurn rate
no10,025,9164.31%
yes2,078,2428.93%

Checking the churn definition against Kaggle's own code

View SQL ↗

The competition ships the script that produced its labels. Re-implemented in SQL and run on the same transactions, it agrees with this pipeline's churn flag for 99.5% of the 850,952 members whose membership expired in February 2017. A dbt test fails the build if that drops below 99%.

The labels Kaggle actually published agree with that same script only 98.8% of the time, and show a higher churn rate (4.5% against 3.3%). Scoring this pipeline against the published file would have understated it, so the audit uses the code.

Show data table
ComparisonMembersAgreementChurn rate (first)Churn rate (second)
Our pipeline vs Kaggle labelling code850,95299.5%3.68%3.19%
Our pipeline vs published v1 labels977,02698.2%3.89%5.56%
Published v1 labels vs Kaggle labelling code853,76998.8%4.53%3.34%