How a SaaS Company Tied Its Billing System to the Books and Found Lost Revenue

Sam's List Editorial | 2026-06-23

How a SaaS Company Tied Its Billing System to the Books and Found Lost Revenue

Most SaaS founders assume their billing platform and their accounting system agree with each other. They almost never do.

The numbers drift apart quietly. Stripe says one thing, QuickBooks says another, and the gap gets explained away as "timing" until nobody remembers what's actually in there. This SaaS billing reconciliation case study walks through what happens when somebody finally chases the difference — and finds real money sitting in it.

A quick flag before we start: this is an illustrative composite, built from the kind of engagements The SaaS Bookkeeper handles, not an audited result for one named client. The mechanics are real. The dollar figures are representative.

The billing system and the books had never agreed, and nobody had time to fix it

The company was a Series A SaaS business doing about $4M in ARR, billing monthly and annually through Stripe. Standard setup.

Their books showed revenue. Stripe showed revenue. The two numbers were always a few percent apart, and every month the founder told himself he'd dig in "after the next release." He never did.

That's the trap. A 3% gap on $4M is $120K floating around with no name on it. But it never feels urgent, because nothing is on fire. The cash still lands in the bank. The dashboard still looks fine.

Here's the thing nobody tells you: the gap isn't one problem. It's usually three or four problems pointing in different directions, partially canceling each other out. Which is exactly why a casual glance never catches it.

What a real SaaS billing reconciliation case study starts with: a line-by-line tie-out

The SaaS Bookkeeper's first move was unglamorous: a monthly reconciliation tying the billing platform to the general ledger, line by line.

Not "do the totals roughly match." A real Stripe GL reconciliation maps every category of activity — new subscriptions, upgrades, downgrades, refunds, failed payments, processing fees, disputes — from the billing system into the corresponding GL account, then explains every remaining dollar of difference.

This matters because of how SaaS revenue is supposed to work. Under ASC 606, the accounting standard for revenue from contracts with customers, you recognize revenue as you deliver the service — ratably over the subscription term — not when the cash hits. An annual plan billed in January is earned one-twelfth at a time. The amount you've billed but not yet earned sits as deferred revenue, a liability, until you've delivered it.

If your billing system and your GL aren't reconciled, your deferred revenue balance is a guess. And if deferred revenue is a guess, so is recognized revenue, so is ARR, so is every number you're about to put in front of an investor.

The reconciliation turned the guess into a number you could defend. Then it surfaced what the guess had been hiding.

Failed-payment churn was quietly eating recoverable revenue

The first thing the tie-out exposed: a steady trickle of failed payments that billing had silently absorbed.

Cards expire. Banks decline charges. In a healthy SaaS book, that's normal — but only if someone retries the charge and follows up. Here, nobody was. Stripe marked the invoices unpaid, the customers kept logging in, and the revenue just evaporated into a category nobody was reading.

The math: roughly 1.5% of monthly charges were failing and never getting recovered. On a $4M ARR base, that's about $60K a year walking out the door — from customers who hadn't actually churned. They still wanted the product. The card just bounced and no one noticed.

Most of that was recoverable with dunning emails and a simple retry cadence. This wasn't a growth problem or a product problem. It was a reconciliation problem wearing a churn costume.

A proration error had been overstating ARR

The reconciliation cut the other way too — and this one stung more.

When customers upgraded mid-cycle, the billing configuration was prorating the new plan incorrectly, booking a slightly inflated subscription value on the upgrade event. Individually, each error was small. Aggregated across hundreds of upgrades, it had nudged reported ARR up by a few points.

That's the dangerous kind of mistake. Failed-payment churn costs you cash now. An overstated ARR costs you credibility later — specifically in the room where someone is checking your numbers against your bank statements.

The fix was correcting the proration logic and restating the affected MRR. The recovered failed-payment revenue and the corrected ARR roughly offset in headline terms, which is why nobody had caught either one. Two errors pointing opposite directions look like "close enough." Reconciled separately, they were two distinct things to fix.

How this SaaS billing reconciliation case study paid off in diligence

About a year later, the company raised its next round. And the reconciliation stopped being hygiene and became leverage in the negotiation — the good kind.

When the investor's diligence team asked for a revenue build, the company handed over a billing-to-GL reconciliation that tied to the dollar, with deferred revenue rolled forward cleanly under ASC 606. No scramble. No "we'll get back to you on that variance."

Diligence teams are trained to find the gap between what a founder says and what the records show. When there isn't one, the whole conversation shifts. Questions get shorter. Trust compounds. A clean tie-out doesn't just survive diligence — it speeds it up.

That's the part founders underrate. Reconciliation feels like a cost center until the moment it's the reason a term sheet doesn't get repriced.

Why a generalist bookkeeper usually misses this

A general bookkeeper can close your books. Most can't read a Stripe payout report.

SaaS revenue lives in a layer most bookkeepers never touch — proration, dunning, deferred revenue schedules, the difference between a payout and a charge, the way refunds and disputes hit different accounts. Getting the GL to agree with Stripe takes someone who's done it specifically, many times, and knows exactly where the variances hide.

That's the case for a specialist. The pattern recognition isn't transferable from general small-business bookkeeping. You either know where SaaS revenue leakage hides, or you're learning it on your books.

Find a bookkeeper who can tie your billing system to your books

If your Stripe total and your QuickBooks revenue have never quite matched and you've been calling it "timing," that gap has a number. It's probably costing you cash, distorting your ARR, or both — and it will absolutely show up in your next raise.

The SaaS Bookkeeper focuses on subscription businesses and the exact reconciliation work this case study describes. Read their verified reviews on Sam's List, then book an intro call and ask them one question: "Does our billing tie out to our GL?"

If the answer is "not sure," you just found your first project — and probably some revenue you didn't know you were losing.

Continue exploring

Related Sam's List pages