Loading tutorials…
Loading tutorials…
Retention is the single most predictive metric for product-led growth — and the most misread. 'Day-7 retention is 35%' means nothing without knowing the cohort and the return event. Here's the build that makes retention actually decision-grade.
Who this is forFounders, PMs, and growth marketers who need to know whether the product is genuinely working — not just whether new signups are growing. If your churn rate looks fine but MRR is flat, your retention chart is probably the answer.
What you'll need
Step 1
Retention isn't one number — it's a question. 'Of users who signed up last week, what % returned and used Feature X?' Define this before building.
Write the retention question: 'Of users who signed up in week N, what percent returned and completed [meaningful action] in week N+1, N+2, ..., N+8?'
Pick the START event (the cohorting event). Usually: signup_completed, account_created, or first_purchase. Less commonly: a product-engagement event like feature_used.
Pick the RETURN event (what counts as 'retained'). Options: any event (broad — 'did they return at all'), session_start (medium), or a key product action (narrow — 'did they get value again').
Decide the retention type: N-day (returned on exactly day N), Unbounded (returned on day N OR after), Rolling (returned within a window).
Decide the cohort granularity: daily, weekly, or monthly. For B2C, daily is signal-rich. For B2B SaaS with weekly usage, weekly or monthly.
Write your decision rule: 'If 4-week retention is <20%, the product isn't sticky enough. If 20-40%, optimize onboarding. If >40%, double down on acquisition.'
Step 2
Reports → Retention → +New. Pick start event, return event, retention type, time granularity. Save.
In Mixpanel left sidebar, click Reports → Retention (or Insights → +New → Retention in newer UI).
First Event (cohort-defining): pick signup_completed (or your equivalent).
Returning Event: pick the meaningful return action. For early-stage SaaS, try 'session_start' first to see general return rate, then 'feature_used' for product-value return rate.
Retention Type: start with 'Unbounded' for cleaner curves. Use 'N-day' (Day-N retention exact) when you have a specific operational hypothesis (e.g., 'Day 7 is critical because that's when trial ends').
Date Range: set to last 12 weeks for weekly cohorts. Less than 8 weeks is too noisy.
Cohort Granularity: Daily for B2C apps with high frequency, Weekly for SaaS with weekly use, Monthly for low-frequency B2B.
Click Save → name it descriptively: 'Retention: Signup → Any Activity (Weekly, Unbounded)'. Add to a dashboard.
Step 3
Retention reports display as a triangle: rows = cohorts (week of signup), columns = weeks since signup, cells = % retained. Read top-down and left-to-right.
Each ROW is a cohort — the group of users who fired the start event in that week.
Each COLUMN is a 'weeks since start' bucket. Column 0 = the week they signed up (always 100% by definition). Column 1 = week after. Column 4 = a month later.
Each CELL value is the % of that cohort who fired the return event in that bucket.
Read top-down: 'Is retention improving for newer cohorts?' If Week 4 retention is going from 18% → 22% → 28% as cohorts get newer, your product is getting stickier.
Read left-to-right: 'What's the retention curve for any single cohort?' From 100% → 60% → 45% → 38% → 30% means most drop in week 1, then it plateaus.
Look for the inflection — the column where the curve flattens. That's your 'long-term retention' floor. If it never flattens, the product isn't retaining.
Step 4
Top of the retention report → Display type → Curve. Shows retention as a line chart over time, easier to compare cohorts visually.
Above the retention triangle, find the Display selector. Switch from Triangle to Curve (or Chart).
Now each cohort is a line on a chart. X-axis = weeks since start. Y-axis = % retained.
Look for two patterns: lines plateauing at a stable retention (good — that's your floor). Lines continuing to decline week after week (bad — no real retention).
Compare cohorts visually. If recent cohorts plateau higher than older cohorts, the product is improving. If they plateau lower, recent changes are hurting retention.
Use the Smoothing setting (top-right) to reduce noise on small cohorts. Don't smooth so much that you hide real signal — usually 7-day or 14-day smoothing is enough.
Step 5
Use the Breakdown selector to split retention by signup_source, plan_tier, country, or any property. Quickly answers "which segments retain best?"
In the retention configuration, find the Breakdown selector.
Pick a property: signup_source, plan_tier, country, company_size, etc.
The retention triangle (or curve) now shows ONE retention line per property value.
Insight: 'Organic search retains at 38% in Week 4; paid ads retains at 12%.' Your CAC math for paid ads should account for this — even if CPL is similar, LTV is wildly different.
Cap breakdown values at 5-10 to keep the chart readable. Properties with high cardinality (referrer URLs, exact countries) become unreadable.
Save the breakdown view as a separate report: 'Retention by Signup Source (Weekly)'.
Step 6
In the retention config, apply a cohort filter at the START event level. Now you're measuring retention only for that specific cohort.
Click the start event in the retention config. Add a property filter or cohort inclusion.
Example: only count users where signup_source = 'organic_search'. The retention chart now measures only organic-acquired users.
Example: only count users in cohort 'Activated Users' (who completed key action in first week). This is the 'retention floor' for users who got past activation — usually much higher than overall retention.
Compare filtered retention to overall. Difference reveals where activation lifts retention.
Save filtered reports separately and side-by-side on a dashboard: 'Overall Retention' vs 'Activated User Retention' vs 'Paying User Retention'.
Step 7
Mixpanel has an Addiction report (sometimes inside the Retention or Frequency report). Shows how many days/weeks per period users return — a habit measure.
In Reports, look for Addiction (or Frequency depending on UI version). Some UIs have it as a sub-mode of Retention.
Pick the start event (signup) and return event (session_start or feature_used). Pick a period — typically 30 days.
Output: 'X% of users who signed up returned on N days within 30 days'. Histogram of N values 1-30.
Healthy product: bimodal distribution. Cluster at 1-2 days (users who tried once and bounced) and cluster at 15-30 days (users who built a habit).
Unhealthy product: long tail at 1 day, almost nothing at higher N. Means lots of trial-and-abandon, no habit formation.
Use addiction data to define your 'engaged user' threshold — usually the median of the upper cluster. If users hit N days in 30, they're likely to retain long-term.
Common mistakes
Confusing N-day with Unbounded retention
What goes wrong: You build N-day retention and see Day-7 retention = 8%. You panic. You hire a growth specialist to 'fix' a product that's actually fine — Unbounded Day-7 retention is 32%, which is healthy for your industry. You waste $20K-50K reacting to a misread number.
How to avoid: Default to Unbounded retention for comparison to industry benchmarks. Use N-day retention only when you have a specific reason (operational deadline like trial expiry). Always state which type when sharing the number — 'N-day' vs 'Unbounded' makes a 3-4x difference.
Using anonymous events as start or return events
What goes wrong: Your start event is signup_completed (identified user) but your return event is page_view (often anonymous, especially on landing pages). Returning users who hit a marketing page anonymously don't count. Retention looks 60% lower than reality.
How to avoid: Both start and return events should fire from identified user sessions only. Use authenticated-only events. Or fix identification (see user-identification tutorial) so anonymous events merge with identified profiles.
Picking too-broad a return event
What goes wrong: Return event = 'any event' or 'Page Viewed'. Users who bounce to your blog (zero product value) count as 'retained'. Retention chart shows 35% Week-4 retention, but actual product-value retention is 12%. You stop optimizing onboarding because 'retention is fine'.
How to avoid: Pick a return event that represents real product engagement — feature_used, workspace_action, report_generated. Page views and session starts are too broad for product-led businesses.
Insufficient cohort size for retention math
What goes wrong: You have 12 weeks of data but only 20 signups per week. Each cohort is too small for the % retained to be meaningful. The chart shows 'Week 4 retention dropped from 40% to 10%' — but that's 8 users vs 2 users. It's noise, not signal. You roll back product changes that weren't actually causing the drop.
How to avoid: Use weekly or monthly cohorts when daily counts are <50. For very low-volume products, cohort by 4-week windows. Always check the absolute count alongside the percentage.
Not filtering internal users from retention math
What goes wrong: Your team of 12 engineers fires events constantly. They count as 'cohort members' and 'retained users'. Retention looks 8-15 percentage points higher than reality. New hires look at the chart and don't understand why their friends bounce when the official chart says retention is great.
How to avoid: Apply a cohort filter to retention reports: NOT In Internal Users. Maintain an `is_internal: true` property on your team accounts. Every retention chart should have this exclusion.
Confusing retention with churn
What goes wrong: Eng team builds a 'churn rate' KPI that's actually 1 - Day-1 retention. They optimize for 'churn' but really are optimizing for 'people who don't return tomorrow', not 'people who cancelled their subscription'. Two completely different problems get conflated and neither gets solved.
How to avoid: Define terms precisely. Retention = % who returned. Churn = % who explicitly stopped paying or deleted account. Track separately. Retention is product-led; churn is contract-led.
Recap
Done — what's next
How to set up Mixpanel cohorts the right way
Read the next tutorial
Hand it off
Retention is the single most-leveraged metric in product-led growth. A retention chart you trust enables every other strategic decision: where to invest, what to ship, when to scale acquisition. A vetted product analytics specialist can build your retention dashboard + benchmark against your industry + identify the retention drivers in 1-2 weeks for $600-1,400 at $14-16/hr.
See specialist rates
Industry benchmarks vary wildly. For PLG SaaS, Unbounded Day-7 retention of 40-50% is solid; 30-40% is average; under 25% suggests a product-market-fit issue. For B2B SaaS with weekly use cases, Unbounded Week-4 retention of 50%+ is the target. Always compare Unbounded numbers when benchmarking.
Retention = % of a cohort who returned over time. Stickiness = DAU/MAU ratio (daily active users / monthly active users), measuring how often active users come back. A product can have high retention but low stickiness (users return monthly but not daily) — that's fine for some categories (annual filing tools), bad for others (social apps).
Minimum 4 weeks of data for weekly cohorts. Ideally 12 weeks. Less than that and you can't see the curve flatten — you're just looking at early decay. New products under 3 months should focus on activation metrics, not retention.
Yes. Pick the feature event as the START event. Now you're measuring 'of users who used Feature X, what % returned and used Feature X again'. Compare retention curves of users who used Feature X vs users who used Feature Y to identify which features drive long-term engagement.
They're functionally similar. Both support N-day, Unbounded, and Bracket retention. Mixpanel's UI is generally simpler; Amplitude has slightly more advanced cohort comparison tools. Both produce the same answer when configured equivalently. If you're choosing between them, the retention reports won't be the deciding factor.
Mixpanel
Cohorts are how Mixpanel goes from 'analytics tool' to 'user-targeting engine'. The team that learns to build, sync, and curate cohorts well runs marketing 2-3x more efficiently than the team that doesn't.
Mixpanel
Funnels are the most-used Mixpanel report and the most-misread. The conversion-window setting alone changes 'we have a 12% signup-to-paid funnel' to '34%' — and most teams never touch it. Here's the build that actually answers the question.
Amplitude
Retention is the single most important SaaS metric. But Amplitude has three retention models and they answer different questions. Pick the wrong one and you'll think you're growing when you're actually leaking users.
Mixpanel
Product analytics is a job, not a tool. The teams that pretend it's a tool spend 18 months building a Mixpanel project that doesn't answer their questions. The teams that hire someone get clean answers in a quarter. Here's how to know which path you're on.