The SaaS retention heatmap: one row per cohort, one column per period, values shading in as they build. Export MP4, GIF, PNG or SVG.
Free to try · No design skills · Ready in about two minutes
Overview
A cohort retention chart is a grid, shaded like a heatmap, that tracks how a group of users who joined at the same time — a cohort — behaves over the periods that follow. Each row is one cohort, typically named for the week or month it started; each column is a period since that start (month 0, month 1, month 2, and so on); and each cell holds that cohort's value at that period, most often the percentage still active.
Reading down a column compares cohorts at the same age, e.g. every cohort's month-1 retention side by side. Reading across a row shows one cohort's own decay curve. Put together, the grid answers a question a single retention-rate number can't: is retention a fixed leak that every cohort experiences the same way, or an improving trend where newer cohorts stick around longer than older ones did?
It's the standard way SaaS and subscription businesses report retention to a board or investor, precisely because the shading makes the trend visible without anyone having to read every cell. A grid where the colour gets warmer toward the top-right tells the improving-retention story on its own.

How it works
Each row is a cohort; each column is a period since that cohort's start. A cell's shade scales with its value relative to the highest value in the grid, so the strongest retention reads as the most saturated colour.
Reochart fills cells in from top-left, and leaves a cell blank for any period a cohort hasn't reached yet — a brand-new cohort naturally has fewer filled columns than an older one, which is exactly what a real retention table looks like.
Examples
Real charts made in Reochart, each with its own data and theme. They animate automatically as you scroll.
Good fit
Reach for something else
Compare
Cohort retention chart vs the alternatives.
| Chart type | Best for | Avoid when |
|---|---|---|
| Cohort retention grid | Comparing many cohorts' decay side by side | You only have 1-2 cohorts to show |
| Line chart | One or two cohorts' retention curves, precisely | You have many cohorts — lines overlap into a mess |
| KPI scorecard | A single headline retention number with a trend | The cohort-by-cohort breakdown is the actual point |
| Area chart | Overall active-user count over time | You need to see retention BY signup cohort specifically |
Your data
One row per cohort, one column per period since that cohort started. Leave later columns blank for cohorts too young to have reached that period yet. Up to 12 periods, up to 10 cohorts.
| Cohort | Month 0 | Month 1 | Month 2 |
|---|---|---|---|
| Jan 2025 | 100 | 68 | 54 |
| Feb 2025 | 100 | 71 | 58 |
| Mar 2025 | 100 | 74 | 62 |
Step by step
Drop your numbers in, or import a CSV.
Choose the chart, theme and animation speed.
Tune colours, labels and add your brand.
Download MP4, GIF, PNG or SVG.
Best practices
Watch out
Combining weekly cohorts with monthly ones in the same grid makes columns meaningless. Pick one period unit and stick to it.
Past about 10 rows, individual cells shrink until the shading differences are hard to judge. Group older cohorts by quarter instead of by month.
A cohort that's only 2 months old doesn't have month-3 data. Leave it blank rather than estimating — a real gap is more credible than a guess.
A grid on its own doesn't say whether the numbers are good. Add a subtitle or headline stat naming the trend ("up 12pts since Q1") so the takeaway doesn't depend on reading every cell.
Why Reochart
FAQ
A cohort retention chart is a grid, usually shaded like a heatmap, that tracks how a group of users who joined at the same time (a cohort) behaves over the periods that follow. Each row is one cohort, typically named for the week or month it started; each column is a period since that start (month 0, month 1, month 2, and so on); and each cell holds that cohort's value at that period, most often the percentage still active. Reading down a column compares cohorts at the same age; reading across a row shows one cohort's decay curve. It is the standard way SaaS and subscription businesses show whether retention is a fixed leak (every cohort decays the same way) or an improving trend (newer cohorts retain better than older ones), which a single retention-rate number can't distinguish.
A name per cohort (the row), and a value for each period since that cohort started (the columns) — leave later columns blank for cohorts too young to have reached that period yet.
"Cohort retention chart", "retention heatmap" and "cohort analysis chart" all describe this same grid. A retention curve is different — a single line per cohort instead of a shaded grid — and is better suited to comparing just one or two cohorts' shapes directly.
Up to 10 cohorts (rows) across up to 12 periods (columns) before the grid gets too dense to read comfortably.
Yes. Charts animate by default, and you can export the animation as an MP4 or GIF, or grab a static PNG or SVG if you prefer.
Yes. Pro exports a crisp, scalable SVG vector, alongside MP4, GIF and PNG. Every export renders at 1080p.
Yes. The free plan lets you make every chart type except the animated bar chart race, and export an animated MP4 with a small watermark, no card needed. Pro adds the bar chart race, removes the watermark, and adds GIF and SVG, your brand colours and logo, longer videos and CSV import.
From the blog

11 min read
A step-by-step guide to building a number counter that actually lands: picking the number worth this treatment, setting an honest start point, adding the context that makes it mean something, and exporting an animated version for a launch post, a deck, or a milestone update.
Read article →

11 min read
A practical guide to building the handful of charts a quarterly business review actually needs: the growth number, the bridge that explains it, the pipeline read, the KPI scorecard, and the roadmap for what's next.
Read article →