How many profiles come back. Group profiles by the period they started in, follow each cohort period by period, and read the milestones, the curve, the trend over time, and a grid of every cohort, broken down by segment when you need it.
What a retention cohort is
Retention answers whether profiles come back. It groups profiles into cohorts by period, and follows each cohort forward to see how many are still active one period later, two periods later, and so on.
What puts a profile in a cohort depends on the event. With Sessions, a cohort is the profiles first seen in that period, the new profiles, so every profile belongs to exactly one cohort and never moves. With a custom event, a cohort is every profile that performed the event in that period, whether or not it was the first time, so a profile who does it in several periods is in each of those cohorts.
The page reads as a grid: one row per cohort, oldest at the top, and one column per period after the start. The first column is the cohort's size, headed New profiles for Sessions and Cohort size for any other event; each cell to the right is the share of that cohort still active that many periods on. Read a row to follow one cohort's decay; read a column to compare the same checkpoint across cohorts.
Periods are days, weeks, or months, and the whole page recomputes when you switch. A daily grid shows the first days after signup; a monthly grid shows whether profiles are still around a year later.
Three ways to count a return
"Still active at period N" can mean three things, and the retention type in the query builder picks which. They answer different questions and produce different curves from the same data.
- Classic counts a profile as retained at period N if it was active in that specific period, gaps allowed. Someone who skips a week and comes back the next still counts for the week they returned. This is the everyday reading of retention and the page default.
- Full is stricter: a profile counts at period N only if it was active in every period up to N, with no break. It measures an unbroken habit, and its curve always sits below classic.
- Unbounded is the most forgiving: a profile counts at period N if it was active in that period or any period after it. It measures whether profiles ever come back, and its curve sits above classic.
Pick classic to describe normal return behavior, full to find the genuinely habitual profiles, unbounded to size the audience you could win back. The same cohorts underlie all three, so switching type recolors the grid without changing who is in it.
Use Cases
Read the shape of retention
Understand how well profiles stick, in one read.
- Open Retention. It starts on Sessions with weekly periods, which suits most products; switch to daily for an onboarding-focused read or monthly for a long-lived one.
- Read the milestone cards. They are the standard checkpoints for the granularity, Week 1, 4, 8, 12 for weekly, and each counts every profile in the cohorts old enough to have reached it, so larger cohorts weigh more, the same weighted reading as the curve.
- Read the retention curve. The drop from the start to the first period is the onboarding cliff; where the curve flattens is the share of profiles that became regulars. A curve that never flattens is a product its audience keeps leaving.
- Switch the curve between Weighted and Standard. Weighted lets big cohorts dominate, standard treats every cohort alike; a gap between them means your cohorts differ a lot in size or quality.
- Drop to the grid for the exact numbers, cohort by cohort. A single bad row is a bad week to explain; a trend down the rows is retention changing.
Judge whether retention is improving
Tell whether the changes you shipped made profiles come back more.
- Read Change over time. Pick the period you care about in its dropdown, say Week 1, and the chart plots that one checkpoint for every cohort in the window. A rising line means each new cohort retains better at that checkpoint than the last.
- Compare the line with its Average. Recent cohorts above the average is momentum; below it is a slide.
- Add a comparison window in the date picker. The earlier window's trend rides as a muted ghost, so you can hold a release date between the two and see the before and after at the same checkpoint.
- Keep the granularity the same on both sides. A weekly window compares with a weekly window; the checkpoint has to mean the same thing.
- Confirm on the grid that the improving cohorts are large enough to trust, not two signups on a quiet week.
Find which segment retains
Find out who comes back, so you can do more of what works.
- Add a breakdown in the query builder: one property, up to five values. Platform, country, or acquisition source are the usual ones.
- Read the curve, now one line per value over the All baseline. A segment above the baseline retains better than the whole; one below drags the average down.
- Open the grid's segment switcher and read each segment's cohorts on their own. A segment can have a flattering curve on a handful of profiles; the grid shows the sizes.
- Compare the milestone read for each segment by switching the source between them, since the cards describe the whole audience.
- Act on the split: invest where retention is already strong, fix onboarding where a large segment retains poorly.
Retention of a behavior, not just of use
Measure retention of a specific behavior, not just of opening the app.
- Change the event in the query builder from Sessions to a custom event, a purchase, a lesson completed, a report generated.
- Each cohort is now every profile that did that in the period, and the grid follows whether they do it again in later periods. This answers "do profiles that buy keep buying" rather than "do profiles come back".
- Narrow the audience with a filter, or with a cohort or profile group, to ask the question of one group, for example the retention of purchasing among profiles acquired by a campaign.
- Read it the same way: the curve for the habit's shape, Change over time for whether it is improving, the grid for the detail.
FAQs
Why is the first column a count and not 100 percent?
Everyone in a cohort is active in the period the cohort covers by definition, so that rate would always be 100 percent. The first column shows the cohort's size instead, and the rates begin one period later.
Which dates does a cell cover?
Hover it. A column counts periods from each cohort's own start, so Week 3 is a different week on every row; the tooltip names the calendar period for that row and reads the cell in a sentence.
Why do the most recent cohorts look worse?
They are not worse; they are younger. A cohort three weeks old has no Week 8 value yet, so it is absent from that checkpoint rather than counted as a drop. Read the older cohorts for the settled picture.
Why do Standard and Weighted disagree?
Standard averages every cohort equally; Weighted lets larger cohorts dominate. A big gap means your cohorts differ a lot in size, or the large ones retain differently from the small ones.
Why is a milestone card empty?
No cohort in the window is old enough to have reached that checkpoint. Widen the range so at least one cohort has elapsed that many periods.
What does "computing in the background" mean?
The query was large enough that the server ran it as a background task instead of making you wait. The page fills in when it finishes, and the result is cached, so the next identical read is fast.
Why does a cohort's size differ from the new profiles in the Profiles section?
Only a Sessions cohort counts new profiles, those first seen in the period, aligned to period boundaries in the project's time zone; over the same aligned periods the two agree. With any other event the cohort is everyone who performed it in the period, new or not, so it is not a count of new profiles.