DEV Community

Spencer Claydon
Spencer Claydon

Posted on Originally published at foundra.ai

How to Run a Cohort Analysis for Your Startup

A founder I talked to last year was convinced his product had turned a corner. Retention had climbed from 41% to 46% over five months. He put it in his investor update. He raised on it.

Then someone asked him to break it out by signup month.

Turns out retention hadn't improved at all. His January cohort was still retaining at 38%. His May cohort was retaining at 37%. What changed was the mix: he'd been pouring money into a paid channel that brought in a small number of very sticky enterprise trials, and those users were dragging the blended average up while the core product got no better. He'd raised money on an accounting artifact.

That's what a cohort analysis is for. It's the difference between knowing your average and knowing whether the thing you built last quarter actually worked.

What is a cohort analysis, and why does the blended number lie?

A cohort analysis groups users by something they share, usually the month they signed up, then tracks each group separately over time instead of averaging them together. The blended number lies because it mixes users who joined last week with users who joined two years ago, so a change in acquisition volume looks identical to a change in product quality.

Picture two companies. Both report 60% monthly retention. Company A has held every cohort at 60% for eighteen months. Company B's oldest cohorts retain at 25% and its newest retain at 85%, and the newest cohorts are large enough to pull the average up. Same headline number, completely different businesses. One is stable and one is either fixing itself fast or about to get a nasty surprise when growth slows.

You can't tell those apart from a single percentage. You can tell instantly from a cohort table.

The general principle here: any metric that averages across time will hide the thing you most want to know, which is whether time is making you better.

What kinds of cohorts should a startup actually track?

Start with acquisition cohorts grouped by signup month, then add one behavioural cohort and one channel cohort. Three cuts is plenty for a company under 1,000 users, and more than three tends to produce cells with four people in them, which is noise wearing a suit.

Acquisition cohorts group by when someone joined. This is your default and the one that answers "is the product getting better."

Behavioural cohorts group by what someone did. Everyone who connected an integration in week one. Everyone who invited a teammate. Everyone who hit the aha moment, whatever yours is. These are how you find the action that predicts retention, which is the single most useful thing early analytics can give you.

Channel or source cohorts group by where someone came from. Product Hunt traffic, organic search, a specific newsletter sponsorship. This is what my founder friend needed and didn't have.

Plan or price cohorts matter once you have more than one tier. Free users and $99 users churn for different reasons and blending them tells you nothing actionable about either.

If you're pre-launch or in your first hundred users, just do signup month. Adding dimensions to a dataset that small is a way to feel busy.

How do you build a cohort analysis in a spreadsheet?

You need three columns to start: user ID, signup date, and a row for every month that user was active. From there it's a pivot table and about forty minutes.

Here's the actual sequence:

  1. Label each activity row with the user's cohort month. If someone signed up on 14 March, every row for them gets tagged 2026-03, forever.
  2. Add a period number. This is months elapsed between the cohort month and the activity month. Signup month is period 0, the next month is period 1, and so on.
  3. Pivot. Cohort month down the rows, period number across the columns, count of distinct user IDs in the cells. You now have a triangle: older cohorts have more columns filled in than newer ones.
  4. Divide by period 0. Every cell divided by the first cell in its row turns raw counts into retention percentages. Period 0 is always 100%.
  5. Add a three-colour conditional format. Red through green. This is not decoration. The pattern is the finding, and your eye picks up a colour gradient about ten times faster than a grid of numbers.

That's it. You do not need a data warehouse for this. You need an export of your users table and an export of whatever event counts as "active," which for most early products is a login or a single core action.

If you're building financial projections off this, the cohort table is where your retention assumption should come from rather than a number you picked because it felt reasonable. Foundra's planning workspace and most decent financial modelling templates will ask you for a monthly retention rate; feeding it a cohort-derived number instead of a guess is the difference between a model and a wish. Same applies to any of the free calculators at foundra.ai/tools/ that take churn as an input.

How do you read a cohort retention curve?

Plot each cohort as a line, period on the x-axis and retention on the y-axis, and look at the shape rather than the level. There are three shapes and each one means something specific.

It declines forever. The line keeps sloping down and shows no sign of levelling. This means nobody has found lasting value yet. Not a subset, nobody. The honest read on a perpetually declining curve is that your foundational users haven't arrived, either because the product doesn't solve the problem yet or because you're acquiring the wrong people. Growth spend at this stage fills a bucket with a hole in it.

It flattens above zero. The line drops, then levels out and holds. This is the good one. A flattened curve means some meaningful slice of every cohort found enough value to stay indefinitely, and that slice is your real market. Most people who write seriously about product-market fit treat a flattened retention curve as the clearest behavioural evidence there is, more reliable than survey scores or revenue, because it's users voting with their time rather than their opinions.

It smiles. The line drops, flattens, then curves back up as churned users return and existing users expand. This is rare and it's the strongest signal in the set. A smiling curve is what eventually produces net revenue retention above 100%, because it means churn isn't permanent.

For rough calibration: top-quartile consumer apps see day-30 retention in the 25% to 40% range and flatten somewhere around day 60 to 90. Strong B2B SaaS holds annual logo retention above 90%. But be careful with benchmarks at your stage. Directional improvement across cohorts matters more than hitting somebody else's number, and an early-stage company comparing itself to a public SaaS benchmark is comparing a sapling to a forest.

What do you do when the curve never flattens?

Segment harder before you conclude the product is dead. A curve that declines in aggregate very often contains one segment that flattens beautifully, and finding that segment is the whole job.

Split your worst-looking cohort by anything you have: company size, use case, acquisition channel, whether they completed onboarding, what they did in the first 48 hours. You're looking for a subgroup whose line goes flat. If you find one, you've found your beachhead, and the strategic move is usually to narrow, not to add features.

If you segment six ways and every line still points at zero, that's real information too. It means the problem you picked isn't painful enough or your solution isn't better enough, and more features won't fix either. That's a pivot conversation, and cohort data is one of the few things that makes that conversation less about ego and more about evidence.

How do you run a cohort analysis on revenue instead of users?

Swap the count of users for the sum of revenue in each cell, keep everything else identical. The resulting table shows net revenue retention by cohort, and it can look wildly different from your user retention table.

This is where a lot of B2B startups find good news they didn't know they had. You can lose 40% of the logos in a cohort and still be at 110% revenue retention if the survivors expand. You can also find bad news: cohorts where revenue holds up only because two large accounts are carrying a hundred small ones.

A blended NRR figure is especially prone to hiding this. Your best cohorts can be expanding at 130% while your worst contract at 70%, and the two cancel into something that looks like flat stability. For context on where you'd be aiming eventually, 2026 benchmark data puts median NRR for private SaaS at roughly 101%, with SMB-focused companies near 97% and enterprise-focused ones around 118%. The segment differences are large enough that a single blended target is close to meaningless.

If you're already tracking churn rate and MRR, the revenue cohort table is the natural next artifact. It's the one that tells you whether your churn number is a product problem or a customer-selection problem.

Which mistakes make a cohort analysis useless?

The four that show up most: cohorts too small to mean anything, the wrong definition of "active," reading incomplete cohorts as if they were finished, and building the table without a decision attached to it.

Cohorts under about 30 users produce noise. One person churning moves the number by three points. If you're at 200 total users, use quarterly cohorts instead of monthly ones and accept the lower resolution.

"Active" needs to mean something. A login is a weak definition for most products. Pick the action that represents someone getting value: sent a message, created a document, ran the report. If you're not sure, run the table twice with two definitions and see which one produces a curve that separates good cohorts from bad ones.

Your newest cohorts are not underperforming. They just have fewer periods of data. Compare period 3 to period 3, never period 3 to period 12, and grey out the cells that haven't happened yet so nobody in the room reads the triangle wrong.

Decide what you'd change first. Before you build the table, write down the decision it's meant to inform. Should we keep spending on this channel. Did the onboarding rewrite work. Do enterprise trials retain better than self-serve. A cohort table built without a question becomes a slide, and slides don't change anything.

One more, less obvious: watch for the 2026 version of vanity signups. A lot of AI-adjacent products are pulling large volumes of curious users who try the thing once, and those users flood period 0, crush your retention percentages, and tell you nothing. If a chunk of your traffic is tourists, cohort them separately or your denominator will make a healthy product look broken.

Which tools should you use, and when?

Use a spreadsheet until it hurts, then use a free product analytics tier. Paying for analytics before you have a retention question you can't answer in Excel is a common early mistake.

Stage What to use Why
Pre-launch to ~500 users Google Sheets or Excel Forty minutes, full control, forces you to understand your own data
~500 to a few thousand PostHog, Mixpanel, or Amplitude free tiers Mixpanel's free tier covers 1M events a month; Amplitude's starter plan covers 10K monthly tracked users; PostHog can be self-hosted
Revenue cohorts, any stage Stripe Sigma or your billing export plus a pivot table Billing data is cleaner than event data and you already have it

Amplitude and Mixpanel both do behavioural cohorting well and will save you real time once you're asking more than two questions a week. PostHog suits engineering-led teams that want the data in their own infrastructure. Google Analytics 4 has cohort reports and they're serviceable for web funnels, less so for product usage.

The tool is not the hard part. Deciding what "active" means and being willing to look at an ugly curve is the hard part.

Key takeaways

  • A blended retention number can move purely because your acquisition mix changed. Cohorts separate product improvement from mix shift.
  • Start with acquisition cohorts by signup month. Add behavioural and channel cohorts once you have the volume to support them.
  • The shape matters more than the level: declining forever means no fit yet, flattening above zero means real fit, and a smiling curve is the strongest signal you can get.
  • Under about 30 users per cohort, switch to quarterly grouping or accept that you're reading noise.
  • Run the same table on revenue as well as users. The two often disagree, and the disagreement is usually the insight.
  • Write down the decision before you build the table. Otherwise you've made a slide.

FAQ

How many users do I need before a cohort analysis is worth doing?
Roughly 30 per cohort for the numbers to be stable. Below that, group by quarter instead of month, or just read the raw counts and skip the percentages. Percentages on small numbers create false precision.

How often should I run one?
Monthly is right for most early startups. Weekly cohorts are useful if your product has a daily-use pattern and you're actively iterating on onboarding, but monthly matches the cadence of most decisions you'll actually make.

What's the difference between a cohort analysis and a churn rate?
Churn rate is a single number for a period. A cohort analysis is churn broken out by group and tracked over time. Churn tells you how much you lost last month; cohorts tell you whether that number is improving and for whom.

Can I do a cohort analysis before launch?
Not on retention, since you need usage data. But you can cohort waitlist signups by source and track what percentage of each source converts when you open the doors, which is a useful early read on channel quality.

Does a flat retention curve prove product-market fit?
It's the strongest single piece of behavioural evidence, but it isn't proof on its own. A curve that flattens at 4% means a tiny group loves you. You need the curve to flatten and the flat portion to be large enough to build a business on, plus month-over-month growth in new cohorts of similar quality.

Should I include free users in my cohorts?
Track them separately. Free and paid users have different intent and different reasons to leave, and mixing them makes both curves harder to read. If you have a free tier, the interesting cohort question is usually what percentage of each free cohort converts by period 3.

Top comments (0)