Choose a starting event and a return event
App retention measures whether people return after they start using your app. In Appbase, the cohort starts on a user’s first observed SDK app open, and a return is an app-open event. D1, D7, D14 and D30 measure a return on that exact UTC calendar day after the first-open date.
A first open is not an App Store download. Someone can download without opening, and reinstalling or clearing storage can create a new installation. Identity linking helps resolve anonymous and signed-in activity, but it does not create evidence of visits the SDK never observed.
Calculate exact-day retention
Day-N retention = distinct cohort users who opened on day N ÷ distinct users in that first-open cohort.
| Return date (UTC) | Distinct returning users | Exact-day retention |
|---|---|---|
| September 2 — D1 | 35 | 35% |
| September 8 — D7 | 20 | 20% |
| October 1 — D30 | 12 | 12% |
Opening five times on the return day still counts as one returning user. A user who opens on day eight but not day seven does not count toward exact-day D7. These sample rates are not industry benchmarks.
Leave unfinished cohorts unfinished
A cohort that started three days ago cannot have a measured D7 result. Show that cell as unavailable. Do the same when the return day is still in progress; comparing part of today with a full historical day creates a misleading decline.
When combining mature cohorts, add returning-user counts and eligible cohort sizes before dividing. Do not average daily percentages without weighting: a cohort of ten people should not contribute as much as a cohort of a thousand.
Use a consistent timezone and date boundary. Appbase’s reporting days are UTC. Someone opening at 23:59 and again at 00:01 crosses a calendar day, even though only two minutes have passed. Exact calendar-day retention is not an elapsed-24-hour measure.
Keep three different questions separate
- App-open retention: did a person return to the app?
- Feature usage: did they perform an action such as finishing a workout?
- Subscription retention: did they keep paying or retain access?
They are related but not interchangeable. A subscriber may not open the app this week, and a free user can return daily. In Appbase, custom feature actions do not redefine app-open retention. DAU, WAU and MAU are unique openers in trailing one-, seven- and thirty-day UTC windows; they are not cohort-retention percentages.
Other tools can offer rolling or “on or after” retention, which includes later returns. Before comparing numbers across products, match starting event, return event, identity resolution, timezone, maturity and exact-day versus rolling rules.
Make app lifecycle tracking dependable
Initialize the SDK once with the right environment key. React Native supplies AppState lifecycle tracking; Swift uses its native lifecycle adapter. Do not manually duplicate automatic app-open events. Identify with a stable opaque account ID at login, and reset on logout or account switching.
Verify cold launch, background/foreground transitions, offline retry and account switching in development. Keep tests out of your production dataset. Use the React Native guide, Swift guide and metric definitions for the implementation contract.
When retention changes, compare similarly mature cohorts and inspect app releases, audience changes and onboarding behavior. A cohort chart identifies a difference; it does not by itself explain what caused it.