Why Cohort Analysis Matters
Aggregate metrics lie. “Monthly active users grew 12% this quarter” sounds great until you split by cohort and discover that newer cohorts retain at half the rate of older ones — meaning the growth is masking a leaky bucket.
Cohort analysis answers questions aggregate metrics can’t:
- Are new users sticking around longer than old users?
- Did the onboarding redesign in March improve week-1 retention?
- What’s the LTV of a January 2025 vs January 2026 cohort?
- Which acquisition channel produces the highest-retaining users?
Without cohort analysis, you’re flying blind on the most important growth lever in any subscription or consumer business: keeping the users you already have.
How Cohort Analysis Works
Anatomy of a cohort table
Rows are cohorts (typically by sign-up week or month). Columns are periods since the cohort started (week 0, week 1, week 2… or month 0, month 1…). Cells contain the metric — typically % of cohort still active or revenue retention.
The classic shape is a triangular table: older cohorts have more columns (more time to accumulate retention data); the newest cohort only has its first column.
Two common variants
- Acquisition cohorts grouped by sign-up date. The default for retention analysis.
- Behavioural cohorts grouped by an action (first purchase, completed onboarding, hit feature X). Useful for product analytics.
Building a cohort table
- Pick the cohort grain (weekly, monthly).
- Pick the retention metric (any activity, specific event, revenue).
- Pick the period grain (week, month).
- Self-join the events table to user signup, group by cohort and period offset, count distinct users (or sum revenue).
- Pivot into a heatmap.
Cohort Analysis in the Real World
Ship cohort retention analysis to your customers with Analytify’s embedded BI platform.
Cohort Analysis Tools and Platforms
Five tools that handle cohort analysis well:
- Analytify — Built-in cohort analysis on any event source, with retention heatmaps, behavioural cohorts, and embedding for SaaS products.
- Amplitude / Mixpanel — Product analytics platforms purpose-built for cohort, funnel, and retention analysis on event streams.
- Looker / LookML — Cohort analysis via persistent derived tables and the LookML model — strong governance for shared cohort definitions.
- dbt + warehouse + BI tool — DIY pattern: dbt models the cohort tables, the BI tool visualises. Most flexible, most engineering work.
- PostHog — Open-source product analytics with native cohort, funnel, and session replay — strong for engineering-led teams.
Cohort Analysis FAQs
What is the difference between a cohort and a segment?
A cohort is a group defined by a shared starting event in time (e.g., users who signed up in March). A segment is a group defined by current attributes (e.g., users on the Pro plan). Cohorts are time-anchored; segments are not.
What is good retention?
Depends entirely on the product. B2B SaaS: 90%+ monthly retention is healthy. Mobile gaming: day-30 retention of 5-10% is normal. Always benchmark against your own historical cohorts, not industry averages.
How do I read a cohort table?
Read across a row to see how a single cohort retains over time. Read down a column to see how cohorts compare at the same age — this exposes whether new cohorts are getting better or worse than old ones.
Should I cohort by week, month, or quarter?
Match the cohort grain to the typical user lifecycle. SaaS B2B: monthly. Consumer subscription: weekly or monthly. Daily-use app: weekly. Smaller grains give faster signal but noisier curves.
What is revenue cohort analysis vs user retention cohort?
User retention measures who still uses the product. Revenue cohort measures how revenue from a cohort evolves over time (often expressed as net dollar retention). They tell different stories — revenue cohorts can grow even if users churn, via expansion.
How does Analytify handle cohort analysis?
Analytify ships a cohort visualisation that takes a cohort field, a period field, and a metric, and renders the heatmap. Behavioural cohorts and revenue cohorts use the same widget — change the inputs, change the chart.