Retention Analysis
Measure how many users return over time. Retention is the core metric for product-market fit — it tells you whether users find ongoing value.
Key concepts
| Term | Definition |
|---|---|
| Cohort | Group of users who performed the starting event in the same period |
| Starting event | Event that defines cohort entry (e.g. signup_completed) |
| Return event | Event that counts as a “return” (e.g. page_view) |
| Day N retention | % of cohort users who performed the return event on day N |
Example: Day-1 and Day-7 retention
Starting event: signup_completed
Return event: page_view
Granularity: Day
Range: Last 90 daysReading the matrix
Cohort Day 0 Day 1 Day 7
2026-05-25 100% 42% 28%
2026-05-26 100% 45% —- Day 1 = 42% — 42% of May 25 signups returned the next day
- Day 7 = 28% — 28% were still active one week later
Benchmarks (B2C SaaS)
| Metric | Poor | OK | Good |
|---|---|---|---|
| Day 1 retention | under 20% | 20–40% | over 40% |
| Day 7 retention | under 10% | 10–20% | over 20% |
| Day 30 retention | under 5% | 5–10% | over 10% |
Build in Insights
- Go to Insights
- Select Retention visualization
- Starting event:
signup_completed - Return event:
page_view - Range: Last 90 days, granularity: Day
Choosing events
| Product type | Starting event | Return event |
|---|---|---|
| SaaS signup | signup_completed | page_view or key feature event |
| E-commerce | purchase | page_view or purchase |
| Mobile app | app_open | app_open |
SDK requirements
Retention requires consistent identity:
if (currentUser) {
identify(currentUser.id, { email: currentUser.email })
}Without identify(), returning users appear as new anonymous profiles.
Segment by channel
Add breakdown by $utm_source to compare cohort quality by acquisition channel.
Further reading
Last updated on