Building a Multi-Year Retention Cohort Table From Scratch
To build a multi-year retention cohort table, put each signing cohort in a row, use elapsed time since signing as the columns, and fill each cell with real revenue divided by starting revenue. One quarter of retention data tells you almost nothing, but comparing cohorts at the same point in their lifecycle shows real patterns.
Most teams either never build this table or build it once, let it go stale, and lose the habit of updating it. This guide walks through laying it out correctly the first time so it survives past the first quarter.
How do you decide what counts as a cohort?
A cohort is usually defined by signing period, month, quarter, or year depending on how many new accounts you sign in a typical period. A business signing a handful of accounts a month should group by quarter or year to keep each cohort large enough to show a meaningful pattern rather than noise from one or two accounts. A business signing dozens of accounts monthly can cohort by month and still have enough volume per group to trust the pattern. Pick the grouping that keeps each cohort big enough to mean something, and keep the definition consistent once you choose it.
How should you lay out a retention cohort table?
The layout that actually lets you compare across years puts each signing cohort in its own row, and each column represents elapsed time since signing, quarter one, quarter two, quarter three, rather than a fixed calendar date. This lets you place a cohort that signed three years ago directly next to one that signed last quarter and compare them at the same point in their lifecycle, which a calendar based layout cannot do cleanly. Getting this layout right from the start saves you from rebuilding the whole table later once you realize calendar columns do not let you compare cohorts fairly.
Fill In Real Revenue Numbers, Not Rough Estimates
Pull each cohort's actual starting ARR at signing and its actual ARR at each subsequent period from your billing or CRM system, rather than estimating from average deal size, which smooths over exactly the variation you are trying to see. Express each cell as that cohort's revenue at that period divided by its starting revenue, so every cohort starts at a common baseline regardless of its original size, and the percentages across a row become directly comparable to any other row in the table. Double check that expansion, contraction, and churn are each captured somewhere in the underlying pull, since a table that only reflects gross churn while quietly missing contraction will consistently overstate how healthy each cohort actually is.
Read the Table for Patterns Across Cohorts, Not Just Within One
The real value of a multi-year table is reading down a column, comparing every cohort at the same elapsed point, rather than only reading across one cohort's own row. If your most recent cohorts are retaining worse at the same elapsed point than cohorts from a couple of years ago, that is an early warning about something that changed, in your onboarding, your product, or the type of customer you are now signing, well before it would show up in a single blended quarterly number. A table read only row by row misses exactly this kind of cross cohort deterioration.
For example, suppose the cohort that signed two years ago kept most of its starting revenue by the fourth quarter, while last year's cohort has kept noticeably less at the same point. Reading across either row would look fine on its own. Reading down the column shows something changed, perhaps in onboarding, the product, or the type of customer you are now signing. A common mistake is explaining the gap away as noise before checking the size of each cohort. The decision rule: when a newer cohort trails older ones at the same elapsed point, investigate what changed before the trend spreads.
Keep the Table Alive Instead of Rebuilding It From Scratch Each Time
The most common failure with cohort tables is not building one, it is building one for a single board meeting and never updating it again. Set a recurring calendar reminder tied to your close process, and treat updating the table as part of closing the books, not a special project someone remembers to do occasionally. A table with a full history of consistent updates becomes genuinely valuable after a few years. A table rebuilt from scratch every time someone asks for it never accumulates that value and usually contains small definitional inconsistencies between versions.
Build and maintain the table in this order:
- Choose a cohort grouping, by month, quarter or year, that keeps each cohort large enough to show a real pattern, and keep it consistent.
- Put each signing cohort in its own row, and make each column the elapsed time since signing instead of a calendar date.
- Pull actual starting revenue and actual revenue for each later period from your billing or CRM system, not an estimate.
- Divide each period's revenue by the cohort's starting revenue, and confirm expansion, contraction and churn are all captured.
- Update the table as part of every close, so it builds a consistent history instead of being rebuilt on request.
What Good Looks Like
A good multi-year cohort table groups signings at a size that keeps each cohort meaningful, lays out elapsed time rather than calendar dates in its columns, uses real revenue figures rather than estimates, and gets updated as a routine part of closing the books rather than rebuilt occasionally from scratch.
Building The Capability (5-Stage Skill Ladder)
How to Get Started
Frequently Asked Questions
Should cohorts be grouped by month, quarter, or year?
It depends on your signing volume. Group by whatever period keeps each cohort large enough to show a real pattern rather than noise from just one or two accounts. A business signing few new accounts each month usually needs quarterly or yearly cohorts, while higher volume businesses can cohort by month and still trust the pattern.
Why should columns represent elapsed time instead of calendar dates?
Elapsed time columns let you place a cohort from a few years ago directly next to a recent one and compare them at the same point in their lifecycle. Calendar date columns cannot do this cleanly, since a cohort's third quarter of existence lands on a different calendar date depending entirely on when it signed.
How often should we update a multi-year retention cohort table?
Tie it to your regular close process so it updates every quarter without becoming a special project. A table updated consistently over several years becomes far more valuable than one rebuilt occasionally, since consistent updates avoid the small definitional drift that creeps in when different people rebuild the table from scratch each time.
About the numbers
This guide doesn't quote a sourced benchmark. Figures in it are estimates or general guidance, so check them against your own numbers.
Related Guides
How to Commission Multi-Year Deals Without Overpaying Upfront
Three ways to pay commission on multi-year contracts, what each does to cash flow and rep incentives, and how to weight renewals so reps still chase them.
Trading a Discount for Cash: Multi-Year Upfront Deals
When it makes sense to offer a discount for a multi-year contract paid upfront, how to size it, and what to check before you offer the trade.
Multi-Year Deals With an Exit Ramp Buyers Will Actually Sign
A comparison of lock-in, annual, and exit-ramp contract structures, and how to design the ramp so it protects both sides.
What Good NRR Looks Like at Each Stage of Growth
Net revenue retention means something different at each growth stage. Here is what to track and fix, plus a cohort table you can build yourself.
What It Actually Means for a CRO to Own Net Revenue Retention
What it actually means for a CRO to own net revenue retention day to day, the handoffs it requires across teams, and where that ownership tends to stall.
How the Pieces of a Retention and Expansion Program Fit Together
How signal detection, forecasting, escalation, and reporting for customer retention and expansion connect into one working system instead of separate efforts.