Industry packs are ready for eight industries. Start from journeys built for yours.Browse packs
AnalyticsUpdated 25 Jun 2026

Cohort Analysis: How to Build and Read a Retention Table

What cohort analysis is, why averages mislead, how to read a retention table, an eight-step build, cohort types, a SQL example and how to act on the findings.

VR
Written by Vikram Rathore
  • Published25 Jun 2026
  • Read time6 min
  • Length1,234 words
Share this guide
Cohort analysis guide cover

Your overall retention number can look steady while your newest customers quietly leave faster than your old ones. Averages hide that. Cohort analysis does not. It groups customers by when they started, then follows each group over time, so you can see whether a change you made last month actually helped. It is one of the most useful and least intimidating techniques in marketing analytics, and you can start with a spreadsheet. This guide explains what a cohort is, how to read a retention table, how to build one with a worked example, the types of cohort worth tracking and the mistakes to avoid.

What is cohort analysis?

A cohort is a group of people who share a starting point in time or a characteristic. In marketing, the most common cohort is everyone who signed up or made their first purchase in the same week or month. Cohort analysis compares how those groups behave in the periods that follow, for example how many are still active one, two or three months later. Unlike a single overall figure, it separates the effect of age from the effect of change, which lets you answer questions such as: are customers acquired after our onboarding redesign staying longer than those before it?

Why averages mislead

Imagine a business with 10,000 customers and a monthly retention of 80 percent. It sounds stable. But if the 6,000 customers who joined in the last two months retain at 60 percent and the 4,000 older customers retain at 105 percent of their starting spend, the picture is very different, and the future depends on the new group. Blended figures such as churn rate are useful, but cohorts show you where the number comes from. They also give a fair comparison: month three of one cohort against month three of another, rather than a young group against an old one.

How to read a retention table

A cohort retention heat map: rows are monthly signup cohorts, columns are months since signup, and cells show the percentage of the cohort still active, fading from dark at month zero to lighter in later months
Each row is a cohort. Read across to see how it decays, and down to see whether newer cohorts do better.
Signup monthCustomersMonth 0Month 1Month 2Month 3Month 4
June1,000100%42%31%26%24%
July1,200100%45%34%29%27%
August1,100100%50%39%34%
September1,400100%53%42%
October1,300100%55%

These numbers are an illustration. Read across a row to see how one group fades over time. Read down a column to compare cohorts at the same age: month 1 retention rose from 42 percent to 55 percent between June and October, which suggests something improved. The triangle shape appears because newer cohorts have not had time to reach later months. Look for three things: how steeply the first month drops, where the curve flattens, and whether newer rows are better or worse than older ones.

How to build a cohort analysis

  1. Define the starting event. First purchase, signup, first app open or trial start. Pick the one that matches your business.
  2. Define the return event. What counts as active: a purchase, a login, an opened feature. Be specific.
  3. Choose the cohort size. Weekly for fast products, monthly for most, quarterly for slow ones.
  4. Assign every customer to a cohort. Use the date of the starting event.
  5. Count activity by period since start. For each cohort, count customers active in month 0, 1, 2 and so on.
  6. Divide by cohort size. Retention in each cell equals active customers divided by the number who started.
  7. Visualise and compare. Use a heat map and compare rows at the same age.
  8. Ask why. When a cohort stands out, look at what changed that month: a campaign, a product launch or a pricing change.

Formula. Retention in month n = customers from the cohort active in month n ÷ customers in the cohort × 100

Types of cohorts worth tracking

Cohort typeGrouped byQuestion it answers
Acquisition cohortSignup or first purchase dateIs retention improving over time?
Channel cohortSource such as email, ads, referralWhich channels bring customers who stay?
Behavioural cohortAn early action, such as using a key feature in week oneWhich actions predict retention?
Campaign cohortCustomers who received a campaignDid the campaign cause a lasting change?
Plan or product cohortFirst product or planDo some entry points retain better?
Value cohortFirst order size or RFM groupDo high spenders last longer?

Behavioural cohorts are especially powerful. If customers who complete setup in the first three days retain at twice the rate, that is a strong hint to redesign your onboarding around that step. Value-based cohorts link nicely with RFM analysis and customer lifetime value, and channel cohorts help you decide where to put acquisition budget.

What to measure inside cohorts

  • Customer retention. The share still active in each period.
  • Revenue retention. Revenue from the cohort relative to its first month, which can exceed 100 percent if customers expand.
  • Repeat purchase rate. Share who place a second, third order.
  • Time to second purchase. A leading signal for retention in commerce.
  • Cumulative revenue per customer. A cohort-based view of value.

Cohorts in Flowfox

Events and attributes sit on one profile in the data model, so you can define a starting event and a return event without exporting data. The analytics section shows retention by cohort, and the segment builder lets you create a cohort as a live audience, for instance “signed up in October and has not completed setup”, then send it a journey. That closes the loop between insight and action. The retention use case and churn use case show practical patterns, and our retention strategies guide covers what to do with the findings.

-- Monthly signup cohorts and month-by-month retention
WITH cohorts AS (
  SELECT customer_id, DATE_FORMAT(MIN(created_at), '%Y-%m-01') AS cohort_month
  FROM orders GROUP BY customer_id
),
activity AS (
  SELECT DISTINCT customer_id, DATE_FORMAT(created_at, '%Y-%m-01') AS active_month
  FROM orders
)
SELECT c.cohort_month,
       TIMESTAMPDIFF(MONTH, c.cohort_month, a.active_month) AS months_since,
       COUNT(DISTINCT a.customer_id) AS active_customers
FROM cohorts c JOIN activity a USING (customer_id)
GROUP BY c.cohort_month, months_since
ORDER BY c.cohort_month, months_since;

If you use a data warehouse or a spreadsheet, a query like this produces the raw counts, and a pivot table turns it into the retention grid.

Turning findings into action

What you seeWhat it might meanWhat to try
Big drop in month 1Weak first experienceImprove onboarding, send a welcome drip. See drip campaigns
Curve never flattensNo habit formingAdd reasons to return: content, reminders, loyalty
Newer cohorts worseAcquisition quality or product changeReview channels and recent changes
One cohort much betterA campaign or change workedFind the cause and repeat it
Revenue retention above 100%Expansion or repeat purchasesInvest in cross-sell

Be careful about claiming cause. A better cohort may reflect a seasonal effect or a different audience rather than the change you made, so use a holdout group or an A/B test when you can, as described in our A/B testing guide. Keep cohorts large enough to be meaningful, since a cohort of 40 people will swing wildly month to month.

1Starting event, defined clearly
3Things to read: first-month drop, flattening, trend across rows
0Reasons to rely on averages alone

Common mistakes

  • Vague definitions. If “active” changes between reports, comparisons break.
  • Tiny cohorts. Small groups produce noise.
  • Comparing different ages. Compare month 3 to month 3.
  • Ignoring seasonality. A festival-month cohort behaves differently.
  • Stopping at the chart. The value is in the next action.

An average tells you how the business is. A cohort tells you where it is going.

See retention by cohort. Define starting and return events, view retention, and message the cohorts that need help.

Explore analytics

For further reading, see customer churn rate and customer segmentation, and visit the blog.

Frequently asked questions

What is cohort analysis?

Cohort analysis groups customers by a shared starting point, usually signup or first purchase date, and tracks how each group behaves over time, for example how many remain active each month.

What is a cohort in marketing?

A cohort is a group of customers who share a characteristic, most often the period in which they signed up or first bought.

How do you calculate cohort retention?

Divide the number of customers from a cohort who are active in a given period by the number who started in the cohort, then multiply by 100.

What is the difference between cohort analysis and segmentation?

Segmentation groups customers by attributes or behaviour at a point in time. Cohort analysis groups by when they started and follows them over time. The two work well together.

How big should a cohort be?

Large enough to avoid random swings. A few hundred customers per cohort is a useful guide, so use quarterly cohorts for small businesses.

Which cohort period should I use?

Weekly for fast-moving products, monthly for most businesses and quarterly for slow buying cycles or small customer counts.

Can I do cohort analysis in a spreadsheet?

Yes. Export customer IDs, start dates and activity dates, assign cohorts, count activity by period and use a pivot table to build the retention grid.

Topics#cohort analysis#retention#analytics#churn#customer behaviour
Was this guide helpful?Your answer helps us improve our guides.

See your own customers in Flowfox this week.

Start a free workspace, connect a data source and send your first journey. Or book a guided demo.