Analyse behaviour › Tools
Retention: do users come back?
Retention shows how many people who did a start event came back to do a return event on day N. It shows one cohort for each day or week.
On this page
What it is for
Retention answers the question "do people come back?" For example: of the people who signed up last month, what share came back to create an invoice a week later?
For "did people who did A then do B, at any time?", use Funnels.
How it works
- Start event. The event that puts a person in a cohort. With no conditions, it is any event ("did anything").
- Cohort date. The UTC calendar day of the person's first start event ever. The person joins a cohort only when that day is between your start and end dates. With everyone active in the range, it is the day of the first start event between your dates.
- Return event. The event that counts as coming back. With no conditions, it is any event ("do anything"). This is the default.
- Day N. A person returns on day N if they have at least one return event on the calendar day exactly N days after their cohort date. Several return events on that day count as one return.
- Only people who… Extra conditions on who is counted. The start event must also match them. They do not change which events count as a return.
How to use it
- Select your project.
- In the left rail, open Explore and click Retention.
- Set the start and end dates in the bar at the top of the page. The first time, the range is the last 10 days, ending today, in UTC. After that, the page opens on the range that you last applied or analysed here.
- In the sentence, click did anything to set the start event. Under the sentence, type a Name in the sentence, for example "signed up". Then add conditions, as for a funnel step. With no conditions, any event counts.
- Click do anything to set the return event in the same way.
- Set the days after on day. The default days are 1, 3, 7, 14 and 30. To remove a day, click its ×. To add a day, type a number in + day, then press Enter or click Add.
- Optional: tick Only people who… and add conditions.
- Optional: in Group by, choose day or week. For a date range of more than 14 days, the default is week.
- Optional: in Count, choose new people only (the default) or everyone active in the range.
- Click Analyse retention.
The answer appears under Answer.
Read the answer
The header of Answer shows the period and the days. Then:
- The sentence. For example "32.0% of people who signed up came back to create an invoice on day 1". It uses the first day in your list. If no cohort has reached that day yet, it says "No group of people has reached day N yet." With new people only, the sentence says "of new people who". If the project's retention can have deleted older events, a line under it says "Older events are outside this project's retention, so some returning people can look new."
- A tile for each day. The share, and the people who returned over the people who could return by then.
- The curve. Day 0 is 100%. Then the curve shows the share of each day. It stops at the first day that no cohort has reached.
- Daily cohorts or Weekly cohorts. One row for each cohort.
| Column | What it shows |
|---|---|
| Cohort | The UTC day. By week, "Week of" and the Monday of the UTC week. "(so far)" marks the current week: more people can still join it |
| People | The people whose first start event fell in that day or week |
| Day N | The share of the row that came back on day N, with the number of people under it. The shading gets darker as the share increases |
How Sequential counts users
Without identify, retention counts browsers or app installs, not people. So cohorts look bigger and return rates look lower than they really are.
Call identify, and always use the same value for one person. Identify your users shows how.
- On a shared device, call
sequential.reset()at sign-out. Without it, Sequential counts the next person as the previous user returning.
What it needs
- Events from any supported source. See Install Sequential.
- A stable user id on your events. See Identify your users and Users and identity.
- Any organisation role can open Retention. See Roles and permissions.
Limits
- The start event and the return event are each one event that matches conditions, as a funnel step is. With no conditions, every event that your SDK sends counts, including page views, clicks and custom events.
- With do anything as the return, any event on day N counts, also a new start event.
- With new people only, a cohort starts from each person's first start event ever, not their sign-up date. A person who did the start event before your start date joins no cohort. With everyone active in the range, a cohort starts from the first start event in the date range, so an existing user joins a cohort as if they were new. Before 12 October 2026, that was the only rule. An agent chooses the same with
cohort. See Retention from an agent below. - Sequential can see only the events that it still holds. If retention deleted a person's first visit, that person can join a cohort as if they were new.
- Returns count only on the exact day. There are no "on or after" returns, no rolling windows and no monthly cohorts. A weekly row adds up the daily cohorts of its week.
- Days are UTC calendar days, whatever your time zone. The default dates are also in UTC, so if you are west of UTC, late in your day the default end date can already be tomorrow's date.
- Events with no user id are not a user. They join no cohort.
- With the Sequential SDK, PostHog or Mixpanel, retention joins the events from before
identifyto the identified user, as the Users list does. This also applies when the person identifies after the date range, so the result for a past period can change. A new link can take up to 5 minutes to apply. - With Amplitude, Pendo or Smartlook, nothing links the anonymous id to the identified value. They count as two users.
- If you moved from Smartlook, each identified person counts as two users. See Moving from Smartlook below.
- An analysis that you do not save as a view does not appear on Dashboard. The next time you open the page, the events, the days, Group by, Count and Only people who… go back to the default. The page keeps only the date range. To keep a question, use Save as view.
- A query stops after 30 seconds, and the page shows "Couldn't analyse retention". If this happens, shorten the date range, or remove the largest day.
- Days are whole numbers from 1 to 365. You can measure at most 10 days. There is no day 0.
More example questions
- Of the people who signed up, what share came back to create a report on day 7?
- After you changed onboarding, did the later cohorts return on day 7 more often than the earlier cohorts?
- Does the day 1 return rate stay the same as more people arrive, or does it fall?
Retention cannot answer "how many people who signed up created a report at any time later?" It counts a return only on the exact day. For that question, use Funnels.
Exact counting rules
- Returns after your end date. Sequential looks for returns up to your end date plus your largest day. So a cohort near the end of the date range can still show a day 30, if that day has already happened.
- Overall figures. Each tile adds the returned people of the cohorts that reached that day. It then divides that sum by the total size of those cohorts. So larger cohorts have more weight.
- Exact day only. Day N is not "on or after". A person who returns on days 5 and 9 does not count on day 7.
- Existing users. With new people only, a person who did the start event before the date range is in no cohort, so Retention shows how new people come back. With everyone active in the range, that person joins the cohort of their first start event in the range, as if they were new.
- The start-date cohort. With new people only, the cohort of your start date holds only the people who are new on that day, as every other cohort does. With everyone active in the range, it holds every existing user who did the start event on that day. Read it with care.
- Weekly rows. Each person has one cohort day. So a week row is the sum of the daily cohorts of that week, with no person counted twice.
- Before-and-after comparisons. To compare cohorts before and after a change, start the date range well before the change. A cohort holds the people whose first start event is on its day. A person can be new to Sequential but not new to your product, for example after you install the SDK. So treat the comparison as a trend only.
A worked example
Suppose that the row for 1 September has People 120. Its Day 7 cell shows 18.3% with 22 under it. So 22 of the 120 people whose first start event ever was on 1 September had a return event on 8 September.
Dates, days to measure and the results header
While the analysis runs, the Analyse retention button shows Analysing…. When it is done, a short "Retention analysed" message shows.
The date bar. You do not need its Apply button. It shows only after you change a date. Until then, the bar shows Applied.
Apply only clears the previous results. Analyse retention always uses the dates that are in the boxes now.
The days. Each day is a chip after on day. The page refuses a day that it cannot use, and says why. The list does not change then:
- "Enter a whole number of days from 1 to 365."
- "Day N is already in the list."
- "You can measure at most 10 days. Remove a day first."
With no day in the list, Analyse retention is off, and the page says "Add at least one day to analyse". After a refused day, until you type in + day again, it says "Fix the day value to analyse".
The results header. The header of Answer repeats the period and the days.
If your browser is not set to UTC, the period in the header can be one day off. East of UTC, the start shows one day early. West of UTC, the end shows one day late. The analysis itself uses the dates in the boxes.
No cohorts. If no one did the start event in the date range, the page says why, instead of a table of zeros.
Switching project. The results clear when you switch to a different project.
Save the question
From 11 October 2026, you can save a retention question for the project.
- Set the start event, the return event, the days and Group by. Optionally, set Only people who….
- Click Save as view.
- Enter a name in Retention view name and click Save retention view.
- The view keeps the question, its days, its grouping and Count. A view that you saved before Count existed opens with new people only. It does not keep the dates: it uses the dates in the bar.
- Through the API, a saved retention view keeps Count as
cohort:first_time(new people only) orfirst_in_range(everyone active in the range). A view withoutcohortreads asfirst_time. From 13 October 2026, Sequential refuses any other value with 422invalid_definitionat/cohort. The page offers only the two values. - The view shows as a pill under Saved retention views:, on Dashboard under Saved items, and in the search (⌘K) by its name, marked Retention, when you type.
- A pill or a card puts the question on the page. Then click Analyse retention.
- Owners, admins and members can save. Viewers can only apply.
When to call identify
Call identify:
- when a person signs up or signs in
- on each page load, for a person who is already signed in
Always use the same value for one person. Sequential counts two different values as two people.
How one person becomes several users
Retention counts users by the user id on each event. After your app calls identify, that id is the value you passed. Before that, it is an anonymous id that the SDK keeps in that browser or app.
- A person who uses a laptop and a phone counts as two users in two cohorts. A return on the second device is not a return for the first.
- A private window or cleared browser storage starts a new anonymous id. The same person then joins a new cohort as a new user.
- If the browser blocks all storage, the Sequential SDK starts a new id on every page load.
Effects that remain after you identify
With the Sequential SDK, PostHog or Mixpanel, the visit where a person is identified is not split. Retention uses the link from identify to the anonymous id. So the events from before identify count for the identified person.
With Amplitude, Pendo or Smartlook, nothing links the two ids. Each time a person starts anonymous and is then identified, an extra anonymous user joins the cohort of that day. That user usually does not return. This happens:
- on a sign-up
- on a sign-in on a new device or in a private window
- on a sign-in after a sign-out reset
This makes cohorts bigger and makes their rates lower.
Shared devices need a sign-out reset. When a person signs out, call your SDK's reset. In the Sequential SDK, this is sequential.reset(). The next person on that device then gets a new anonymous id. Without the reset, Sequential counts that person as the previous user returning.
Moving from Smartlook
Sequential's Smartlook-compatible script stores only the identify call under your user id. Every other event stays under the Smartlook visitor id. So each identified person counts as two users:
- the visitor, with all their activity
- your user id, which is active only on the days when
identifyruns
Retention from an agent
An agent with analytics:read reads retention with the tool retention_analysis. It takes cohort:
first_time, the default: the page's new people only. Each person joins the cohort of their first start event ever, when it is in the window.first_in_range: the page's everyone active in the range, the rule before 12 October 2026. Each person joins the cohort of their first start event in the window, so a person who was active before the window joins a cohort as if they were new.
The answer gives cohort and cohorts_complete:
true: Sequential still holds all the events of the project, so the new people are new.false: retention can have deleted older events of the project. A person whose first visit was deleted can look new. Sequential checks the period that each stored day of events was kept with, so a shorter or longer period of the organisation does not change the answer for events already stored.null: Sequential could not check it.
With first_in_range, cohorts_complete is always true. POST /api/retention takes the same cohort.