Back to blog

What a 24-Hour Billing Audit Actually Uncovers

·9 min read·Corentin Charneau·Lire en français
billing auditRevenue Integritybilling gapsCFO

Between 1 and 3 percent of annual revenue left unbilled. That figure shows up in nearly every billing audit conducted on mid-market companies with complex pricing. What consistently surprises finance leaders is not the number itself, but what it actually represents: not fraud, not gross negligence, but a quiet accumulation of small misalignments between systems that were never designed to stay in sync with each other. A CRM that closes upsells, a billing platform that knows nothing about them, an ERP recording revenue from incomplete invoices.

A 24-hour billing audit is not a substitute for a full financial audit. It does something more targeted: it compares what a company is contractually entitled to bill against what it actually bills, month by month over the trailing twelve months, by cross-referencing CRM data, payment platform records, and ERP entries. What this exercise surfaces is, in almost every case, unexpected, even for CFOs who believe they have a firm handle on their billing process.

Here are the five gap types most consistently found in these audits, with their systemic causes and the order-of-magnitude figures typically observed.

1. The Ghost Upsell: closed in the CRM, missing from the invoice

A sales rep closes an amendment. They update the opportunity in Salesforce or HubSpot: the customer is moving from the Standard tier to Premium, with three additional modules. The deal is marked Closed Won. The rep earns their commission. And then the chain stops.

The problem is architectural. In most mid-market stacks, the CRM and billing platform are not synchronized in real time. The upsell lives in the CRM. It does not flow automatically into the billing system. For the invoice to reflect the change, someone must manually update the contract or template in the billing tool, typically in a separate interface, by a separate person, with a delay that ranges from days to months.

Ghost upsells appear in the majority of companies managing more than 50 active customers across a multi-tier or modular catalog. The typical gap is 1 to 3 percent of annual revenue. For a company doing $20M in revenue, that is $200,000 to $600,000 per year in earned but unbilled income, with no bad actor in sight.

The signal to watch: compare the number of Closed Won amendments in the CRM against the number of billing template updates made in the same period. If that ratio falls below 0.8, the issue warrants investigation.

2. The Eternal Discount: a temporary concession that became permanent

In March, a sales rep grants a 20 percent discount for three months to close a strategic deal. The discount is configured in the billing system. June passes. The discount is still there. So does September. And the following March.

This pattern is especially common in one specific scenario: when the rep who granted the discount has left the company, or when no formal process exists to periodically review the actual pricing conditions applied to each account. The billing system is a loyal machine. It applies exactly what it was told, without questioning expiration dates.

The Eternal Discount is insidious because it generates no alert. The customer pays, so DSO does not deteriorate. Invoices go out, so the books look balanced. The leak is invisible in every standard dashboard. It only becomes visible when someone compares original contract terms against the conditions actually applied invoice by invoice, something no off-the-shelf tool does automatically.

A single customer with a 15 percent discount applied for 18 months instead of three represents, on a $5,000/month contract, $11,250 in lost revenue over the period. Multiplied across ten accounts, the number becomes material quickly.

3. The Unrespected Contract Rate: the forgotten escalation clause (or its mirror)

The contract includes an annual price adjustment tied to a consumer price index or sector benchmark. On January 1st, rates should have increased by 3.2 percent. The Finance team knows it. Sales knows it. The billing platform continues applying last year's rates, because no one updated the templates.

This gap has two symmetric variants with different risk profiles. The more common one is under-billing: the escalation clause was not applied, and the customer pays less than the contract specifies. The revenue shortfall is real, but the commercial relationship is intact. The second variant is more sensitive: a contractual discount was not applied, and the customer has been overbilled. Here the risk extends beyond revenue. A customer who discovers they have been charged more than their contract allows rarely stays quiet.

In both cases, the root cause is the same: the contract lives in a PDF or a shared document, and pricing conditions in the billing system are managed manually, with no automated link to the contract terms. Every contract amendment requires a separate manual action in a second system, an action that can be missed, delayed, or executed incorrectly.

4. The Forgotten Service Line: your customer will find it before you do

A customer signs for a core service and two ancillary offerings: onboarding training, priority support, access to a sector data feed. All three are in the contract. All three are in the CRM. Two are in the billing template. The third, typically because of the pace of onboarding or a handoff gap between sales and finance, never made it in.

This gap is uncomfortable on two levels. First, it represents direct lost revenue. Second, and more damaging, the customer often discovers it before you do, either by reconciling their invoice against their contract, or by trying to activate the service. A customer who realizes you are not billing them for something they signed is not reassured. They begin to wonder about your operational reliability, and about what you might have billed them for without their noticing.

The forgotten service line creates a trust deficit that is difficult to quantify but very real. It signals a disconnect between the sales motion and the billing process, a disconnect that a billing audit can surface proactively, before the customer raises the issue.

5. The Period Mismatch: the gap between delivery and billing

Consulting work delivered in December is invoiced in January. A subscription activated on the 15th of the month is billed for a full month from the 1st. A monthly recurring service is invoiced six weeks late because billing is triggered by a project completion report that the technical team has not yet submitted.

Period mismatches are not always revenue leakage in the strict sense: the invoice eventually goes out. But they create two concrete problems. The first is accounting: revenue recognized in December but invoiced in January disrupts monthly closes and forward projections. The second is cash: every day of delay at the billing stage is a day of delay at the collection stage, and a mechanical extension of DSO.

For a company carrying $1M in accounts receivable, one additional day of DSO represents roughly $2,750 in tied-up working capital. Twenty days of systematic period mismatch means $55,000 permanently frozen, not a loss, but capital removed from other uses and a signal of dysfunction in the Order-to-Cash cycle.

Why these gaps persist despite the tools

The same question comes up consistently in billing audits: "We have a CRM, a billing platform, and an ERP. How is this possible?"

The answer is straightforward but rarely anticipated: these tools are excellent within their own perimeter. The CRM manages opportunities and contracts. The billing platform manages invoices. The ERP manages accounting. But none of them was designed to verify that the three are consistent with each other. There is no automatic guardian of cross-system coherence, unless someone builds one deliberately.

That is precisely what a billing audit detects: not errors within the tools, but misalignments in the spaces between them. In most mid-market organizations, those spaces are managed through manual processes, email threads, tracking spreadsheets, and the goodwill of stretched teams. That combination works remarkably well in stable conditions. It holds much less reliably when the product catalog changes, when sales reps leave, or when growth accelerates the volume of contracts to manage simultaneously.

What an audit actually quantifies

Standard Finance metrics, DSO, collection rates, ARR, MRR, give a view of billing health from the inside. They cannot detect what was never billed, because what never enters the billing system does not exist in those metrics.

A billing audit produces a different picture: it calculates the gap between contractually expected revenue and actually invoiced revenue, contract line by contract line. That granularity is what makes the output actionable. It identifies not just the aggregate shortfall, but the specific gap types, the affected customers, and the processes to fix to prevent recurrence.

Three questions to assess whether an audit would be useful

Before commissioning an audit, three questions help calibrate the likely exposure.

Has the product catalog changed in the past 18 months? Every new product, every pricing grid update, every new discount type is an opportunity for desynchronization between what sales can propose and what the billing system knows how to apply.

Have sales reps left the company in the past 12 months? Sales turnover is one of the primary vectors for Eternal Discounts and undocumented pricing conditions. Terms granted by a rep who is no longer there often have no trace beyond the original email thread and a configuration buried in the billing platform.

Is the process for updating invoices after an amendment documented and systematic? If the answer is "it depends" or "whoever handles billing checks manually," the probability of material gaps is high.

A 24-hour billing audit does not change processes. It illuminates them, with precise figures and identified causes. That is the prerequisite for deciding where to focus correction efforts, and in what order.