Online Tool Store Online Tool Store
📊 Data & CSV

· 4 min read

How to Build a Retention Cohort Table

Manesh Jayawardhana

CIO & Co-founder

Manesh Jayawardhana is the CIO and Co-Founder of Ceyentra Technologies, where he has spent over nine years leading the design and delivery of software solutions for clients across the globe, spanning web, mobile, AI, and capital market systems. He has grown Online Tool Store's engineering team from the ground up while steering the company's technical direction. His writing draws on this breadth of experience building and shipping software across a wide range of industries and markets. View on LinkedIn

Share

How to Build a Retention Cohort Table

Overall retention is 34% and someone wants to know whether that’s good. It isn’t a question the number can answer, because it’s an average across users who joined last week and users who joined two years ago — two populations with nothing in common.

A cohort table separates them. And once you’ve built one, the useful reading isn’t the one most people do first.

What a cohort table shows

Group users by when they joined — by week, month, or quarter. Each group is a cohort. Then, for each cohort, measure how many were still active one period later, two periods later, and so on.

Lay that out as a grid: cohorts down the side, periods across the top. Every row shows one cohort ageing. Every column shows different cohorts at the same age.

The rows always decline. That’s not information — every cohort loses people over time, and a row that didn’t decline would mean something had gone wrong with the measurement.

The columns are where the answer lives. Comparing the March cohort’s month-three retention against the June cohort’s month-three retention tells you whether the product got better at keeping people. That comparison is the entire reason to build the table.

Why people get stuck here

  • Reading across instead of down. The declining row looks like bad news and says nothing.
  • A vague definition of “retained”. A login is a weak signal; completing a core action is a strong one. Whichever you pick, changing it mid-analysis invalidates every comparison.
  • Partial periods. The newest cohort’s later columns haven’t happened yet, so they show as low and make the recent past look worse than it is.
  • Cohort periods that don’t match the product. Weekly cohorts for a tool people use monthly produce noise, not signal.

What a good cohort table looks like

Both counts and percentages

Percentages let you compare cohorts of different sizes. Absolute counts stop you over-interpreting a cohort of eleven people. You need both visible.

Incomplete periods marked

Cells representing periods that haven’t fully elapsed should be visibly flagged or blank. Leaving them in as low numbers is the fastest way to convince a room that retention is collapsing when it isn’t.

A period that matches usage

Weekly cohorts suit products with daily or weekly habits. Monthly suits most subscription and B2B products. Quarterly suits anything with a long sales cycle. The wrong period turns real signal into noise.

You CompareYou LearnCareful Of
Across a rowHow one cohort agesAlways declines — not a finding
Down a columnWhether new cohorts retain betterThe real improvement signal
Bottom-right cellsRecent cohorts, late periodsUsually incomplete data

Common mistakes to avoid

  • Celebrating a high number in a cohort with thirty users.
  • Changing the definition of an active user halfway through the analysis.
  • Including the current, partial period and reading the dip as churn.
  • Building monthly cohorts for a product with a weekly rhythm, then wondering why nothing is visible.
  • Presenting the whole grid without saying which comparison matters — a wall of percentages invites everyone to find their own story.

How to do it with Cohort Analysis Builder

The Cohort Analysis Builder lays out the grid and flags the cells you shouldn’t trust yet, all in your browser.

  1. Provide signup dates and activity dates, one row per user event.
  2. Choose a cohort period that matches how often people actually use the product.
  3. Define “retained” once, and write the definition down next to the table.
  4. Read down the columns first, then across the rows for context.
  5. Ignore or exclude partial periods before drawing any conclusion.

Other analysis views — treemaps, comparison tables, chart builders — are in the tools directory.

Frequently asked questions

Why compare down the column rather than across the row?

Across a row you’re watching one cohort get older, which always declines. Down a column you’re comparing different cohorts at the same age, which is the only way to see whether changes to the product are working.

What counts as retained?

Whatever action means value in your product. A login often overstates retention badly; a completed core action is more honest. Pick one, define it precisely, and never change it mid-analysis.

Why does the newest cohort always look bad?

Because its later periods haven’t happened. Those cells are incomplete, not low. Exclude them, or the curve will mislead everyone in the room.

Final thought

Build the table for one comparison: same age, different cohorts. If the numbers going down a column are rising over time, whatever you changed is working. Everything else in the grid is context.

Try the free Cohort Analysis Builder

#cohort-analysis#retention-table#user-retention#churn-analysis#online-tools#free-tools