One cohort, three retention numbers
An explorable guide to classic, rolling and cumulative retention: how each is counted from the same raw activity, why they disagree, and what each one lets you conclude.
Classic retention counts users active on exactly Day N. Rolling retention counts users active on Day N or any later day, so it keeps rising as late returns arrive. Cumulative retention counts users active at least once from Day 1 to Day N. Same cohort, same activity, three numbers: in the sample app below, Day 7 reads about 18%, 38% and 67%.
What are the three types of retention?
Active on exactly Day N
Also called N-day or exact-day retention. Strict, fixed once the day passes, and the definition most benchmarks use.
count if active[N]RollingActive on Day N or later
Also called unbounded retention. Credits late returns, so it keeps rising as time passes.
count if any active[N..today]CumulativeActive at least once by Day N
Did the user come back at all within the first N days? Never falls as N grows.
count if any active[1..N]Cohort explorer
Ten daily install cohorts from a made-up app, observed to 15 Sep. Switch how retention is counted and watch the same cells change. Click or hover a cell to see exactly which users it counts.
| Install cohort | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | D10 | D11 | D12 | D13 | D14 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 Sep Tue148 installs | ||||||||||||||
| 2 Sep Wed152 installs | ||||||||||||||
| 3 Sep Thu154 installs | ||||||||||||||
| 4 Sep Fri142 installs | ||||||||||||||
| 5 Sep Sat148 installs | ||||||||||||||
| 6 Sep Sun249 installs | ||||||||||||||
| 7 Sep Mon262 installs | ||||||||||||||
| 8 Sep Tue278 installs | ||||||||||||||
| 9 Sep Wed258 installs | ||||||||||||||
| 10 Sep Thu266 installs |
See these three views for your own app's cohorts in Linkrunner
Source: Sample data: a made-up app to show the method, not a benchmark. Hatched cells: the cohort has not reached that day yet.
The same rule, person by person
Ten made-up users, fourteen days. Pick a definition and a day: the shaded columns are the days that count, and each user is counted or not.
Counts a user if they were active on Day 7 or any later day (to Day 14).
| D0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| User 1 | counted | |||||||||||||||
| User 2 | counted | |||||||||||||||
| User 3 | not counted | |||||||||||||||
| User 4 | counted | |||||||||||||||
| User 5 | not counted | |||||||||||||||
| User 6 | counted | |||||||||||||||
| User 7 | not counted | |||||||||||||||
| User 8 | not counted | |||||||||||||||
| User 9 | counted | |||||||||||||||
| User 10 | counted |
Rolling Day 7: 6 of 10 users = 60%
Filled dot: opened the app that day. Shaded columns: the days that count for this definition. Dashed square: install day (Day 0), which never counts as a return.
Source: Sample data: a made-up app to show the method, not a benchmark. At Day 7: classic 3 of 10, rolling 6 of 10, cumulative 8 of 10.
Three curves from one cohort
The 1 Sep cohort (148 installs) is the only one observed for all 14 days. Classic falls and flattens, cumulative climbs, and rolling falls until it meets classic on the last day in the data.
Source: Sample data: a made-up app to show the method, not a benchmark.
Why is rolling retention higher than classic?
Rolling counts a user on Day N if they opened the app on Day N or on any later day. Classic only counts Day N itself. Every user classic counts, rolling counts too, plus everyone who skipped Day N and came back later, so rolling is never lower. In the sample, the 1 Sep cohort's Day 7 is 16% classic and 61% rolling.
The gap also depends on how long you have watched the cohort. Rolling has no end date, so the same cell rises as more days arrive, and older cohorts look better than newer ones for that reason alone. More on rolling retention and its traps.
Which retention should you use?
| Question you are asking | Use | Why |
|---|---|---|
| Did onboarding bring people back at least once? | Cumulative Day 3 or Day 7 | Counts any return in the window, fixed once the window passes. |
| Did a product change on one day help? | Classic Day N, by cohort | One exact day per cohort, so before and after cohorts compare cleanly. |
| Are we above or below a published benchmark? | Classic, same Day N | Most published retention benchmarks count activity on an exact day. |
| Is this user base still around at all? | Rolling, with the as-of date | Credits late returns; record when you read it because it keeps rising. |
| Which channel brings stickier users? | Classic and cumulative, per channel, mature cohorts only | Bounded numbers, read on cohorts of the same age. |
| How many active users next month (forecast)? | Classic curve | Each point is the share active on that day, which is what a forecast needs. |
Whatever you choose, label the definition and the Day N on every chart, and compare like with like.
Learn to read the table
- 01How to read a cohort retention tableRows, columns, diagonals, flattening, channels, mix shifts and small cohorts, each with what you can and can't conclude.
- 02Compute all three in SQL or a spreadsheetCopy-ready queries and formulas, plus four checks that catch a wrong definition.
- 03Classic vs rolling vs cumulative retentionClassic, rolling and cumulative retention count different users on the same day. See the definitions, a ten-user worked example and when to use each one.
- 04How to read a retention curveA retention curve plots one cohort's retention against Day N. Read the early drop, the flattening point and smile curves, and why shape depends on definition.
- 05Why paid D1 retention is lower than organicPaid D1 retention below organic is partly normal, as organic users arrive with intent. See the causes, from targeting to measurement errors, and how to check.
- 06Retention by channel and campaignBlended retention hides what each channel does. Learn to cut a cohort table by channel, campaign and creative, keep naming clean and spot a channel mix shift.
Questions
Why is my rolling retention higher than classic?
Rolling also counts users who skipped Day N but came back later, so it can never be lower than classic. The gap grows the longer a cohort has been observed, because late returns keep adding to it.
What is cumulative retention?
Cumulative retention is the share of an install cohort that opened the app at least once between Day 1 and Day N. It never falls as N grows and it is fixed once Day N has passed, which makes it a good activation measure.
How do I read a cohort retention table?
Each row is a group of users who installed on the same day and each column is days since install. Read across a row for one cohort's decay, down a column to compare cohorts at the same age, and along a diagonal for anything that happened on one calendar day.
Can rolling retention be lower than cumulative?
Yes. Rolling counts returns on or after Day N, cumulative counts returns from Day 1 to Day N, so they count different users. Early in a cohort's life rolling is usually higher; at later days cumulative usually overtakes it.
Why does the newest cohort look worse on rolling retention?
Because rolling only counts days that have already happened. A cohort that installed last week has had far fewer days to come back than one from last month, so its rolling numbers are lower even if its users are just as good.
What is the difference between classic, rolling and cumulative retention?
Classic counts users active on exactly Day N. Rolling counts users active on Day N or any later day, and cumulative counts users active at least once from Day 1 to Day N. They use the same raw activity but answer different questions.