Visualizers · Visualizer
SaaS Cohort Retention Heatmap
See retention by acquisition cohort and month since signup in a single heatmap, instead of scrolling a cohort table.
How It Works
A cohort retention table is one of the most useful things a SaaS business can build — and one of the hardest to actually read once it has more than a few rows. Rows blur together, and the eye can't easily tell a cohort that's retaining well from one that's leaking customers early.
This heatmap fixes that by coloring each cell instead of just printing a number. Rows are acquisition cohorts, columns are months since signup, and color intensity does the work your eye would otherwise have to do scanning a table.
Enter a retention percentage for each cohort at each month since signup. Month 0 is normally 100% (everyone who signed up that month is still active on day one) — leave later months blank or at 0 for cohorts that haven't reached that age yet.
Each cell is colored on a scale from your chosen minimum to maximum retention percentage — darker or more saturated typically means stronger retention, depending on the color scale.
The chart re-renders live as you edit any cell, so you can paste in numbers cohort by cohort and watch the pattern form.
How to Read the Chart
- Read across a row to see one cohort's retention curve over time — a row that stays intensely colored across many columns is a cohort that's retaining well.
- Read down a column to compare cohorts at the same age — for example, comparing every cohort's Month 3 retention side by side.
- A visibly weaker (lighter) row or a sudden color drop partway across a row is where retention degraded — the heatmap doesn't explain why, only where.
Example
Reading a 6x6 grid
<built-in method values of dict object at 0x7537a9961d80>
A cohort acquired in March showing 88% at Month 1 versus another cohort's 82% is retaining meaningfully better in its first month
Interpretation
- The single lowest cell value in a column shows which cohort is currently weakest at that age.
- A consistent downward color gradient across every row's columns is expected — retention naturally declines with age. What's worth noticing is which rows decline faster than others.
- This chart does not identify a cause for any cohort's performance — it only shows where the numbers you entered are strong or weak.
Methodology
Each cell's color is mapped linearly between the grid's minimum and maximum values (0% and 100% by default) using a single-hue intensity scale — no smoothing, interpolation, or estimation of missing cells is applied. What you enter is exactly what's rendered.
Limitations
This tool displays exactly the retention percentages you enter — it does not calculate retention from raw signup/cancellation data, and does not distinguish customer-count retention from revenue retention (use the Revenue Cohort Heatmap for the latter). Cells left at 0 for cohorts that haven't reached that age yet are treated as empty, not as 0% retention. Manual entry only in this version; CSV/file upload and export are not yet available.
Related Tools
Frequently Asked Questions
What should I enter for a cohort that hasn't reached Month 4 yet?
Leave those cells at 0. Any cell after Month 0 left at 0 is treated as 'this cohort hasn't reached that age yet' and is left uncolored rather than rendered as a 0% data point, so a young cohort won't be mistaken for one that collapsed to zero retention.
Should Month 0 always be 100%?
In most cohort retention definitions, yes — Month 0 represents everyone in the cohort before any time has passed for churn to occur. If your methodology defines Month 0 differently, enter whatever your own convention produces.
Is this customer retention or revenue retention?
This tool is for customer-count retention (what share of the cohort's customers are still active). For revenue retention by cohort, use the Revenue Cohort Heatmap instead.
Can I use this for weekly cohorts instead of monthly?
Yes — the column labels are just text; use whatever period makes sense for your business (weeks, quarters), as long as you're consistent across all rows.
Does the heatmap calculate an average retention curve across cohorts?
No — it displays each cohort's row independently. Averaging across cohorts would be a different, separate calculation.
Want this tracked automatically from real data?
Connect Stripe in read-only mode and Dnoise tracks your SaaS metrics automatically every month.
Connect Stripe — free →