Track each sign-up month on its own, and a blurry “retention is down” turns into a shape that names its own cause.
A single retention number blends everyone together and hides why it moved. A cohort is just one group frozen by when they signed up — the January joiners, the February joiners — each followed separately as they age inside the product.
Lay those groups in a grid and anomalies take a shape. A bad row means one sign-up month was off (acquisition or onboarding that month). A bad column means a lifecycle stage is off for everyone (an aging effect). A bad diagonal means a dated event hit every cohort at once (an outage, a price change). And when the curves flatten instead of sliding to zero, you’ve found product-market fit.
the cohort triangle — each cell is % of that cohort still active
retention curves — % retained by product age
Read the grid by holding one thing fixed and scanning the other. The colour here is the cell’s deviation from the healthy aging curve — so a normal fade with age stays neutral, and only true anomalies stain warm.
rows = sign-up month (WHO joined) -> a bad row = a bad cohort
columns = product age (WHICH lifecycle stage) -> a bad col = an aging issue
diagonal= calendar month (WHEN in real time) -> a bad diag = a dated event
why the diagonal? calendar_month = signup_month + age
Jan cohort at age 4 |
Feb cohort at age 3 | all sat in the SAME calendar month (May)
Mar cohort at age 2 | -> a May price change hits them on a diagonal
Apr cohort at age 1 |
flattening test (is it product-market fit?)
month: 0 1 2 3 4 5
healthy: 100 60 48 42 39 37 -> slope: -40 -12 -6 -3 -2 (settling)
leaky: 100 55 34 21 13 8 -> slope keeps steep (no floor)
a curve that flattens to a floor has a core that keeps coming back.
| Situation | What the cohort view gives you |
|---|---|
| “Retention dropped” and nobody knows why. | Splits the drop into cohort vs. aging vs. calendar — the shape points at the cause. |
| You shipped an onboarding or product change. | New (later rows) move while old ones don’t — a clean before/after. |
| Judging product-market fit. | Flattening curves, not a single-month number, are the real signal. |
| The trade-off | Later cohorts have little history (the short rows), so recent months are noisy — don’t over-read a two-week-old cohort. |
An interviewer says: “Overall 30-day retention fell three points last quarter. Walk me through diagnosing it.” A strong answer reaches for the triangle. You’d pull cohorts by sign-up month and look for a shape. If one row (say the March cohort) is low at every age, you suspect the March acquisition mix — maybe a discount campaign pulled in low-intent users; the fix is upstream in marketing, not the product. If instead a diagonal is dented, you look for something that happened on a date — a pricing test, an incident — that hit everyone at once. And if the recent cohorts’ curves are flattening higher than older ones, your onboarding change is working, even before the blended number catches up.
Check yourself
In the triangle, the cells for one sign-up month are low at every age, while neighbouring months look normal. Most likely cause?
Two cohorts’ curves both settle around 22% and stop falling by month 4. A stakeholder calls 22% “a disaster.” Your read?