What is a cohort analysis, and why is it better than an average?
Grouping users by when they started and tracking each group separately over time — which reveals changes that overall averages actively conceal.
The problem with aggregate numbers. Total revenue, average retention and overall engagement mix together users who joined at very different times. A business acquiring many new users can show a falling average while every individual group is performing better than the last, simply because new users are earlier in their lifecycle. The reverse is equally common: healthy-looking totals concealing a product that has stopped retaining anyone. An average across mixed cohorts answers no useful question.
What a cohort analysis looks like. Rows are cohorts — users who signed up in January, February, March — and columns are periods since joining: month 0, month 1, month 2. Each cell shows the metric for that cohort at that age.
Reading it:
Across a row shows how a single group behaves as it matures — the retention curve, and whether it flattens. A curve that flattens to a plateau indicates a product with a genuine retained core; one that decays towards zero means the business must keep buying growth forever.
Down a column compares groups at the same age, which is the honest comparison. If month-3 retention is rising cohort by cohort, the product is improving, regardless of what the total says.
What it exposes: whether a product change worked, since only cohorts after it should differ; whether a channel brings worse users, when cohorts are split by acquisition source; the real payback period on acquisition cost; and seasonal distortions.
How to do it properly: define the cohort by a meaningful start event; use relative time, not calendar time; pick a metric that reflects actual value, not logins; ensure cohorts are large enough to be meaningful; and never compare an immature cohort's totals with a mature one's.
The common mistake is stopping at retention. Cohorting revenue, support load, feature adoption and referral behaviour is usually more informative.