Cohort analysis groups customers or users by a shared starting event, usually the month they signed up or first paid, and tracks how each group behaves over the following periods. It separates “are we getting better?” from “are we just getting bigger?”, which aggregate retention and revenue charts cannot do.
What is cohort analysis?
Google Analytics describes its cohort exploration as gaining insight from the behavior of groups of users related by a common attribute, defined by an inclusion condition (how users enter a cohort), a return condition (what counts as coming back) and a granularity (daily, weekly or monthly).1Source 1 · Google Analytics Help[GA4] Cohort explorationsupport.google.com The same three choices apply to revenue: Stripe assigns subscribers to cohorts from the month they start generating positive MRR and tracks how much of that MRR remains each following month.2Source 2 · Stripe DocsBilling analytics: metric definitions (cohort retention)docs.stripe.com
Retention(cohort c, period n)=Value retained by cohort c in period n ÷ Value of cohort c in period 0
- Value
- Active users, paying customers or MRR, depending on the question
- Period n
- Months (or weeks) since the cohort’s entry event
Worked example: reading a revenue cohort table
| Signup cohort | Month 0 | Month 1 | Month 3 | Month 6 |
|---|---|---|---|---|
| January | 100% | 92% | 85% | 79% |
| February | 100% | 94% | 88% | 84% |
| March | 100% | 96% | 93% | — |
| April | 100% | 97% | — | — |
An aggregate churn chart for the same months might look flat, because a growing base of young, churn-prone customers hides the improvement. Expansion can push revenue cohorts above 100%: in Stripe’s example, a 100-subscriber cohort that loses 10 subscribers but sees 5 upgrade ends month one at 102.5% revenue retention.2Source 2 · Stripe DocsBilling analytics: metric definitions (cohort retention)docs.stripe.com a16z recommends showing investors cohort retention on the metrics that matter for your business, not just one blended number.3Source 3 · Andreessen Horowitz (a16z), 201516 Startup Metricsa16z.com
Common mistakes
- Mixing calendar months and cohort ages in one chart. Columns should be “months since start,” not “March, April.”
- Comparing incomplete periods: the newest cohort’s current month is partial and will look artificially low.
- Cohorts too small to read. A cohort of 12 customers swings 8 points per churned account; group into quarters.
- Averaging percentages across cohorts instead of weighting by cohort size.
How to run cohort analysis in Kimo
Kimo builds revenue cohorts from Stripe or your product database and user cohorts from GA4, Mixpanel or PostHog. Pick the entry event and value measure in Explore, or ask “show revenue retention by signup quarter for annual plans” in Ask Kimo. Cohort heatmaps feed net revenue retention and the SaaS metrics template.
Frequently asked questions
What is the difference between a cohort and a segment?
Which granularity should I use?
Sources
3 references- [GA4] Cohort exploration (opens in a new tab)Google Analytics Helpsupport.google.com
Cohort inclusion, return criteria and granularity.
- Billing analytics: metric definitions (cohort retention) (opens in a new tab)Stripe Docsdocs.stripe.com
Revenue cohorts by start of positive MRR; 102.5% example.
- 16 Startup Metrics (opens in a new tab)Andreessen Horowitz (a16z)2015a16z.com
Retention by cohort on metrics that matter for the business.
External sources were accessed at the time of writing. Kimo product details, customers and figures in examples are illustrative unless a source is cited.



