Skip to content

Retention

Cohort Analysis

What is Cohort Analysis?

Cohort analysis groups customers by when they started and tracks each group separately over elapsed time, producing a triangular table where rows are signup periods and columns are months since signup. It exposes what an aggregate churn rate cannot: whether retention is improving for newer customers, where in the lifecycle customers leave, and whether a flat headline number is hiding a deteriorating base propped up by durable older cohorts.

Formula

Retention[cohort, month n] = Customers (or MRR) from cohort still active in month n ÷ Cohort size at month 0 × 100

cohort
The group of customers who first paid in a given period, usually a calendar month
month n
Months elapsed since that cohort started — not a calendar month. Month 0 is always 100%
Cohort size at month 0
The denominator is fixed at the cohort's original size or original MRR, and never re-based

Worked example

Three signup cohorts of similar size, each measured at the same elapsed months. Aggregate monthly churn was flat at roughly 4% throughout.

Step-by-step calculation of Cohort Analysis
StepValue
1January cohort — month 188%
2January cohort — month 661%
3January cohort — month 1254%
4April cohort — month 184%
5April cohort — month 655%
6July cohort — month 179%
7July cohort — month 647%

Result

Month-1 retention fell from 88% to 79% across two quarters and month-6 retention from 61% to 47%, while aggregate churn never moved. The older cohorts had already flattened out, and their durability was masking each new cohort arriving worse than the last.

The triangle, and how to read it

A cohort table has signup periods down the side and elapsed months across the top. Every row starts at 100% in month 0 and decays rightwards. Because a cohort that started three months ago cannot have a twelve-month figure, the filled cells form a triangle — the newest rows are short and the oldest are long, and the bottom-right of the table is empty by construction.

That shape dictates how to read it. Down a column compares like with like: every cohort at the same age. This is the comparison that answers whether the product is getting better or worse, and it is the reason the table exists. Across a row shows one cohort's decay curve — steep early, flattening later. Reading across tells you when customers leave; reading down tells you whether that is changing.

Cells further right are always built on fewer cohorts and older data, so the right edge of the table is both the most interesting and the least current part of it.

What aggregates hide

A single churn rate is a weighted average across cohorts of every age, so it moves for reasons that have nothing to do with retention. Grow quickly and your base fills with young customers who churn fastest, and blended churn rises while every individual cohort is performing better than the last. Stop growing and blended churn falls, because the base ages into its flat tail.

The worked example above is the common failure: aggregate churn steady at 4% while month-6 retention dropped fourteen points across two quarters. The old cohorts were doing the work. By the time a headline number reacts, three quarters of new customers have already been acquired into a worse experience.

Customer cohorts and revenue cohorts diverge

Run the same table on MRR instead of headcount and the shape can change completely. Revenue cohorts include expansion, so a row can exceed 100% — a cohort that lost 30% of its customers can still be worth more than it was at signup if the survivors grew. That crossover point, where expansion overtakes churn, is the clearest visual evidence that a land-and-expand motion works, and it is invisible in a customer-count table.

The inverse is also worth seeing: a customer cohort holding at 85% while its revenue cohort sits at 70% means the survivors have downgraded, which is a quieter and slower problem than cancellation. Run both tables.

Practical construction rules

  • Never re-base the denominator. Every cell divides by the cohort's original size. Dividing by the previous month's survivors turns a retention curve into a period-over-period churn series, which is a different metric that happens to look similar.
  • Fix a rule for reactivations. A returning customer either rejoins their original cohort — the more common convention, and the one that keeps cohorts closed — or counts as new. Rejoining can push a cell above a previous month's value, which is correct and surprises people.
  • Watch the last row. The most recent cohort is usually incomplete, since customers acquired on the 28th have had two days. Either exclude partial periods or mark them clearly, because an artificially healthy bottom row is exactly where the eye goes.
  • Segment before you conclude. A blended cohort table across self-serve and enterprise, or across acquisition channels, averages curves with genuinely different shapes. The insight is almost always in a segment, not in the blend.

What cohorts are for downstream

Cohort data is the honest input to anything that depends on customer lifetime. LTV computed from a single churn rate assumes constant hazard — the same cancellation probability every month — which cohort curves visibly falsify: churn is front-loaded and the tail flattens. Summing a cohort's measured cumulative gross profit and extrapolating only the observed tail is slower, more work, and considerably more defensible. Cohorts also give NRR its natural denominator, since NRR is precisely a one-period cohort measurement.

Where Cohort Analysis goes wrong

  • Re-basing each cell on the previous month's survivors rather than the cohort's original size. The resulting table is a period-over-period churn series that looks like a retention curve and reports far gentler decay.
  • Reading across rows and never down columns. The row shows one cohort's shape; only the column comparison — every cohort at the same age — answers whether newer customers are retaining better or worse.
  • Including a partial final cohort without marking it. Customers acquired in the last few days of a month have had almost no opportunity to churn, so the newest row reads as the best one you have ever had.
  • Running only the customer-count table. Revenue cohorts can exceed 100% through expansion and can also decay while headcount holds, and the gap between the two tables is where downgrade behaviour shows up.
  • Blending segments with different retention shapes. Self-serve and enterprise curves averaged together produce a curve that describes neither, and the actionable finding is nearly always inside one segment.
  • Treating a cohort table with fewer than a few dozen customers per row as signal. At small cohort sizes each cell moves in whole percentage-point jumps and the triangle reads as noise with a gradient.

Related

Metrics that move with this one

No metric explains a business on its own. These are the figures that qualify, offset or explain Cohort Analysis.

Churn Rate

Churn rate is the share of customers or recurring revenue lost over a period, most often calculated as the number of customers who cancelled during a month divided by the number active at the start of it. There is no single correct churn rate: customer churn and revenue churn, gross and net, and start-of-period and average denominators all produce different figures from identical data, so a churn rate is only interpretable alongside the definition that produced it.

Learn more

Retention Rate

Retention rate is the share of customers or revenue from the start of a period that is still present at the end, calculated as 100% minus the churn rate over the same period and definition. Customer retention rate is bounded at 100%, while net revenue retention can exceed it, so the two are not interchangeable despite both being described as retention.

Learn more

Net Revenue Retention (NRR)

Net revenue retention (NRR, also called net dollar retention) is the recurring revenue a fixed group of existing customers generates at the end of a period, expressed as a percentage of what the same group generated at the start, including expansion and after churn and contraction. New customers are excluded entirely. Above 100% means the existing base grew on its own; it does not mean customers are staying, because heavy expansion from a few accounts can cover substantial churn among the rest.

Learn more

Gross Revenue Retention (GRR)

Gross revenue retention (GRR, also called gross dollar retention) is the share of a cohort's starting recurring revenue still present at the end of a period, counting cancellations and downgrades but excluding all expansion. Because expansion is excluded, GRR can never exceed 100%, which makes it the only retention figure a strong upsell quarter cannot flatter.

Learn more

Logo Churn

Logo churn is the share of customer accounts lost over a period, counting each account once regardless of what it paid. It is the customer-count view of churn, and comparing it to revenue churn reveals whether the accounts leaving are larger or smaller than average — the two rates diverging is usually more informative than either level on its own.

Learn more

Expansion MRR

Expansion MRR is the additional monthly recurring revenue generated by existing customers in a period through upgrades, seat additions, add-on purchases and price increases — revenue growth from accounts already on the books rather than from new ones. It is measured as a positive movement against the prior period's MRR, excludes anything from customers acquired in the period, and is the component that allows net revenue retention to exceed 100%.

Learn more

Customer Lifetime Value (LTV)

Customer lifetime value (LTV, also written CLV or CLTV) is the total gross profit a business expects to earn from one customer across the whole of their relationship. The standard subscription estimate divides average revenue per account by the customer churn rate and multiplies by gross margin, but that formula assumes every customer has the same constant probability of cancelling every month — an assumption real cohorts violate — so LTV is a directional planning input rather than a measured figure.

Learn more

Cohort Analysis: frequently asked questions

What is cohort analysis?

Cohort analysis groups customers by when they started and tracks each group's retention separately over elapsed time since signup. The output is a triangular table: rows are signup months, columns are months since signup, and each cell is the share of that cohort still active. It separates how customers behave over their lifecycle from how your overall base happens to be composed right now.

Why does cohort analysis beat a single churn rate?

Because an aggregate churn rate is a weighted average across cohorts of every age, so it moves whenever your growth rate changes even if nothing about retention does. Fast growth fills the base with young customers who churn fastest and pushes blended churn up; a growth slowdown ages the base and pulls it down. Cohorts hold age constant, which is the only way to see whether new customers retain better than old ones.

How do I read a cohort table?

Read down a column to compare every cohort at the same age — that comparison tells you whether retention is improving or deteriorating over time. Read across a row to see one cohort's decay curve, which shows where in the lifecycle customers leave. The empty bottom-right of the triangle is not missing data; those months have not happened yet.

Can a cohort retention figure be above 100%?

Only in a revenue cohort table. Customer cohorts are capped at 100% because a closed group cannot gain members, unless reactivations rejoin their original cohort. Revenue cohorts include expansion, so a cohort worth more than it was at signup exceeds 100% — and the month where a revenue cohort crosses back above its starting value is the clearest evidence that expansion outpaces churn.

Stop recalculating Cohort Analysis by hand.

Connect Stripe and Bastle computes this metric — and the rest of the glossary — against your own billing history, with the definitions under your control. Free while in beta, no card required.