Cohort Analysis Basics
Follow the same people, not the same time
A cohort is a group of users sharing an event at similar times — usually an acquisition period. Comparing behavior across cohorts reveals trends and product changes that aggregate numbers hide.
What you will learn
- Define a cohort precisely as a group + an entry event + a window
- Explain why cohort metrics beat aggregate metrics for trend detection
- Read a basic cohort table
A cohort is users who share one defining event in the same period — everyone who signed up in January. You then compare each cohort's behavior period by period, so new-user quality is judged against its own lifetime, not mixed with everyone else's.
What is this?
Cohort analysis divides users into groups — cohorts — that share a common characteristic, usually an acquisition period (everyone who signed up in January 2026) or a behavior (everyone who completed their first purchase). Metrics are then computed within each cohort across their subsequent time periods. Because each cohort is compared to itself over time, the analysis strips out the composition shifts — faster growth, vinter and summer mixes — that corrupt plain time-series metrics.
Why do you need it?
- Aggregate retention averages new users with old ones, so a declining product can hide behind a growing base.
- Cohort rows compare apples to apples: January's signups vs February's signups.
- Product changes show up as cohort improvements: release a new onboarding in March and March's cohort improves.
- Acquisition quality (channel, campaign) is measured by what cohorts do after day 0, not by the spike at day 0.
Mental model
Class photos by school year
Cohorts
You wouldn't judge the 2026 freshmen against seniors who've had three years to graduate. Cohort analysis photographs each 'class' at the same age, so comparisons are fair across years.
How it works
- Pick the entry event (signup, first order, first load) and its period (day, week, month) — month is the most common.
- Tag every user with their cohort label: the month they had the entry event.
- Align the x-axis to 'period since entry' (Month 0, Month 1, Month 2...) instead of calendar time.
- Fill each (cohort, period-since-entry) cell with a metric — often % of the cohort still active, or total revenue.
- Read down a column = compare same-age behavior across cohorts; read across a row = the cohort's lifecycle.
Anatomy of a cohort table.
In production
- A subscription product sees flat MAU but worsening cohort retention — MAU was being propped up by new signups, and cohort analysis exposes it.
- A model-health dashboard tracks signup cohort Day-30 retention monthly, flagging any drop as a product regression to investigate.
- An e-commerce team compares weekly acquisition cohorts after a checkout redesign and reads 'week-over-week' Day-7 revenue per cohort to validate the change.
Best practices
- Always state the entry event, the cohort period and the metric when sharing a cohort table.
- Report cohorts on enough history to stabilize — a 2-month-old monthly cohort can't honestly show Month 6.
- Pair cohort rate metrics with cohort size, so a great retention on a tiny cohort isn't over-read.
- Use periods that match the product's rhythm: daily for engines, weekly for casual apps, monthly for B2B.
Common mistakes
- Mixing calendar-time and cohort-time in one chart (e.g. plotting February active users against January's cohort).
- Reading cohort cells without cohort sizes, so a 5-user '100% retention' cell looks like a win.
- Comparing cohorts of different maturity — Week-3 of an old cohort vs Week-0 of a new one.
- Forgetting late-arriving users: 'signed up in January' must use the date of the entry event, not the data cutoff.
Debugging tips
- If a cohort 'improves' for all cohorts simultaneously, suspect a metric definition change, not a product win.
- Row counts that don't sum match a dedupe issue in the identity spine — verify user_id uniqueness first.
- A cohort table with cells in the future (e.g. Month-2 of this month's cohort) means the alignment window leaked.
- Compare cohort tables built from two tools: mismatched 'period since entry' definitions are the usual culprit.
Interview checkpoint
Quick quiz
In 'February cohort,' what defines the cohort membership?
Cohort tables compare each group with itself over time, which is why they're fairer than aggregate trends.