Cohorts and retention: do the people you win come back?
How a cohort table is built, how to read it by row, column and diagonal, three ways to count retention, and how to compare sources by customer.
On this page
Cohort analysis groups people by when or how they started, such as the week of their first visit, and follows each group forward to see how many come back. It answers "of the people who came in March, how many are still coming?", which a total can hide: visits can rise while each month's newcomers leave faster than the last.
This guide covers how a cohort table is built, how to read it by row, column and diagonal, the three ways to count retention, the traps, and how to judge sources by the customers they bring.
What a cohort is
A cohort is a group of people who share a starting event in the same period: everyone whose first visit was in the week of May 4, everyone who first bought in June, everyone who signed up from a podcast. You then follow each group forward and count how many do something again.
| First visit | People | Week 1 | Week 2 | Week 3 | Week 4 |
|---|---|---|---|---|---|
| May 4 | 820 | 14% | 9% | 8% | 7% |
| May 11 | 760 | 15% | 10% | 8% | |
| May 18 | 910 | 11% | 7% | ||
| May 25 | 880 | 12% |
Example numbers, made up for illustration. Empty cells are weeks that have not happened yet for that row.
How to read it
Across a row is the life of one group. The drop from week 0 to week 1 is always the steepest. What matters is whether the curve flattens. A row that settles at 7 percent and stays there has found people who keep coming. A row that keeps sliding toward zero has not.
Down a column compares groups at the same age. If week 1 falls from 15 to 11 percent, something changed for people who arrived in mid-May: a new campaign, a site change, a different season.
Along a diagonal is one calendar week across all groups. If every group dips on the same diagonal, the cause is that week (a holiday, an outage), not the people.
Three ways to count retention
The same people give three different tables depending on what a cell counts. GA4 names them (Google):
| Method | A cell counts people who | Use it for |
|---|---|---|
| Standard | Came back in that period | Habits: do people return week after week? |
| Rolling | Came back in that period and every one before it | Strict engagement, such as a daily app |
| Cumulative | Came back in any period up to that one | "Did they ever return?" |
Most websites want standard retention. A store with yearly purchases wants cumulative, or the table is all empty cells.
Pick the period to match how often people should come back. A news site reads daily or weekly. A furniture store reads monthly or quarterly. A weekly table for a business people visit twice a year shows a wall of low numbers that mean nothing.
Traps
- Deleting people inflates retention. If records of people who never came back are deleted after 90 days, later readings of old cohorts only count the people who stayed. A cohort's starting size must be kept as it was.
- Young cohorts are not low, they are early. A cell for a week that has not ended is incomplete. Compare only periods every row has finished.
- Cookies define people. A returning visitor on a new phone, or one whose browser cleared its cookies, looks new. Safari caps some cookies set by scripts at 7 days (WebKit), so retention measured by browser undercounts real returns. Treat it as a floor.
- Small rows swing. A cohort of 30 people moves 3 points when one person comes back. Read small sources monthly, not weekly.
Cohorts by source: the real use
The most valuable cut is by first source. Two campaigns can bring the same number of visitors at the same cost, and one of them brings people who come back and buy again.
For buyers, follow money instead of visits. Group customers by where they first came from and compare what each group spends over the same span of time:
| First source | Customers | Per customer, first 90 days | Bought again |
|---|---|---|---|
| Google search | 140 | $118 | 31% |
| Instagram ads | 210 | $74 | 12% |
| Email signup | 60 | $165 | 44% |
Example numbers, made up for illustration.
Compare a fixed window, such as the first 90 days, and only count customers who have had all 90. A customer who arrived last week has not had the time to buy again, and including them makes the newest source look worst. This per-source spend is the practical form of lifetime value, and it is the number to hold against cost per customer when you decide where the next dollar goes.
Where Sporetag fits
From Sporetag's cohorts code and help: return visits are grouped by the week (Monday start, in the site's time zone) or month of the first visit, and by first source, on paid plans with 90-day tracking. Anonymous profiles are deleted 90 days after their last visit, but their first visit stays in the cohort, so return rates never rise from deletions. The lifetime value table shows customers, revenue per customer, the share who bought again, and revenue per customer in their first 30, 90 and 365 days, counting only customers first seen at least that long ago.
Common questions
What is cohort analysis?
Grouping people by when or how they started, such as their first visit week or first source, then following each group to see how many come back or buy again.
What is the difference between retention and a returning visitor rate?
A returning visitor rate mixes everyone together in one period. Retention follows a fixed group over time, so you can see whether newer groups stay better or worse than older ones.
How do I read a cohort table?
Across a row for one group's life, down a column to compare groups at the same age, and along a diagonal to spot one calendar period affecting everyone.
What is the difference between funnel analysis and cohort analysis?
A funnel follows people through the steps of one result, such as cart to purchase, and shows where they leave. A cohort follows a group over weeks or months and shows whether they come back. Use a funnel to fix a conversion path and cohorts to judge retention.
Why does my cohort table have empty cells?
Those periods have not happened yet for that group. The newest row always has the fewest filled cells.
Sources
- Google Analytics Help: Cohort exploration. Checked October 2026.
- WebKit blog: Full third-party cookie blocking and more. Checked October 2026.
- Figures marked as examples are made up for illustration.
Spotted something wrong or out of date? Email hello@sporetag.com and we will fix it.