Live demo

Two channels with the same churn number.

A thousand subscribers, five hundred from each channel, with real signup dates and real cancellations. Everything below is computed in your browser from the per-subscriber records: a Kaplan-Meier fit, hazard by lifecycle period, and a log-rank test. Nothing is hardcoded.

The churn column in the cohort tableIndistinguishabletwo-proportion z-test
Paid search
37.4%
187 of 500 cancelled
Partner referral
37.8%
189 of 500 cancelled
Difference
-0.4 pts
what the dashboard shows
p-value
0.90
no evidence of any difference

A growth team reads this row, concludes the two channels retain the same way, and spends the next quarter buying more of whichever is cheaper. Both numbers are correct. The conclusion is not.

The same subscribers, as survival curvesLog-rank p = 6.3e-51Kaplan-Meier, 95% Greenwood bands
100%75%50%25%paid search danger windowpartner referral danger windowPaid searchPartner referralday 540 since signup
Retained at day 30
64.5% / 99.4%
paid search / partner referral
Retained at day 180
57.9% / 94.7%
paid search / partner referral
Median lifetime
not reached / 299
days until half the cohort is gone
Still active
313 / 311
right-censored, not counted as retained
Log-rank test, observed against expected under equal hazard
Paid search
187 observed vs 84 expected
2.24× the cancellations you would expect if the two channels churned alike
Partner referral
189 observed vs 292 expected
0.65× the cancellations you would expect if the two channels churned alike

The log-rank test weights every cancellation by how many subscribers were still at risk when it happened, which is the information a percentage throws away. Paid search produced 187 cancellations where equal hazard predicts 84. χ² = 225.3 on one degree of freedom.

Where in the lifecycle

The hazard curve names the window.

Hazard is the number a churn rate averages away: of the subscribers who made it to the start of this period, what fraction left during it. Read it and the retention work writes itself.

Paid search, by weekWeeks 2 to 5

90.9% of every cancellation this channel has produced happened between day 7 and day 35. From week seven on, weekly hazard never again reaches 2%: whoever survives onboarding stays.

7%14%wk 1wk 3wk 5wk 7wk 9wk 11
Peak hazard is 14.2% in days 21 to 27. That is an activation problem, and no amount of win-back email at month six will touch it.
Partner referral, by monthMonths 6 to 11

Near-zero hazard for five months, which is why this channel looks flawless on any 90-day retention report. 86.2% of its cancellations land between day 150 and day 330.

9%19%m1m3m5m7m9m11m13m15m17
Peak hazard is 18.8% in month 11. That is a value problem at renewal, and the fix is a business review, not a better onboarding checklist.

The other failure

The same cohort, twice, 23.2 pts apart.

These two groups are drawn from an identical lifetime distribution. Same product, same channel, same everything. The only difference is that one signed up in the last forty-five days, so most of them have not been watched long enough to churn yet. The retained percentage counts every one of them as a win.

Retained, recent cohort
77.6%
signed up in the last 45 days
Retained, mature cohort
54.4%
signed up 7 to 14 months ago
Apparent gap
23.2 pts
what the cohort table reports
Not yet observed
77.6%
of the recent cohort, censored not retained
Kaplan-Meier, same two cohorts, first 45 daysLog-rank p = 0.36the curves lie on top of each other
100%75%50%Recent cohortMature cohortday 45 since signup
S(30), recent
70.9%
Kaplan-Meier estimate
S(30), mature
67.6%
Kaplan-Meier estimate
Real gap
3.3 pts
inside the noise, and the test agrees

Every cohort comparison you have ever run on a retained percentage carries this bias, and it always points the same way: newer looks better. Which means the cohort you are most anxious to evaluate is the one the number lies about hardest.