Hi {{first_name | Reader}},
The question
A CEO asked me a simple question last month.
"Are we actually growing, or are we just replacing the customers we lose?"
Revenue was up. New logos coming in. Pipeline looked healthy. But he'd been around long enough to know that top-line growth can hide a lot of rot. He wanted to know what was happening underneath.
The P&L couldn't answer it. Revenue was a single line. Up 12% year over year. The board would nod. Everyone would move on.
But "up 12%" doesn't answer three questions:
Are your existing customers spending more or less?
Is growth coming from ten new customers or one whale?
Are the customers you signed last year still here?
To answer his question, I needed three numbers the P&L doesn't show.
Three numbers your P&L won't show you
Monthly Recurring Revenue (MRR), decomposed.
You've probably seen MRR on a dashboard somewhere. A single number. Maybe a chart going up and to the right. That's the headline. And as I wrote last week, I have trust issues with revenue headlines.
MRR decomposed is four numbers:
New MRR — first-time customers
Expansion MRR — existing customers spending more
Contraction MRR — existing customers spending less
Churned MRR — customers who left entirely
Same total. Completely different stories. MRR can grow 10% while your existing base is shrinking, as long as new sales are running fast enough to cover the hole. That's a treadmill. Nobody likes the treadmill.

Last week I showed you a client whose revenue was up 5%, but volume was down 10.4% and the growth was entirely driven by price. MRR decomposition is the SaaS version of that exact problem. The headline looks good. The components tell you whether it's real.
Net Dollar Retention (NDR).
Once you have MRR decomposed, NDR falls out of it:
Start with last month's MRR from existing customers
Add what they expanded
Subtract what they contracted
Subtract what churned
Divide by what they were paying you last month
The result tells you everything:
Above 100%? Your existing customer base is growing on its own. No new sales needed. Your product is getting more valuable to the people already using it.
Below 100%? New sales just fill the hole that churn is digging. Every month you need to run faster to stay in the same place.
NDR is the answer to the CEO's question.
It tells you whether your current customers are becoming more valuable or less valuable over time, independent of anything your sales team does.
The bridge to statutory revenue.
Here's the part nobody talks about. MRR says one thing. The audited P&L says another.
They (almost) never match.
MRR is a management metric. You calculate it from invoices, by product, by customer, by month. Statutory revenue is what the auditor signs off on, with accruals, deferrals, one-time fees, and adjustments the management model doesn't see.
Your board sees MRR. Your auditor sees statutory. Most CFOs present two different numbers to two different audiences and hope nobody asks. If you can walk between the two and explain every difference, you're the only person in the room who sees the full picture.
Where the numbers actually come from
We pulled from the accounting system and deconstructed every invoice. Customer by customer, month by month. Tagged each line as new, expansion, contraction, or churn.
And this is where it gets messy. Because you're at the mercy of your bookkeeper.
If the bookkeeper entered three months of service on a single invoice line, your MRR calculation is wrong. If they lumped setup fees with recurring charges, your MRR is inflated. If they used a different customer name spelling in January than in March, the system thinks one customer churned and a new one appeared.
The quality of every KPI you compute depends on how carefully someone you've probably never met entered data into a system months ago. Before you can do anything smart with the numbers, you have to clean them. And cleaning means reading the invoices.
The part where AI helped (and where it broke)
In Arc 1, I showed you the layers:
Pre-meeting briefs that assemble themselves (Send 6)
Meeting transcripts analyzed automatically (Send 7)
Revenue decomposition that catches what the P&L hides (Sends 8 and 9)
All of those layers fed into this engagement. The system already had:
Meeting notes from three calls with this CEO
Email threads about the product roadmap
Board materials from the last quarter
When it flagged a discrepancy between two KPI spreadsheets, it didn't just say "these numbers disagree." It told me what each methodology assumed, because the meeting notes from two months ago explained which approach the board had approved.
But it also broke.
The finance team had one KPI spreadsheet. The strategy team had built a second one. Both tracking the same metrics. Both confident in their numbers. Both wrong in different ways.
Revenue: $1,343K in one sheet. $1,320K in the other. A $23K gap nobody noticed until it was time to sign the report.
CAC: One sheet included channel partner commissions in the acquisition cost. The other didn't. Same label, completely different meaning. Every downstream ratio built on CAC was telling a different story depending on which sheet you opened.
LTV: One computed from 12-month cohort data. The other used a formula with assumed churn rates that hadn't been updated in two quarters. The number the board had seen was based on assumptions that were already stale.

This wasn't an internal deck where "close enough" works. This was going into a professional due diligence package. If the numbers don't reconcile with the audited financials, you don't get a revision. You get a finding.
The system surfaced every conflict. It presented both values side by side, with the source and methodology for each. But it couldn't decide which one was right. That decision has to be human. And it has to happen before you touch a single number.
The two ideas that fix this
Everything I've built in the last ten weeks comes down to two principles. They're simple. And they change how you work with financial data.
Principle 1: Source hierarchy.
Before you pull any number, decide which source wins. Write it down. For this engagement:
Signed audit report (statutory, highest authority)
Trial balance or GL export
Management reports (accounting software exports)
Strategy team spreadsheets
Verbal notes from calls (never use these for financial figures)
Revenue was $1,320K in the strategy sheet and $1,343K in the finance sheet. The signed audit said $1,320K. Decision made in 10 seconds. No debate. No judgment call. The hierarchy decided.
Every number conflict resolves the same way. You check the hierarchy. The higher source wins. If two sources at the same level disagree, you flag it, investigate, and document the resolution. You don't quietly pick one and move on.
Principle 2: Number-level audit trail.
Every number in your final deliverable traces back to a specific cell in a specific source document, with the date it was extracted.
Page 7 of the report says MRR is $112K. Where did that come from? The audit trail says: KPI_Sheet_v3.xlsx, tab "MRR Waterfall", cell D14, extracted April 1. A reviewer, a regulator, or future you can verify it in ten seconds.
This means you can regenerate the entire report from verified data if anything changes. A KPI gets updated? Run the extraction again. The new number flows through every page that references it. No find-and-replace. No hoping you caught them all.
If you've been building along from Arc 1, add these two rules to your CLAUDE.md:
When working with financial data from multiple sources:
1. Always check if the same metric appears in more than one source
2. If two sources report different values, present BOTH values with their sources
3. Ask me to declare which source is authoritative before proceeding
4. Never silently choose one value over another
5. Log every conflict resolution with: metric, source A value, source B value, chosen value, reasonFor every financial number in a deliverable:
1. Record the source file, tab/sheet name, cell reference, and extraction date
2. Never manually type a financial number — extract it programmatically
3. If a number cannot be traced to a source cell, flag it as unverified
4. Before finalizing any report, produce a verification manifest:
every number mapped to its sourceThese two principles work whether you use AI or not. They work in Excel. They work in Google Sheets. They work with a pen and paper. The system I built enforces them automatically, but the principles came first.
Where do you stand?
Everything we talked about today sits on one dimension: data visibility. How strong is yours?
The Scalable Finance Wheel measures six dimensions of your finance function. The whole assessment takes 3 minutes and shows you exactly where the gaps are.
What's your NDR? If you don't know, that's the answer. Reply and tell me what metric you wish you could compute but can't with your current data.
Next week: I ran a quality score on a client's books. They got a C-minus. I'll show you the 10 signals that tell you whether your data is good enough to trust before you build anything on top of it.
Revenue decomposition was your #1 vote in the poll. We're building it.
P.S. CFO? Get updated on all the CFO-related news this month in under 90 sec. Check out Good Morning CFO for free today.
FAQ
What is MRR decomposition?
MRR decomposition breaks monthly recurring revenue into four components: new MRR from first-time customers, expansion from existing customers spending more, contraction from customers spending less, and churned MRR from customers who left. It reveals whether headline growth is structural or masking a shrinking base.
What is Net Dollar Retention (NDR)?
NDR measures whether your existing customer base is growing or shrinking without new sales. Take last month's MRR from existing customers, add expansion, subtract contraction and churn, divide by starting MRR. Above 100% means your base grows on its own. Below 100% means you need new sales just to stay flat.
Why don't MRR and statutory revenue match?
MRR is calculated from invoices by customer and month. Statutory revenue includes accruals, deferrals, one-time fees, and auditor adjustments that management models don't capture. The two will almost never match exactly, and reconciling the difference is how CFOs build trust with both boards and auditors.
What is a source hierarchy in financial reporting?
A source hierarchy ranks data sources by authority before any analysis begins. Signed audits outrank trial balances, which outrank management reports, which outrank spreadsheets, which outrank verbal notes. When two sources disagree on a number, the higher-ranked source wins. This eliminates judgment calls and prevents silent overrides.
Your spreadsheet is now Claude Code
Do not get intimidated. Do not put this off for later.
Know who the knocker-upper was? Before alarm clocks existed, there was a person whose job was to walk through town with a long stick, tapping on windows to wake people up for work. That job disappeared overnight when alarm clocks became cheap.
Spreadsheets are the long stick. Claude Code is the alarm clock.
Don't be a knocker-upper.

