Revenue Leakage: Finding the Money You're Already Owed¶
Last quarter, we discovered we'd been under-billing a customer by $47,000 annually. For three years.
Not because of fraud. Not because of a system failure. Because a billing rule was misconfigured when we migrated from one pricing model to another, and nobody caught it until an analyst ran a spot check on our largest accounts.
That's $141,000 we left on the table. Money we'd already earned, services we'd already delivered, revenue we'd already recognized — but never collected.
This isn't an outlier. Industry benchmarks suggest that SaaS companies lose 2-5% of recognized revenue to leakage. At scale, that's material money. For a $100M ARR business, that's $2-5M annually that you've earned but will never see.
The good news? Most revenue leakage follows predictable patterns. Once you know where to look, you can plug the leaks.
The Five Most Common Leakage Points¶
1. Failed Renewals and Payment Retries¶
What it looks like: A customer's credit card expires. The renewal fails. Your retry logic fires once, fails again, and then... nothing. The account stays active because nobody wants to interrupt service, but you're not getting paid.
How much it costs: In our environment, failed payment retries account for 0.8-1.2% of ARR annually. For a $50M ARR company, that's $400-600K in unbilled services.
How to catch it: Run a monthly report of accounts with: - Active subscriptions - No successful payment in the last 60 days - No open AR balance
If you have customers in this state, your retry logic is broken or your collections process has a gap.
The fix: Implement a tiered retry strategy: - Day 1: Automatic retry - Day 3: Automated email with self-service payment update link - Day 7: Second retry + escalation to account manager - Day 14: Final retry + service suspension warning - Day 21: Service suspension (not termination — you want them to come back)
Track your recovery rate at each stage. In our experience, 40% of failed payments resolve with the first automated email if you make it easy to update payment information.
2. Misconfigured Billing Rules¶
What it looks like: A customer is on a tiered pricing plan. They exceed their tier threshold in January. Your system should upgrade them to the next tier and bill the difference. Instead, it keeps billing them at the old rate because the tier transition rule wasn't configured correctly.
How much it costs: This is the silent killer. We've found misconfigured billing rules in roughly 3-5% of our accounts at any given time, representing 1-2% of total ARR.
How to catch it: Build a monthly reconciliation report that compares: - Expected billing (based on actual usage/contract terms) - Actual billing (what you invoiced) - Variance (the gap)
Flag any account with a variance greater than 5% or $500, whichever is smaller.
Red flags to automate: - Usage-based billing where usage is reported but no overage invoice generated - Accounts where contract value > invoiced amount over the contract period - Customers on tiered plans whose usage puts them in a higher tier but are billed at a lower rate
The fix: This requires discipline in your billing configuration process: - Document billing rules in plain English before configuring them in the system - Require two-person review on any billing rule change - Test new configurations with synthetic data before production deployment - Run monthly reconciliation reports and assign an owner to investigate variances
3. Uncollected Overages and Usage Charges¶
What it looks like: Your product has usage-based pricing components. A customer exceeds their included usage. Your system tracks it. Your analytics dashboard shows it. But your billing system never generates an invoice because the usage data doesn't flow into the invoicing workflow.
How much it costs: For companies with usage-based pricing, this can represent 2-3% of total revenue. For a $30M ARR company with 40% of revenue tied to usage, that's $240-360K annually.
How to catch it: Build a monthly audit comparing: - Usage reported in your product analytics system - Usage billed through your invoicing system
Any account with reported usage exceeding their plan limits but no corresponding overage invoice is a leakage point.
The fix: Automate the entire flow: 1. Usage capture: Ensure usage events are logged consistently and immutably 2. Usage aggregation: Run nightly jobs to aggregate usage by customer and pricing dimension 3. Threshold detection: Flag accounts that exceed their included usage 4. Invoice generation: Automatically generate draft overage invoices for review 5. Approval workflow: Route high-value overages ($5K+) for manual review before sending
We reduced overage leakage from 2.1% to 0.3% by automating this workflow. The ROI was immediate.
4. Credit Memo Abuse (Intentional and Unintentional)¶
What it looks like: A customer disputes an invoice. Your AR team issues a credit memo to maintain the relationship. The dispute gets resolved, but the credit memo is never reversed. Or: a well-meaning account manager issues a "goodwill credit" without documenting the reason or getting proper approval.
How much it costs: Credit memo leakage is often small per transaction (5-10% of the disputed amount) but adds up over volume. We've seen this range from 0.3-0.8% of ARR annually.
How to catch it: Run a quarterly audit of all credit memos issued in the period: - Credit memos without a linked support ticket or documented reason - Credit memos issued by the same person repeatedly (pattern detection) - Credit memos that exceed a certain threshold without CFO approval - Partial credit memos that don't match the billing error exactly
The fix: Implement credit memo governance: - Require a reason code and supporting documentation for every credit memo - Set approval thresholds: $0-500 (account manager), $500-5K (director), $5K+ (CFO) - Monthly review of credit memo activity by reason code - Train account teams on when credits are appropriate vs. when to route to billing operations for correction
The goal isn't to make credits hard to issue — it's to make inappropriate credits visible.
5. Contract Amendment Lag¶
What it looks like: A customer signs an expansion or renewal in December. The contract is fully executed. But the billing system doesn't get updated until January (or February). You deliver the expanded service immediately, but you don't bill for it until you catch up with paperwork.
How much it costs: For high-velocity sales teams, this can represent 0.5-1.5% of ARR as you carry billing lag across your entire customer base.
How to catch it: Compare contract effective dates to billing start dates: - Contracts signed in Month N that don't have a corresponding billing update by Month N+1 - Accounts with recent expansions (per CRM) but no corresponding ARR increase (per billing system)
The fix: Integrate your CRM and billing system: - When an opportunity closes in Salesforce (or equivalent), trigger a billing system update workflow - Require sales ops to confirm billing configuration within 5 business days of deal close - Run weekly reports of "closed-won deals without billing confirmation" - Treat billing lag as a sales ops KPI, not just a finance problem
We reduced our median contract-to-billing lag from 18 days to 4 days by treating this as a sales operations metric and tying it to commission payout timelines. Turns out AEs care about fast billing setup when it affects their comp.
Building a Revenue Leakage Detection Framework¶
Here's the simple framework we use to stay on top of leakage:
1. Monthly Reconciliation Reports¶
- Expected revenue (based on contracts + usage) vs. actual invoiced revenue
- Target: <0.5% variance
- Owner: Revenue Operations Manager
2. Quarterly Deep Dives¶
- Manual audit of high-value accounts (top 20% of ARR)
- Review all credit memos, payment failures, and billing adjustments
- Owner: Director of Finance + Revenue Operations
3. Annual Billing System Audit¶
- Review all active billing rules and rate cards
- Test configurations against current contracts
- Identify deprecated rules that should be retired
- Owner: Revenue Operations + FP&A
4. Real-Time Alerting¶
Set up automated alerts for: - Payment failures on accounts >$50K ARR - Usage thresholds exceeded without invoices generated within 7 days - Credit memos >$5K issued without CFO approval - Variances >10% between expected and actual billing on any account
The ROI Is Immediate¶
We implemented this framework over six months. The results:
- Reduced revenue leakage from an estimated 3.2% to 0.7% of ARR
- Recovered $1.8M in trailing unbilled services (through contract amendments and customer agreements)
- Cut DSO (days sales outstanding) by 8 days due to faster billing accuracy and fewer disputes
- Improved audit readiness — our external auditors reduced their revenue testing sample size by 30% after seeing our controls
Total cost: One dedicated Revenue Operations Analyst (existing headcount, redirected focus) + ~80 hours of engineering time to build reports and automation.
Total benefit: $2.5M recovered in year one, plus $1.9M in annual run-rate improvement.
Start Small, Build Momentum¶
You don't need to implement everything at once. Start with the highest-impact, lowest-effort wins:
Week 1: Run the failed payment report. Fix your retry logic.
Week 2: Build the expected vs. actual billing reconciliation report. Investigate the top 10 variances.
Week 3: Audit last quarter's credit memos. Implement approval thresholds if you don't have them.
Week 4: Review contract-to-billing lag. Identify the bottleneck (it's usually sales ops or legal, not billing).
Revenue leakage isn't a technology problem. It's a process discipline problem. You don't need a new system. You need visibility, ownership, and a cadence of review.
The money is already yours. You just need to go collect it.