Guides / Revenue assurance

How to find revenue you earned but never billed

Revenue leakage rarely shows up in the P&L as a problem. It shows up as nothing at all: an escalator nobody applied, a minimum nobody charged. The only way to see it is to compare what you were owed with what you billed.

Updated November 2026 · 5 min read
Short answer Unbilled revenue hides in the gaps between three records: what the contract says, what you delivered (usage, shipments, hours), and what billing invoiced. Have AI line those three up for every customer each month and flag the differences: price escalators not applied, billing at expired rates, missed minimums and accessorial charges, and credit notes without a matching reason. A person reviews each flag and decides whether to bill. First passes often surface leakage in the range of 1 to 3% of billed revenue.

Where the leakage comes from

Leakage is almost never fraud. It's a contract term that lives in a PDF and never made it into the billing system, or a manual step that someone forgot during a busy month. The common types:

LeakHow it happensWhat the check compares
Escalator not appliedAnnual CPI or fixed uplift in the contract; billing still on year-one priceContract escalator date and rate vs invoiced unit price
Expired-rate billingPromotional or pilot rate ended; billing never switchedRate end date vs invoice date
Missed minimumsCustomer used less than the committed minimum; shortfall never invoicedContracted minimum vs actual usage per period
Missed accessorial or extra chargesRush fees, extra handling, overages, out-of-scope hours delivered but not billedDelivery or job records vs invoice lines
Unbilled deliveryShipment or service completed, invoice never raisedFulfilment or timesheet records vs invoices
Unexplained credit notesCredits issued to settle a complaint, with no approval or reason codeCredit notes vs approval log and dispute threads

Step 1: build a contract terms register

You can't check billing against contracts if the terms only exist as PDFs. Have AI read each signed contract, order form and amendment, and extract the terms that drive billing into one table per customer:

Every extracted term should carry the document name, page and clause it came from. Someone on the commercial or contracts team then confirms the register once. After that, it only changes when a new contract or amendment is signed.

Step 2: line up delivered against billed

Next, match what operations recorded (usage logs, shipment records, timesheets, job tickets) to invoice lines. The tool should group by customer and period and return only the differences: delivered and not billed, billed at a different quantity, or billed under the wrong product code. This is where unbilled delivery and missed extras show up.

Step 3: check the price on every line

For each invoice line, look up the price that should have applied on that date from the register. Flag lines where the invoiced price is lower, with the expected price, the clause, and the dollar difference. Escalators are the most common finding, because they often fall on contract anniversaries scattered through the year rather than at a single renewal date.

Step 4: review credit notes

Pull every credit note for the period and match each to a reason: a dispute thread, a returns record, an approved concession. Credits with no reason, or with a reason that doesn't match the amount, go on the list. This catches revenue given away informally as well as simple errors.

What to do with a finding

The tool flags; a person decides. Whether to back-bill, bill going forward only, or let a gap go is a commercial decision. The tool drafts the corrected invoice and a note to the account owner; the account owner and finance agree what happens next.

Common mistakes

Live demo · placeholder data
Commercial Dashboard →
Revenue by customer and product, pricing and margin, the view revenue assurance findings feed into.

FAQ

How much revenue do companies typically leave unbilled?

Estimates vary widely by industry and billing complexity. First reviews often find leakage of 1 to 3% of billed revenue, concentrated in missed price escalators, minimum commitments and extra charges. Companies with many custom contracts and manual billing steps tend to sit at the higher end.

Can AI read contracts accurately enough for billing checks?

Yes, for extracting prices, dates, escalators and minimums, provided every extracted term cites its clause and a person confirms the register once. After that review the register is the reference, and the AI only compares records against it.

Should we back-bill customers for missed escalators?

That is a commercial decision for the account owner and finance together. Some companies back-bill in full, some bill from the next period only, and some trade the back-bill for a renewal. The tool should draft the options with the dollar amounts and leave the decision to people.

Get new playbooks by email

Practical notes on AI in finance from a sitting CFO. Occasional, no selling.

Subscribe