Skip to main content

Cohort Analysis Tool

Paste cohort sizes and retained counts to get a per-period retention % table with averages.

Written by Golam Rabbani, Founder & Lead Engineer

How many periods after acquisition to track (1-24).

One cohort per line: Label, initial, retained_P1, retained_P2, ...

How to use this cohort analysis tool

  1. Set the number of follow-up periods you want to track (1-24).
  2. Enter one cohort per line in the format: Label, initial size, retained_P1, retained_P2, ...
  3. Press Run analysis to convert raw counts into a per-period retention % matrix.
  4. Review the average retention row to spot trends across cohorts.
  5. Use Copy to grab the table for a slide deck or board update, or Reset to start over.

About this cohort analysis tool

A cohort retention analysis groups customers by their start period and tracks how many remain active in each subsequent period. The standard definition (Reichheld, "The Loyalty Effect") is retention_n = active_at_period_n ÷ size_at_period_0 × 100. This tool takes raw counts and converts them to that ratio for every cell.

Worked example. You enter three cohorts. The January cohort starts at 1,000 customers; 720 are still active in P1, 540 in P2, 420 in P3, 350 in P4. The tool returns 72.0%, 54.0%, 42.0%, 35.0% for those cells. If February and March cohorts produce 73.7%, 54.7%, 43.2%, 34.7% and 72.7%, 54.5%, 42.7%, 34.5%, the per-period average row reports 72.8%, 54.4%, 42.6%, 34.7% — telling you the curve is stable and most attrition happens before P3.

All math runs locally in your browser; nothing is uploaded. Use the average row as a baseline against which to test product changes — a new onboarding feature should bend the curve upward at P1 first.

FAQ

What is the formula for cohort retention?
Retention at period n equals customers still active at period n divided by the original cohort size at period 0, expressed as a percent. This is the same definition used in standard cohort tables in Mixpanel, Amplitude, and most SaaS analytics tools.
Can I leave some cells blank for incomplete cohorts?
Yes. If a cohort has not yet reached period 4, leave those cells empty. The tool will skip them when computing per-period averages so newer cohorts do not drag the line down.
How does the average row work when cohorts have different ages?
For each period column the tool averages only the cells where you provided a retained count. A column with five values is averaged across those five; a column with two values is averaged across only those two. Empty cells are excluded, never treated as zeros.
Why use counts instead of percentages directly?
Counts let the tool re-derive the ratio with the exact cohort size in the denominator, which is what published cohort tables use. Percentages alone hide whether a cohort had 100 or 10,000 users — material when interpreting noise.
Does this work for revenue retention, not just user retention?
Yes. Replace "users active" with "MRR retained" in each cell — the same retention_n formula gives you net or gross dollar retention. Just be consistent: gross excludes expansion, net includes it.
Is anything sent to a server?
No. All parsing and calculation happens in your browser. Closing or refreshing the tab clears the data.