The Growth Accounting Framework Every SaaS Finance Team Should Run

New MRR + expansion - contraction - churn = net new MRR. Simple enough. But decomposing each component into its cohort structure — that's where FP&A teams find the real levers. Here's how.

Growth accounting MRR waterfall decomposed by cohort

Growth accounting is a framework for decomposing the change in your MRR (or ARR) into its constituent components. The formula is straightforward:

Net New MRR = New MRR + Expansion MRR − Contraction MRR − Churned MRR + Resurrection MRR

Every component is measurable from billing data. Most FP&A teams track this formula in some form. The problem is how they track it — typically as a single-period aggregate that tells you what happened but not why, where, or which specific customer cohorts were responsible for each component. This piece is a practical guide to building the cohort layer into each component, and why it changes what the model is actually useful for.

Why the standard waterfall is incomplete

A standard MRR waterfall — the stacked bar chart showing each component contributing to net new MRR — is a useful board-level summary. The CFO sees that new MRR was $120K, expansion was $38K, contraction was $12K, churn was $45K, and net new MRR was $101K. That's the picture for the period. It takes about 30 seconds to read and generates approximately zero actionable decisions.

What the standard waterfall doesn't show:

  • Which acquisition cohorts are generating the $38K in expansion — is it a recent cohort upgrading because they hit a usage ceiling, or an older cohort expanding after genuine value realization at M8+?
  • Is the $45K in churn concentrated in one acquisition cohort (a pricing-change cohort, a specific channel's cohort, a seasonally weak onboarding period) or distributed evenly across the base?
  • Is contraction happening on accounts that are also likely to fully churn next month (early warning signal), or on stable accounts that downgraded due to a headcount reduction (external factor, not product risk)?
  • Is resurrection ($0 in most companies' reporting) actually occurring but undetected because the analysis doesn't track customers who returned after churning?

Without answers to these questions, the waterfall produces a quarterly narrative — "expansion offset churn again" — rather than a diagnosis. It becomes a reporting exercise rather than a planning input.

Building the cohort layer

The growth accounting framework becomes operationally useful when each component is disaggregated by acquisition cohort. The data structure change is modest: instead of computing new/expansion/contraction/churn at the base level for each period, you compute each component per customer, tag it with the customer's acquisition cohort identifier (typically acquisition month), and then aggregate by cohort.

The output is a matrix: acquisition cohorts in rows, calendar periods in columns, with each cell showing that cohort's contribution to each growth accounting component in that period. For a company with 24 months of billing history and monthly cohort definitions, this is a 24×24 matrix per component — unwieldy to build and maintain in a spreadsheet but immediately revealing when visualized as a heat map or stacked cohort chart.

What becomes visible in the matrix that wasn't visible in the aggregate: your oldest cohorts are contributing the bulk of expansion MRR because they've had the most time to identify expansion opportunities and go through value realization; your newest cohorts dominate new MRR by definition; and your churned MRR is often concentrated in specific cohort windows — commonly M6–M12 for each cohort, which represents the "second contract decision" period where customers who didn't fully realize value make the active choice to leave.

The five components in cohort terms

New MRR

New MRR is the revenue from customers first acquired in the current period. Every customer enters the model as new MRR at M0. At the cohort level, track two dimensions beyond just the total: ARPU at acquisition (average MRR per new customer) and the mix of plan tiers for the cohort. ARPU trend by cohort tells you whether the quality of new business — measured in initial contract value — is improving or declining over time. A growing company where ARPU at acquisition is declining quarter over quarter has an ACV compression problem that aggregate new MRR growth can temporarily hide.

Expansion MRR

Expansion is any incremental revenue from an existing customer: plan upgrade, additional seats, usage overage charge, or add-on purchase. In cohort terms, the critical dimensions are which cohort the customer belongs to and at what months-since-acquisition the expansion event occurred. Expansion timing by cohort tells you whether your product delivers recognizable value early (driving fast expansion) or late (driving slow but potentially more durable expansion). By acquisition channel, cohort-level expansion rates reveal which sources produce customers who grow their spend — a dimension your CAC model is ignoring if it uses blended LTV.

Contraction MRR

Contraction is reduced MRR from a customer who is still active — a plan downgrade, seat reduction, or usage-based underage. Contraction is a leading indicator of churn: customers who contract once are significantly more likely to churn within the next two or three billing periods than customers who stay flat. Tracking contraction by cohort surfaces whether a specific acquisition period, plan tier, or channel segment has an elevated contraction rate that predicts downstream churn risk before it shows up in the churned MRR line.

The separation between contraction and churn also matters for GRR calculation. Gross revenue retention excludes expansion but includes contraction — a company with 88% GRR has lost 12% of its installed base revenue through a combination of churn and downgrade, regardless of how much expansion has occurred. Cohort-level GRR tells you whether your contraction is systemic (affecting multiple cohorts broadly) or concentrated (specific to customers in a particular segment, plan, or acquisition period).

Churned MRR

Logo churn and revenue churn diverge. A company can have low logo churn (few accounts leaving) but high revenue churn if the departing accounts are disproportionately large. Conversely, high logo churn from small accounts — common in SMB-heavy growth phases — may have minimal revenue impact on the waterfall while still indicating a product-market fit problem in a segment. Cohort-level churned MRR analysis separates these: you can see whether churn is occurring at the account sizes you'd predict, whether the churn timing by cohort is clustering around predictable renewal decision windows, and whether specific cohorts (by channel, plan, acquisition period) are carrying elevated churn rates that are pulling down the aggregate.

Resurrection MRR

Resurrection is revenue recovered from customers who previously churned and re-subscribed. Most growth accounting models track this as a distinct category rather than conflating it with new MRR — because resurrected customers have materially different retention profiles and a different acquisition cost structure (typically near zero, since they already know the product). A resurrection rate above 2–3% of churned revenue in any period is worth tracking at the cohort level: which acquisition cohorts have high resurrection rates? The answer tells you which customer profiles are likely to return after churning, which has both CS and marketing implications. If your February 2024 cohort has a 12% resurrection rate at M18, that cohort's LTV calculation looks different than the model assumed at M0.

The quick ratio as a cohort health signal

The SaaS quick ratio — (new MRR + expansion MRR) ÷ (contraction MRR + churned MRR) — is a single-number efficiency metric that tells you how many dollars of growth you're generating per dollar of revenue lost. A quick ratio above 4 is generally considered strong; below 1 means you're losing more revenue than you're adding. It's a useful executive summary but has the same limitation as the waterfall — it's an aggregate that masks cohort-level variance.

Computing quick ratio by cohort vintage gives you a forward-looking version of the metric: for cohorts currently in M3–M9, what does their quick ratio look like relative to historical cohorts at the same age? Cohorts that are tracking below the historical quick ratio median at M6 are a leading indicator of NRR degradation over the next two to three quarters. Cohorts tracking above it are generating more expansion per unit of contraction+churn than your historical average — which predicts above-median NRR at M12.

NRR as a cohort-level metric

Net revenue retention is typically reported as a single base-level figure: the percentage of recurring revenue retained from all customers active 12 months ago, including expansion. 110% NRR means the company retained 100% of its existing revenue and grew it by a net 10% through expansion minus contraction and churn.

Cohort-level NRR asks a more precise question: what is the NRR of the customers acquired in a specific acquisition month, measured at their 12-month anniversary? This number is more predictive of future performance than base-level NRR because it isolates the quality of a specific acquisition cohort from the composition effect of the growing base.

A company with declining base-level NRR but stable cohort-level NRR may simply have more young cohorts in its base mix — cohorts that always start below 100% NRR before expansion accumulates over M6–M18. The declining aggregate figure is a composition artifact, not a business deterioration signal. Conversely, a company with stable base-level NRR but declining cohort-level NRR has a real quality problem that the headline metric is masking — a common pattern when aggressive growth is bringing in lower-quality cohorts whose full churn profile hasn't shown up in the base-level figure yet.

What the board actually wants to see

Board presentations that feature only aggregate growth accounting numbers produce one type of conversation: "good, bad, compared to plan." Board presentations that include cohort-decomposed growth accounting produce a different conversation: "here's where the churn is coming from, here's which cohort is driving expansion, here's the leading indicator we're watching for Q3."

The practical format for a finance team doing quarterly cohort growth accounting reporting: a three-slide summary. The first slide is the aggregate waterfall (same as always — the board needs the headline). The second slide is a cohort heat map showing MRR retention for the 12 most recent cohorts, with acquisition month on the y-axis and months-since-acquisition on the x-axis. Red cells show cohorts below your median retention benchmark; green cells show cohorts above it. Variance is immediately visible. The third slide is the waterfall decomposed by cohort vintage: which acquisition year's cohorts generated the expansion, the contraction, and the churn in the reported period.

This three-slide set doesn't require a data science team. It requires a customer-level data model that connects billing events to acquisition cohort tags. The build-once infrastructure produces a continuously updated view that removes the two-day analyst sprint before every board meeting.

Growth accounting done at the cohort level is a strategic planning tool. Done at the aggregate level, it's a quarterly compliance exercise with a waterfall chart.

Replace the weekly growth accounting spreadsheet.

Live MRR waterfall decomposed by cohort. No analyst prep required.