Bases de donnéesConnectez n'importe quelle base de données et analysez vos données instantanément·FichiersImportez des fichiers CSV ou Excel et explorez-les avec l'IA·ChatPosez vos questions en langage naturel — dialoguez avec vos données·Tableaux de bordCréez des dashboards interactifs à partir de vos requêtes en quelques secondes·IALaissez l'IA écrire le SQL à votre place·GraphiquesVisualisez les tendances avec des graphiques générés automatiquement·No-codeAucune connaissance SQL requise — demandez simplement en français·PartagePartagez vos dashboards en direct avec votre équipe en un clic·InsightsDétectez automatiquement les tendances et anomalies cachées dans vos données·ExportsTéléchargez vos résultats en CSV, Excel ou PNG instantanément·Bases de donnéesConnectez n'importe quelle base de données et analysez vos données instantanément·FichiersImportez des fichiers CSV ou Excel et explorez-les avec l'IA·ChatPosez vos questions en langage naturel — dialoguez avec vos données·Tableaux de bordCréez des dashboards interactifs à partir de vos requêtes en quelques secondes·IALaissez l'IA écrire le SQL à votre place·GraphiquesVisualisez les tendances avec des graphiques générés automatiquement·No-codeAucune connaissance SQL requise — demandez simplement en français·PartagePartagez vos dashboards en direct avec votre équipe en un clic·InsightsDétectez automatiquement les tendances et anomalies cachées dans vos données·ExportsTéléchargez vos résultats en CSV, Excel ou PNG instantanément·
AnalityQa
FonctionnalitésPar métierTarifsOutilsBlog
ConnexionCommencer
Blog›SaaS / Customer Success

Cohort retention without the spreadsheet that nobody updates

Connect your subscription, product, or signup data and ask for a retention heatmap by signup month, plan, or acquisition channel. AnalityQa AI does the cohort math, the joins, and the chart — you read the result.

Try AnalityQa AI AI free →See live examples
SaaS customer success team reviewing analytics

The problem

  • →The first cohort table is a heroic Excel build; the second one never gets updated because no one remembers how the formulas were wired.
  • →Cohort breakdowns by plan, geography, or acquisition channel each require a separate pivot table — three slices means three brittle workbooks.
  • →Defining the cohort event (first paid invoice? first product login? signup date?) silently varies across teams, so retention numbers in different decks never match.
  • →By the time the cohort report is refreshed, the at-risk months have already played out and there is nothing left to act on.

Why the usual approach breaks down

Cohort math is mechanical but unforgiving

A cohort retention table needs a triangular layout — each row a cohort, each column an age, each cell a survival rate. Building that in Excel requires nested COUNTIFS or pivot tables that lose flexibility the moment you need to slice by another dimension. One renamed column upstream and the whole sheet shows zeros.

The cohort event is not in one table

Signup date lives in your CRM. First paid invoice lives in Stripe. First meaningful product action lives in your product database. A retention table that uses any of these as the cohort event needs a join that the analyst has to maintain across three systems with different ID conventions.

Survival rates need consistent denominators

Each cohort cell is `accounts still active at age N divided by cohort size at age 0`. Decide what "still active" means once — login? paid status? non-zero usage? — and apply it across every cohort, every column. Inconsistent denominators are the silent killer of retention reporting.

Multi-cut cohort views are where insight lives

The cohort heatmap by signup month is the table-stakes view. The interesting story is the same cohort sliced by plan, by acquisition channel, by company size. Each slice doubles the work in legacy BI; in Excel it doubles the workbook count.

How AnalityQa AI AI solves it

Upload your data — or connect it live — and ask in plain English.

01

Ask for the cohort table in one sentence

Type "Cohort retention by signup month for the past 18 months, defined as: customer is retained if they had a paid invoice in the calendar month" and AnalityQa AI translates that into the right SQL across your connected sources, runs it, and renders the colour-coded heatmap.

02

Auto-join across billing, product, and CRM

Connect your Stripe export, your product Postgres database, and your HubSpot CSV. AnalityQa AI scans schemas, detects matching keys (customer_id, account_id, email), proposes the join, and executes it once you confirm. The joined dataset is reused across every cohort question in the session.

03

Slice the same cohort by any dimension

After the base heatmap, ask "Now break this down by plan tier" or "Same chart but only for accounts acquired through paid channels." The cohort definition stays consistent — only the slice changes. Compare slices side-by-side without rebuilding the cohort logic.

04

Pin the cohort to a live dashboard

Save the heatmap to a dashboard that re-runs against fresh data on the schedule you set (hourly, daily, weekly). The CS lead, the founder, and the board pack all see the same numbers from the same source — no "which version is canonical?" debate.

05

Investigation mode for retention drops

When a cohort cell drops below trend, ask "Why did the August cohort retention drop at month 3?" AnalityQa AI runs an investigation across product usage, support tickets, and plan changes for that cohort, and returns a written diagnosis with the supporting evidence — not a chart you still have to interpret.

You askedGenerated in 4.2s

"Build a monthly cohort retention heatmap for the past 18 signup months, defined as: account had at least one paid invoice in the month."

MRR

€328k+4.1%

Net retention

112%+3pp

Churn

2.4%−0.6pp

Cohort retention heatmap (signup month × age in months)

Last 12 mo

Two side-by-side cohort heatmaps

Investigation report with evidence panels

A dashboard built in AnalityQa AI — from question to chart, no SQL.

Real examples

Paste your data. Ask. Ship.

You

Build a monthly cohort retention heatmap for the past 18 signup months, defined as: account had at least one paid invoice in the month.

AI

Generated a 18×18 retention triangle. Average month-1 retention is 91%, month-3 is 76%, month-12 is 58%. The November and February cohorts retain ~5pts above trend at month 6. The June cohort drops sharply at month 4.

Cohort retention heatmap (signup month × age in months)
You

Same heatmap, but split between Pro and Starter plans.

AI

Pro cohorts retain 14 percentage points higher at month 12 (71% vs 57%). The gap opens after month 3, suggesting onboarding completion is the divergence point — Starter accounts that complete onboarding retain similarly to Pro.

Two side-by-side cohort heatmaps
You

Why did the June cohort retention drop at month 4?

AI

The June cohort saw a 9pt drop at month 4 driven by 23 accounts churning during the same week. 18 of those accounts had no product login in the prior 21 days, and 11 had open support tickets unresolved for >7 days. The cohort had a 38% higher proportion of Starter plans than typical, which compounded the effect.

Investigation report with evidence panels
You

Compare the retention curve of customers who completed onboarding vs those who didn't.

AI

Onboarding completers retain at 84% at month 6 vs 51% for non-completers — a 33pt gap. The gap is widest at month 2 (when most non-completers churn) and narrows after month 9. Completion is binary in the data, so the comparison is clean.

Two retention curves on a single chart
You

Show me the cohort sizes alongside the retention curve so I can sanity-check the percentages.

AI

Generated a dual-axis chart: bars show cohort size at age 0 (ranging from 142 to 387), line shows month-6 retention. The cohorts with retention <50% are all small (n<200), so the percentages are noisier — confidence intervals widen below n=200.

Combo chart: cohort size bars + retention line

What teams get out of it

✓First retention heatmap goes from a 2-day Excel build to a 30-second prompt.
✓Same cohort definition is reused across plan, channel, and segment slices — no inconsistent denominators.
✓Retention drops are investigated the day they appear, not in next quarter's review.
✓Board-pack retention chart auto-refreshes from live data instead of being copy-pasted from a stale spreadsheet.

Frequently asked questions

What if our retention definition changes — for example, we move from "paid invoice" to "active product login"?+

Tell the chat. Type "From now on, retention means at least one product login in the calendar month" and the new definition applies to every retention question in the session. You can save the definition as pinned context so it persists across sessions.

Can we build cohorts on something other than signup date — like first product login or first paid invoice?+

Yes. Specify the cohort event in the prompt: "Cohorts based on first paid invoice month, retention measured by login activity." AnalityQa AI uses whatever event you name, as long as it exists in the connected data. You can also compare two definitions side-by-side.

Does AnalityQa AI handle survival analysis or just descriptive retention?+

Both. The default cohort heatmap is descriptive. For survival analysis — Kaplan-Meier curves, time-to-event with censoring — ask explicitly: "Run a Kaplan-Meier survival curve on retention, censored at the analysis date." AnalityQa AI will produce the curve and confidence bands.

How many cohorts can we display on a single heatmap?+

Up to ~36 cohort rows render cleanly. Beyond that the cells get too small to read. For longer-range views (5+ years of monthly cohorts) use quarterly or yearly cohorts, which AnalityQa AI will roll up automatically if you ask.

Can the cohort table refresh automatically?+

Yes. Pin the heatmap to a dashboard and set a refresh cadence — hourly, daily, weekly. The dashboard re-queries the underlying source on schedule. If you replace your CSV upload with a fresh export, the cohort table picks up the new data immediately.

What if our customer IDs differ between Stripe and our product database?+

AnalityQa AI's data prep step scans both sources and proposes the most likely join key based on column names and sample value overlap. If Stripe has email and your product DB has account_id, you confirm the email-to-account_id mapping once and the cohort can be built across both.

Will the retention numbers match what we currently report internally?+

They will if the definition matches what you currently use. The first time you build a cohort, AnalityQa AI shows the SQL it ran — you can compare it line-by-line with whatever your existing report uses. Discrepancies almost always come from definition differences (which you can now make explicit), not calculation errors.

Related guides

SaaS / Customer Success

Customer Churn Analysis Without the Spreadsheet Grind

SaaS / Customer Success

Know Which Accounts Are at Risk Before They Tell You

SaaS / Customer Success

Find Where Onboarding Breaks and Fix It With Data

Your data has answers. Start asking.

Upload a file or connect your database. Your first dashboard, in under 5 minutes.

Try AnalityQa AI AI free →

No credit card required

AnalityQa

Le workspace tout-en-un pour les data analysts et engineers.

Produit

  • Fonctionnalités
  • Tarifs
  • Blog
  • Outils gratuits

Société

  • À propos
  • Contact

Légal

  • Confidentialité
  • CGU

© 2026 AnalityQa AI. Tous droits réservés.

Tous les systèmes opérationnels