How to Calculate SaaS Cohort Retention
Calculate SaaS cohort retention with fixed denominators, clear retention rules and a worked example covering incomplete periods and reactivated customers.
TL;DR. To calculate SaaS cohort retention, group customers by a consistent starting event, then count how many meet a defined retention condition in each later period. Divide that count by the original cohort size and multiply by 100. Keep the denominator fixed, leave unfinished periods unreported, and decide whether returning customers count before calculating the table. Count customers separately from revenue so upgrades cannot hide customer losses.
What should you define before calculating retention?
A useful retention table starts with a written measurement rule. Define these five things:
| Decision | Question to answer |
|---|---|
| Customer unit | Are you counting people, workspaces or paying accounts? |
| Starting event | Does entry mean signup, activation or first paid subscription? |
| Cohort grouping | Are customers grouped by starting week or starting month? |
| Retention condition | Must they complete a meaningful action or hold an active paid subscription? |
| Period and return rule | When do you check, and can a returning customer count again? |
For this article, the unit is a paying account. Each account enters once, in the calendar month of its first paid subscription. It is retained in a later month if it has an active paid subscription at that month's end. A returning account can count again in its original cohort.
This measures paid-account retention. It does not measure whether someone used the product during the month. For usage retention, replace the subscription condition with a defined action, such as completing a workflow, and label the result accordingly.
Keep related terms consistent with your reporting; the SaaS Metrics Glossary provides a companion reference.
What is the cohort retention formula?
For a particular cohort and later period:
Customer retention = qualifying original-cohort accounts ÷ original cohort size × 100
The numerator includes only accounts from that original cohort. New customers never enter an older cohort's numerator or denominator.
The denominator stays fixed even after customers leave. Otherwise, you would be measuring survival among the remaining customers instead of retention from the original starting group.
Deduplicate accounts before counting. Several users, subscriptions or qualifying events belonging to one account still contribute one retained account when the chosen unit is an account.
How do you build a cohort retention table?
Every number in the examples below is illustrative, including the percentages. They are not benchmarks or measured results.
Suppose three cohorts have reached different ages. Month 1 is the calendar month immediately after the entry month; Month 2 is the following month.
| Cohort | Original accounts | Month 1 retained | Month 2 retained | Month 3 retained |
|---|---|---|---|---|
| A | 10 | 8 / 10 = 80% | 6 / 10 = 60% | 7 / 10 = 70% |
| B | 8 | 6 / 8 = 75% | 5 / 8 = 62.5% | Not yet complete |
| C | 5 | 4 / 5 = 80% | Not yet complete | Not yet complete |
Read across a row to follow one cohort as it ages. Read down a column to compare cohorts at the same age.
For Cohort A, Month 2 retention is six divided by ten. It is not six divided by the eight accounts retained in Month 1. That second calculation answers a different question.
If you display a Month 0 column, label it cohort entry. All original accounts met the entry condition, but that does not mean they all remained subscribed at the end of their entry month.
Calendar grouping also gives customers different lengths of time between entry and the first month-end check. If equal elapsed time matters, use fixed windows measured from each account's starting event. Apply that choice throughout the report.
How should you handle incomplete periods?
An unfinished period is unknown, not zero.
Cohort C has completed Month 1 but has not completed Month 2. Reporting zero for Month 2 would turn missing observation time into apparent churn. Reporting a partial result beside completed months would compare different amounts of observation time.
Use a clear label such as “Not yet complete” and exclude that cell from summaries.
The worked table also shows how to calculate an overall retention figure for one cohort age:
- Month 1: 18 retained accounts divided by 23 original accounts.
- Month 2: 11 retained accounts divided by 18 original accounts, using only Cohorts A and B.
- Month 3: seven retained accounts divided by ten original accounts, using only Cohort A.
These remain illustrative calculations. Add eligible counts before dividing; do not take a simple average of row percentages when cohort sizes differ.
Also distinguish an incomplete period from missing data. If a completed month has an unavailable subscription record, investigate the gap rather than silently classifying the account as churned.
How does reactivation change the calculation?
Under this article's month-end rule, an account can fail the retention condition in one month and meet it again later.
Here is the illustrative movement behind Cohort A:
| Account group | Accounts | Month 1 | Month 2 | Month 3 |
|---|---|---|---|---|
| Remained subscribed at every check | 5 | Retained | Retained | Retained |
| Left after Month 2 | 1 | Retained | Retained | Not retained |
| Returned for Month 3 | 2 | Retained | Not retained | Retained |
| Never retained after entry | 2 | Not retained | Not retained | Not retained |
| Total retained | — | 8 | 6 | 7 |
Between Month 2 and Month 3, one account leaves and two return. The retained count rises from six to seven. Neither returning account becomes a new customer or joins a new cohort.
A different question requires a different rule: how many accounts have remained subscribed without interruption? Under that definition, returning accounts stay excluded after their first lapse. In this example, five accounts qualify in Month 3.
Label these views separately. A rising month-end retention curve can reflect reactivation; an uninterrupted-retention curve cannot recover after a lapse.
Why must customer retention stay separate from revenue retention?
Customer retention counts accounts. Revenue retention measures revenue associated with the original cohort. They use different units and answer different questions.
In a separate illustrative example, a cohort starts with ten accounts contributing 1,000 revenue units. Later, eight accounts remain and contribute 1,200 revenue units after upgrades.
Customer retention is eight divided by ten, or 80%. The revenue ratio is 1,200 divided by 1,000, or 120%. Revenue growth does not restore the two lost accounts.
Keep account counts and revenue amounts in separate tables or clearly labelled columns. Document how the revenue view treats expansion, contraction, cancellations and returning customers. Logo Churn vs Revenue Churn explores the distinction between losing customers and losing revenue.
What common mistakes should you avoid?
- Changing the denominator. Keep the original cohort size throughout its row.
- Mixing starting events. Do not place trial signups and first-time paying accounts into one cohort without an explicit shared definition.
- Counting events instead of accounts. Repeated activity by one account contributes one retained account.
- Moving returning customers. Keep them in their original cohort when measuring first-start retention.
- Comparing different ages. Compare completed Month 2 cells with other completed Month 2 cells.
- Treating paid status as product use. Subscription retention and usage retention need separate conditions.
- Changing rules midway. Recalculate historical cohorts under the new definition or clearly separate the reports.
Before sharing the table, trace one retained account, one lost account and one returning account through the underlying records. Confirm their cohort assignment, period status and contribution to the totals.
What questions come up when calculating cohort retention?
Related reading
- SaaS Metrics Glossary — terms to use consistently in your reporting.
- Logo Churn vs Revenue Churn — distinguish customer losses from changes in revenue.
- North Star Metric for B2B — connect measurement to the value your product delivers.
Related reading
How to Calculate SaaS CAC Payback Period
Calculate SaaS CAC payback period with a worked example covering acquisition costs, gross margin, sales-cycle timing and customer segments.
How to Calculate ARR With Services and Usage Fees
Separate subscriptions, services and usage fees to calculate ARR, handle discounts and minimum commitments, and document uncertain usage revenue.
Net Revenue Retention (NRR) Explained for B2B SaaS
Learn the net revenue retention formula, follow an illustrative calculation, compare NRR with GRR, and identify what changes recurring revenue.
Choosing a North Star Metric for a B2B Product
How to choose a North Star metric for a B2B product — what makes a good one, why B2B makes it harder, a step-by-step selection method, illustrative examples, and the mistakes that turn it into a vanity number.