Revenue Reporting You Can Certify to the Penny
A board-grade revenue reporting system that reconciles Salesforce-derived recurring revenue to the penny, fails loudly on any discrepancy, and only displays numbers once they are certified.
I was sitting in our weekly ELT meeting at Addium, the C-suite meeting where the numbers are supposed to be the numbers, and I pulled up our revenue dashboard. Tableau. Same data source we'd been using. And two different data points were telling me two different things.
I couldn't reconcile them. Not in real time. Not in front of the room.
It wasn't the first time the numbers had been a little off. I'd always been able to work around it, massage the context, bridge the gap with a quick explanation. But this time it failed me completely. The room got quiet in the wrong way. The kind of quiet where people start wondering if anybody actually knows what's going on.
My boss called me afterward. Direct. "You need to get this together, because you're freaking people out."
That was the moment. Not a slow realization. Not a committee decision. I walked out of that meeting knowing this was on me. Not an analyst. Not the controller. Not a contractor. Me.
That's the reality of operating in early-stage and re-stage companies, the ones fresh off a PE acquisition where EBITDA is the scoreboard and operational efficiency is everything. You don't get to delegate the thing that keeps the lights on. You own it or it owns you.
I hate being wrong. It feels like a loss. And I absolutely loathe losing.
So I decided I was going to build something that would never put me in that position again. A revenue number I could stand behind, to the penny, every single time someone asked.
Most SaaS companies have a revenue number. Very few have a revenue number they can certify.
Here's why.
Salesforce is the system of record for almost every B2B SaaS company, and if you're running contract management through CPQ, you know exactly how fragile that foundation is. SBQQ__Subscription__c. If you know, you know. And if I never see that object again, it'll be a lifetime too soon.
The data model wasn't designed for precision revenue reporting. It was designed for deal flow. So what happens is a dozen people across finance, renewals, and sales ops are all touching records that directly impact recurring revenue calculations, and every one of them can introduce drift. At a company our size, there's no anonymity. Every touch has a name on it, and every error has a consequence.
Most teams try to solve this with a BI layer. We did too. Tableau wasn't just a visualization tool for us. It was doing extraction via Salesforce Flow, building the revenue scaffold, and attempting to surface the analytics. It was brittle. Honestly, it was better than what it replaced, which was a Google Sheet. But "better than a spreadsheet" is not a standard you want to defend in an ELT meeting.
The fundamental issue is this: when your reporting layer is pulling from a source that a dozen people are modifying daily, through an extraction pipeline that's held together with best intentions, you don't have a certified number. You have an estimate with a pedigree. You think you've got it managed, until the day you don't. And that day always comes when the stakes are highest.
That's not a revenue report. That's a confidence game.
After Thursday's meeting, I sat down at my desk and made an executive decision.
No committee. No RFP. No "let's explore options next quarter." I was going to fix this, and I was going to fix it now.
The requirement was simple enough to fit in one sentence: I need a revenue number I can stand behind, to the CEO, to the board, and bet my job on it. Every time. No hedging. No footnotes. No "let me get back to you."
That's not hyperbole. I'm the Chief Customer Officer. I am paid to deliver revenue numbers. If I can't stand behind them with absolute certainty, the company will find someone who can. That's the deal. I've always understood it. Thursday just made it personal.
I didn't know exactly how I was going to get there when I started. But I knew the requirement, and I knew it was non-negotiable. Everything else was engineering.
I also knew it was going to be built with AI. But not in the way most people mean when they say that. I didn't ask AI to help me build something. I sat down with a clear vision of what certified revenue had to look like, had AI help me spec that vision into a proper requirement, and then let it build. Every line of code. Every validation rule. Every test. 100% code-driven and managed, documented for both machines and humans, so any LLM can pick it up and run with it, and any auditor can read it and understand exactly what it does and why.
I have all four sessions it took to get here. I have the receipts. We'll get into the build story tomorrow. Today is about the conviction and the logic, because the tooling doesn't matter if you don't know what you're building or why.
The system does one thing, and it does it with zero tolerance for ambiguity.
It calculates the revenue number, then it proves the revenue number.
First, it computes recurring revenue from the source data in Salesforce. Every active subscription, every contract, every renewal. Then it downloads the raw underlying data into a separate table and reconciles the two independently. The calculated number has to tie out against the source data. If it doesn't, the system doesn't shrug and move on. It goes back, identifies the reconciliation error, and resolves it until the numbers match exactly. Not approximately. Not within tolerance. To the penny.
When we were in QA today, the first run surfaced a $50,000 discrepancy. Fifty thousand dollars that would have shown up as a quiet error in any other reporting system, or worse, wouldn't have shown up at all. We worked through it with the AI PM, traced the root cause, and got it to tie out at 100%. And then something happened that I didn't plan for: the AI PM suggested we formalize the certification logic. Not just reconcile. Certify. Build a gate that the number has to pass through before anyone ever sees it.
That suggestion came from the intersection of the model's deep knowledge of revenue accounting principles and some very deliberate prompting on my part. The result is something I'll put up against any revenue accounting system on the market.
We call the design philosophy "Failing Loudly." If the certification check doesn't pass, the dashboard doesn't display. Period. It doesn't show you a stale number. It doesn't show you a number with an asterisk. It shows you nothing, because nothing is better than wrong. That failure state is a feature, not a bug. It lets the monitoring layer go in, find the error, and fix it before a human ever sees a result. Think of it the way McKinsey thinks about an audit: if everything doesn't tie out, they don't ship the number. Neither does this system. If you see a number, you know it's right.
The certification loop is simple.
Extract, calculate, reconcile, certify. There's no "close enough." There's no rounding tolerance. There's no manual override. The number is either certified or it doesn't exist.
This runs at 11 PM and 11 AM, every day. By the time you open the dashboard with your morning coffee, the number has already survived the gauntlet, or it's told you it didn't. Either way, you know exactly where you stand.
A certified number is only valuable if the right people can see the right things at the right time.
So we were deliberate about what the dashboard shows, and what it doesn't.
The metrics follow the framework Eric Mersch laid out in Hacking SaaS, the non-negotiables for understanding recurring revenue health. MRR. Delta MRR. ARR. New, expansion, contraction, churn. The metrics that tell you not just where revenue is, but where it's moving and why. These aren't novel. They're the standard for a reason. What's different is that every one of them is certified before it earns the right to appear on screen.
The dashboard is built for two audiences: the ELT and Finance. It's the source of truth. Not one of several sources, not the "ops version" that needs to be cross-referenced against the controller's spreadsheet. One number. One source. Certified.
When I sat down Thursday night, the question I asked myself was simple.
Can I have this done in a day?
I asked every major AI model the same question. How long would this take with a traditional dev team or a SaaS implementation? The consensus was roughly twelve months. Scoping, vendor selection, implementation, testing, training, iteration. A year before you see a certified number.
We had a full ingestion framework and working visuals by the end of the first session. By the end of the second day, sixteen hours total, we had extraction, calculation, reconciliation, certification, and a dashboard that Fails Loudly if anything is off by a penny. Sixteen hours. Not twelve months.
The next step isn't a GL integration. It's simpler and more powerful than that. I'm handing this number to Finance. The accounting logic is fully documented. They'll audit it. They'll trace every calculation back to the source. And when they confirm what I already know, that it's rock solid, they'll adopt it as their number too. Not because I told them to, but because the math doesn't leave room for debate.
Tomorrow I'm showing the receipts. The full build story: the tech stack, the agent pipeline, every architectural decision, and the four sessions it took to get here. If today's post was the why, tomorrow is the how.
I've spent thirty years in business and twenty in sales.
I've sat in the meetings where the numbers don't tie out and everyone pretends they didn't notice. I've been the person who had to explain why two reports from the same system told different stories. And I've been the person who got the call afterward.
I don't do that anymore.
What I do is build systems where the number is either certified or it doesn't exist. Where the dashboard earns the right to show you something. Where the CEO can walk into a board meeting, say the number, and never wonder if it's going to hold up under scrutiny.
This is what I build. This is what I've always built. The tools are just faster now.
If you're an operator who's tired of hedging, a CEO who wants to stop wondering, or a board member who's heard "we'll get back to you on that" one too many times: I keep the receipts. And I'm happy to show them.