Cohort Analysis: How to Read Retention by Cohort With Examples
Turn this article into takeaways for your work.
Each assistant summarizes the article only for you and suggests best practices for your work.
Cohort analysis groups users by a shared starting point, usually the week or month they signed up or first bought, and then tracks each group's behavior over the same stretch of time. Laying the groups side by side shows whether retention is improving, and whether a change you shipped actually helped, which blended averages hide.
Key Facts: Cohort Analysis at a Glance
- Google Analytics defines a cohort as a group of users who share a common characteristic, identified in the report by an Analytics dimension. (Google Analytics Help)
- Its cohort exploration lets you build cohorts on first touch (acquisition date), any event, any transaction, or any conversion, at daily, weekly or monthly granularity. (Google Analytics Help)
- Mixpanel buckets users by when they initially entered the product, and offers "on" retention (a specific time unit) and "on or after" retention (that unit or any later one). (Mixpanel Docs)
- Amplitude marks retention results for days with incomplete data with an asterisk, so unfinished cells aren't mistaken for final ones. (Amplitude Docs)
- Andrew Chen reports that retention curves tend to decay geometrically, and that early retention is a strong signal for later retention. (Andrew Chen)
What Cohort Analysis Measures
Most dashboards show one number for the whole business: monthly churn, monthly active users, average order value. That number mixes brand-new customers with veterans, and it changes for reasons that have nothing to do with product quality. A big campaign month floods the base with fragile new users and the blended rate gets worse. A quiet month shrinks the new-user share and the same rate looks healthy.
Cohort analysis fixes that by refusing to mix groups. Everyone who joined in January is one row. Everyone who joined in February is the next. Each row is followed for the same number of periods since joining, so you compare like with like: how did February's users behave in their second month, compared with January's users in theirs?
That is the whole idea, and it answers questions an average can't:
- Are newer customers sticking around longer than older ones?
- Did the onboarding change we shipped in March move anything?
- Does the curve flatten (a stable group of long-term users) or keep sliding toward zero?
A cohort doesn't have to be a signup month. Google's definition is deliberately broad: any group sharing a characteristic. Acquisition channel, plan type, first product used, country, and the sales rep who closed the deal are all valid cohort definitions, and the same retention math applies.
How a Retention Grid Works
The standard output is a triangle. Rows are cohorts (by start period). Columns are periods since the start (month 0, month 1, month 2, and so on). Each cell is the share of that cohort that did the "return" action in that period.
Two details trip people up:
- Month 0 is the starting period and is 100% by definition. Everyone in the cohort did the start action, so the useful numbers begin at month 1.
- The triangle shape is real, not a bug. A March cohort can't have a month-3 figure until June. Recent cohorts have fewer columns filled in.
The second point matters because of how tools treat incomplete data. Amplitude marks results for days with incomplete data with an asterisk (Amplitude Docs). Treat any cell from a cohort that hasn't fully aged with suspicion, because it rests on partial data.
Three ways to define "retained"
The same data gives different numbers depending on the definition, so pick one and write it at the top of the report. Mixpanel's docs describe the two most common: "on" retention counts users who come back on a specific time unit, and "on or after" retention counts users who come back on that unit or any later one, which is Mixpanel's default (Mixpanel Docs). Amplitude offers the same pair under the names Return On and Return On or After, plus a custom option where you define your own brackets, such as days 1 to 3 (Amplitude Docs).
Google Analytics adds a third axis, the calculation type: standard counts users who meet the return condition in that period only, rolling counts those who met it in that period and every earlier one, and cumulative counts those who met it in any period up to that point (Google Analytics Help).
| Definition | Question it answers | Best for |
|---|---|---|
| Return on a specific period | Did they come back in exactly week 4? | Products with a regular habit cycle (daily or weekly use) |
| Return on or after | Did they come back at any point from week 4 onward? | Irregular-use products, like invoicing or tax tools |
| Custom bracket | Did they come back sometime in days 1 to 3? | Products where usage has natural windows |
Cohort Analysis vs RFM, AARRR and Aggregate Churn
Cohort analysis gets confused with neighboring methods because they all use customer behavior. They answer different questions, and the strongest teams use several.
| Dimension | Cohort analysis | RFM segmentation | AARRR funnel metrics | Aggregate churn rate |
|---|---|---|---|---|
| Core question | How does each start-period group behave over time? | Who are our best customers right now? | Where do users drop off along the journey? | What share of customers left this period? |
| Grouping | By start date or shared trait | By recency, frequency and monetary value | By funnel stage | None, one blended figure |
| Time view | Behavior since the start, per group | A snapshot at a point in time | Usually a period snapshot | A single period |
| Output | Retention grid and curves | Customer segments to target | Conversion rate per stage | One percentage |
| Best for | Judging whether product or onboarding changes worked | Choosing who to message or reward | Finding the weakest funnel stage | Reporting and tracking |
The practical split: RFM analysis tells you who to act on today, the AARRR pirate metrics show where the funnel leaks, churn analysis quantifies and diagnoses the losses, and cohort analysis shows whether any of it is improving over time. Cohorts are also how you connect the retention stage of AARRR to a trend rather than a snapshot.
How to Read Retention Curves
Plot one line per cohort, with periods since start on the x axis and retention on the y axis. Then look for four things.
The shape. Chen's writing on retention describes curves that decay in a predictable pattern: in his example, whatever the day-1 figure, it drops by about half by day 7, and by about half again at day 30 (Andrew Chen). Don't expect your product to match that, but expect a steep early drop. Most of the story is told in the first few periods.
The floor. The healthy sign is a curve that levels out at a positive number, which means a stable group of long-term users. A curve that keeps sliding toward zero means you have a leaky product no acquisition budget will fill. Jamie Quint's guest post on Chen's blog makes a related point from the other side: don't focus on improving virality unless overall retention is stable (Andrew Chen).
The gap between cohorts. Lines that stack higher for each newer cohort mean the product or onboarding is getting better. Lines that bunch together mean your changes aren't moving retention. Lines that drop for a specific cohort point to something about that cohort: a discount campaign, a new channel, a bug.
The early predictor. Chen argues that early retention is a strong signal of later retention, which is why teams watch the first few periods instead of waiting a year (Andrew Chen). Pair that with your own data: check, on old cohorts, whether month 1 predicted month 6 for your product.
One caution from the same source: user retention and revenue retention can move in opposite directions. Chen notes that revenue retention can grow even as user retention falls, as with B2B products and some consumer ones (Andrew Chen). Build a revenue grid next to the user grid before you conclude anything.
How to Run a Cohort Analysis, Step by Step
- Pick the question first. "Is retention improving?" needs signup cohorts. "Which channel brings durable users?" needs channel cohorts. Decide before you open a tool.
- Define the start event. Signup, first purchase, first project created, first paid invoice. Choose the moment that best marks a user entering your product. Google's exploration offers first touch, any event, any transaction and any conversion as starting criteria (Google Analytics Help).
- Define the return event. What counts as "came back"? Logging in is weak. Doing the core action (sent a message, ran a report, placed an order) is stronger. This choice moves your numbers more than any other.
- Choose the period. Daily for apps with daily habits, weekly for most SaaS, monthly for low-frequency purchases like furniture or insurance.
- Choose the retention definition. On a specific period or on or after. Write it down.
- Build the grid. Rows are cohorts, columns are periods since start, cells are the percentage retained. Use your analytics tool's retention report, or a spreadsheet on exported data.
- Mask incomplete cells. Leave the lower-right triangle blank rather than reporting partial data.
- Read across, then down. Across a row shows one cohort aging. Down a column shows whether newer cohorts beat older ones at the same age.
- Split by segment. Rerun by channel, plan or region. A flat overall grid often hides a strong segment and a weak one.
- Turn it into a test. A change in the grid is a hypothesis. Confirm it with a growth experiment before you rebuild a roadmap around it.
Ready-to-Copy Cohort Retention Grid
Copy this into a spreadsheet. Fill the cohort size from your start-event count, then each cell as returning users divided by cohort size.
| Cohort (start month) | Cohort size | Month 0 | Month 1 | Month 2 | Month 3 | Month 4 | Month 5 |
|---|---|---|---|---|---|---|---|
| [YYYY-MM] | 100% | ||||||
| [YYYY-MM] | 100% | ||||||
| [YYYY-MM] | 100% | ||||||
| [YYYY-MM] | 100% | ||||||
| Weighted average | 100% |
Spreadsheet notes: define "returning" in one cell at the top (for example, "placed at least one order in the month"), and compute the weighted average by dividing total returning users by total cohort size for each column, counting only cohorts old enough to have that column. A simple average of percentages over-weights small cohorts.
Worked example (illustrative numbers)
These figures are made up to show the mechanics. They are not a benchmark for any product or industry.
A subscription app tracks the share of each signup-month cohort that used the core feature in each following month.
| Cohort | Size | Month 1 | Month 2 | Month 3 |
|---|---|---|---|---|
| January | 400 | 42% (168) | 32% (128) | 27% (108) |
| February | 420 | 45% (189) | 35% (147) | 29% (122) |
| March | 450 | 50% (225) | 40% (180) | pending |
| April | 480 | 50% (240) | pending | pending |
Reading it: month-1 retention rose from 42% to 45% to 50%, so something improved between January and March. Suppose the team shipped a guided setup flow in early March. The March cohort's month 1 jumped by five points over February's, while February beat January by three, so the guided flow plausibly added a couple of points on top of an existing upward drift. April matching March at 50% suggests the gain held rather than being a one-month fluke.
Now compare the blended view. If you only reported "overall monthly retention" for the whole user base in April, it would be dominated by older cohorts retained at lower rates, and the improvement from the new flow would barely register. That is the case for cohorts: the improvement is visible in the March and April rows long before it shows up in a company-wide average.
Also look at the shape. Each row loses the most between month 1 and month 2 and a smaller amount after, which is the early-steep-drop pattern. Whether the curve truly flattens needs several more months of data.
Examples by Business Function
The method is the same everywhere. Only the cohort definition and return event change. These scenarios are illustrative.
| Function | Cohort | Return event | What they learn |
|---|---|---|---|
| Product | Signup month | Used the core feature | Whether releases and onboarding changes lift retention |
| Marketing | Acquisition channel plus month | Active in month 3 | Which channels bring users who stay, not just users who click |
| Sales | Month a deal closed | Still paying, or expanded | Whether certain segments or reps close customers who last |
| Customer success | Onboarding completion week | Active at day 60 | Whether finishing onboarding predicts staying |
| E-commerce | First-purchase month | Placed a second order | How quickly repeat purchase builds, tied to customer lifetime value |
| Finance | Contract start quarter | Revenue retained | Net revenue retention by vintage |
| HR | Hire quarter | Still employed at 6 and 12 months | Whether recent hiring waves stick, a workforce cohort view |
For product teams building habit, pair cohort curves with the Hook Model to understand why users return. For a freemium product, cohort the free-to-paid conversion by signup month to see whether conversion is improving or only the volume of signups.
Common Mistakes
- Mixing definitions between cohorts. If January used "logged in" and February used "ran a report," the comparison is meaningless.
- Reading incomplete cohorts as final. A recent cohort's missing cells are not zeros, and a half-aged cell can mislead.
- Cohorts too small to trust. A cohort of 25 people swings wildly on a handful of users. Combine periods (weekly into monthly) or widen the grouping.
- Treating a flat average as a flat product. Averages hide cohorts moving in opposite directions.
- Ignoring the mix of channels. A cohort that happens to contain a big paid campaign will behave differently from an organic one. Segment before you celebrate or panic.
- Forgetting the metric hierarchy. Retention is one layer. Connect it to your wider growth metrics hierarchy so a better grid translates to a business outcome.
Cohort Analysis Dos and Don'ts
Do
- Write the start event, return event and period at the top of every report.
- Compare cohorts at the same age. Month 2 against month 2.
- Segment by channel, plan and region before drawing conclusions.
- Show user retention and revenue retention together.
- Annotate the grid with launches, campaigns and pricing changes so you can tie movements to causes.
- Test before you conclude. Treat grid movements as hypotheses.
Don't
- Don't use signup as the start event if activation is the real entry point. Cohort on the moment value starts.
- Don't average percentages across cohorts of different sizes.
- Don't fill the empty triangle with estimates.
- Don't judge a change on one cohort. Wait for at least two to confirm.
- Don't treat a rising curve as good news until you've checked the definition and cohort age.

Sales Operations Practice Lead
On this page
- What Cohort Analysis Measures
- How a Retention Grid Works
- Three ways to define "retained"
- Cohort Analysis vs RFM, AARRR and Aggregate Churn
- How to Read Retention Curves
- How to Run a Cohort Analysis, Step by Step
- Ready-to-Copy Cohort Retention Grid
- Worked example (illustrative numbers)
- Examples by Business Function
- Common Mistakes
- Cohort Analysis Dos and Don'ts
- Do
- Don't