Revenue Leakage Auditor
Finds the money you already earned and never billed
- 8hard rules
- Things it must never do, enforced in every run
- 5handover rules
- Conditions where it stops and gives the work to a person
- 9output fields
- A structured result, not a paragraph you have to re-read
- ≤8steps per run
- Bounded work: at most 6 tool calls, enforced by the runtime
Read-only by design. This agent has no path to sending, spending, publishing or committing anything. Where that limit is the product, removing it would remove the reason to trust the output.
Overview
Revenue leakage is the rare problem where the money is already earned. Nobody has to sell, negotiate or collect anything new: the contract says one thing and the invoice says another, and the difference has been leaving every month since the two stopped agreeing.
It happens the same way everywhere. An annual uplift clause nobody applied, because applying it is a manual step in a system that does not know the clause exists. A customer who moved to a bigger tier while the invoice stayed put. A goodwill discount granted for one quarter and still running three years later. Overage terms that exist and are never metered. An account onboarded onto the wrong price book.
Nobody catches it because the contract lives in a document store, the entitlement lives in the product, and the invoice lives in billing. Three systems, three owners, and the gap is only visible to whoever reads all three side by side — which is nobody's job.
This agent does that reading. For every account it reports what the contract entitles you to bill, what was actually billed, the difference, and the clause the difference comes from. It raises no invoice and changes no price: re-billing a customer is a commercial conversation, and some of what it finds you will choose not to claim.
Benefits
Recovered revenue with no selling
The rarest kind: money already earned and already delivered.
The leak closed, not just found
Each finding names the clause, so the fix is specific.
Priced right going forward
Which matters more than the back-claim, and compounds.
What it does
Reads the contract against the invoice
The gap between what you agreed and what you billed. It is invisible in either system alone, which is why it survives.
Finds unapplied uplift clauses
An annual increase written into the contract that nobody ever triggered. Compounding, every year.
Catches the discount that never ended
Granted for one quarter as goodwill, still running three years later, on your largest account.
Flags unmetered overage
Terms that allow you to charge for excess usage, on accounts where nobody ever measured it.
Quantifies each finding
The amount, the period it has been running, and the clause it comes from. Not a list of concerns.
Bills nothing
Re-billing a customer for a past period is a commercial decision with a relationship attached. It gives you the list.
What this changes
What this changes about your week
- It takes over
- Reading every contract against every invoice to find what was never billed.
- Done today by
- Nobody, which is why it accumulates.
- How often
- Annually at best, usually never.
- Typical manual effort
- Weeks, and only ever done on the accounts somebody already suspects.
Why Finance & Accounting in particular. The contract lives in a document store, the entitlement in the product, the invoice in billing. Three systems, three owners, and the gap is only visible to whoever reads all three side by side.
Runs unattended
Started by you or by an event, and it finishes on its own. Nothing waits for someone to be at a desk.
The same standard every time
The two-hundredth item is held to the bar the first one was. Consistency is the part people cannot sustain.
It cannot act on its own
Revenue Leakage Auditor has no path to sending, spending or committing. That limit is why its output is safe to act on.
How it runs
This agent runs server-side through the PROMIVO runtime. Each run is logged step by step and every tool call is permission-checked before it executes.
- 1InputValidated against the agent input schema
- 2Modelclaude-opus-5 with automatic fallback
- 3Toolssearch_knowledge, extract_structured_data
- 4PermissionsRuns READ actions automatically; anything higher waits for approval
- 5OutputStructured result matching the output schema
- 6LoggingTokens, duration and every step recorded
Demo
Demo dataIllustrative sample output, abridged.
Input
{
"accounts": [],
"currency": "USD",
"periodsReviewed": "24 months"
}Output
{
"escalate": true,
"findings": [
{
"type": "expired-discount-still-running",
"basis": "measured",
"total": 60750,
"clause": "Schedule B: 15% introductory discount, first four months only.",
"account": "ACC-2140",
"perPeriod": 2250,
"periodsAffected": 27,
"annualisedImpact": 27000
},
{
"type": "unapplied-uplift",
"basis": "measured",
"total": 18800,
"clause": "Clause 6.2: annual increase at CPI, minimum 3%, each 1 January.",
"account": "ACC-1877",
"perPeriod": 940,
"periodsAffected": 20,
"annualisedImpact": 11280
}
],
"disclaimer": "A reconciliation of your own records. Nothing has been invoiced, credited or repriced, no statement is made about what is legally recoverable, and amounts marked estimated are not measured.",
"overbilled": [
"ACC-3012 was invoiced for a tier above the one the contract names, for 5 months. This one needs correcting whether or not you claim anything else."
],
"couldNotCheck": [
"Overage on 6 accounts — usage was never recorded, so there is nothing to compare against."
],
"totalAnnualised": 38280,
"totalIdentified": 79550,
"ambiguousClauses": [
"ACC-2455 clause 4.1 ties the uplift to 'the prevailing index' without naming one. The finding depends entirely on which index is meant."
],
"escalationReason": "One account was overbilled for five months, and one finding rests on an ambiguous clause rather than on a clear term."
}Requirements
Integrations
No integrations required.
Before you start
- Contract terms per account: price, uplift clauses, discounts and their end dates, overage terms
- What each account was actually invoiced, by period
- Entitlements or usage where the contract charges for them
- Requires the All-Access plan or higher
Use cases
Annual contract review
Every account, every clause, against what was actually invoiced.
Before a funding round or sale
Understated recurring revenue is money left on the valuation.
After a pricing change
Which accounts never moved onto the new terms.
A margin that keeps slipping
Usually leakage rather than cost.
Pricing
All-Access
Billed monthly through your PROMIVO subscription. Cancel at any time.
Runs consume your plan allowance for agent executions and tokens. See plan limits
FAQ
Will it invoice the difference?
No. Back-billing a customer is a commercial conversation with a relationship attached, and some of what it finds you will decide not to claim. It produces the evidence and the amount; the decision is yours.
Does it need our billing system connected?
No. It works from exports — contract terms, entitlements, and invoiced amounts per account. Most leakage is visible in three columns; it does not need write access to anything.
What if the contract is ambiguous?
It reports the ambiguity rather than resolving it in your favour. A clause that could be read two ways is a finding for a person, not a number to add up.
Reviews
Reviews open once customers have run this agent.
Need this agent to work differently?
Tell us what to change and our team will scope a customised version for your business.
Customize this agent