retention('signup_completed')
Find out who comes back, and who doesn’t.
Group people by the week they first showed up, then watch what share of each group returns. Pick the event that starts a cohort and the one that counts as coming back, and compare web with your apps.
- Daily, weekly or monthly cohorts
- Your project’s time zone
- Web, iOS and Android curves
Retention · any event
Weekly cohorts| Cohort | Users | W0Week 0 | W1Week 1 | W2Week 2 | W3Week 3 | W4Week 4 | W5Week 5 |
|---|---|---|---|---|---|---|---|
| Sep 28 | 1,204 | 100% | 44% | 36% | 32% | 29% | 27% |
| Oct 5 | 1,318 | 100% | 46% | 38% | 33% | 31% | |
| Oct 12 | 1,152 | 100% | 43% | 35% | 31% | ||
| Oct 19 | 1,407 | 100% | 48% | 39% | |||
| Oct 26 | 1,389 | 100% | 47% | ||||
| Nov 2 | 1,266 | 100% |
Each row is the people whose first event fell in that week, in the project’s time zone.
two questions
Who started, and what counts as coming back?
Every retention grid answers both. Pick a start and a return, and Rabolic groups people by when they started and fills in who returned.
1Cohort: people who
- First visit
$pageview · $screen - Their first page view or screen. Only people who are new in the period count, so returning users don’t join a cohort twice.
- First app open
$app_first_open - The first launch after install, sent by the React Native and Flutter SDKs on iOS and Android.
- Signed up
signup_completed - The signup_completed event you send with track(), when someone creates an account on any platform.
- First purchase
$purchase - A verified purchase, to follow paying customers. Offered once the project has Dodo Payments connected.
2Came back and
- Any session
$pageview · $screen - Came back at all: any page view or screen.
- Did a key event
workout_started - Came back and did one of your key events, such as starting a workout.
- Purchase
$purchase - Bought again: repeat revenue, with Dodo Payments connected.
n_day · unbounded · rolling
Three ways to count the same people.
N-day asks who came back in exactly that week. Unbounded asks who was still around that week or later. Rolling asks who has come back at all by then. Switch between them on the same grid, and show each cell as a share or as a number of people.
- Week 0 is everyone who started: 100%
- Cells that haven’t happened yet stay empty
- An average row across all cohorts
Signed up → Any session
Week of Sep 21 · 1,318 people
100%100%100%
W0
46%63%46%
W1
38%54%57%
W2
33%47%63%
W3
31%41%67%
W4
29%35%70%
W5
27%27%72%
W6
N-day: Returned in exactly that week.Unbounded: Returned in that week or any later one.Rolling: Returned at any point up to and including that week.
by platform and channel
Compare web with your apps.
The same cohort gets a curve for each platform, so you can see whether app users stick better than web visitors. A second view ranks channels by how well the people they brought are retained.
- A retention curve for web, iOS and Android
- Each channel’s retention, by the event that started the cohort
- Counted per person, after
identify()links their devices
Retention by platform
- Week 4
- iOS 33%
- Android 28%
- Web 23%
Week 4 retention by channel
- Email34%
- Organic Search29%
- Direct26%
- Paid17%
project time zone
Days that start at your midnight.
Cohorts are cut in the time zone you set for the project: days at midnight, weeks on Monday, months on the 1st. A cohort’s first day is the same day your other reports show.
| Interval | Cohorts shown | Columns |
|---|---|---|
| Daily | 14 days | Day 0, 1, 2, 3, 5, 7, 10, 14, 21 and 30 |
| Weekly | 10 weeks, starting Monday | Week 0 to week 8 |
| Monthly | 7 months | Month 0 to month 6 |
retention faq
Retention, answered.
What starts a cohort?
The event you choose: a first visit (the first page view or screen of someone new), the first app open after install, a sign-up (signup_completed), or a first purchase. People are grouped by the day, week or month in which they first did it.
What counts as coming back?
Also your choice: any session at all, one of your key events such as workout_started, or another purchase.
What is the difference between N-day, unbounded and rolling?
N-day counts people who came back in exactly that period. Unbounded counts those who came back in that period or any later one. Rolling counts those who came back at any point from the first period up to and including that one.
Which time zone are the cohorts in?
The project’s. Days start at midnight where your project is, weeks start on Monday, and months on the 1st, so a cohort matches the days in every other report.
Does retention count people or devices?
People. Retention runs after identity resolution, so someone who signs up on the web and comes back in your app counts as one person who came back.
Can I compare platforms and channels?
Yes. Rabolic draws a retention curve for each platform, and shows how well people from each channel are retained, by the channel of the event that started their cohort.
Why are the latest cells empty?
Because that time hasn’t happened yet. A cohort that started last week can’t have a week-4 number, so the cell stays empty instead of showing 0%.
See which week your users stop coming back.
Start a 3-day trial without a card. It begins with your first event, so you can set up the SDKs first.
- 1
Create a project
Sign up, name your project, and copy its publishable key.
- 2
Add an SDK
Web, React Native, Flutter or Node.js, or the HTTP API. Or run npx rabolic init.
- 3
Watch the first event arrive
It shows in live events within seconds, and your trial starts then.