Last year, I led a quote-to-cash audit for a SaaS company doing $45M in ARR. They brought us in because they felt like something was off. Revenue was growing, but not as fast as the bookings numbers suggested. They couldn't pinpoint why.
After two weeks of digging, we found it. Across seven discrete leakage points in their quote-to-cash process, they were losing approximately $2.7M annually, just under 6% of total revenue. Not to competitors. Not to churn. To their own processes. Incorrect pricing in 4% of quotes. Unapplied payments sitting in suspense accounts for months. Revenue recognition errors that nobody caught because finance and sales were working from different systems. Renewal triggers that fired late or not at all.
None of these were dramatic failures. Each one was a small leak, the kind that's easy to dismiss as a rounding error or an edge case. But small leaks compound. And at scale, they represent real money that should be hitting your top line.
If you haven't audited your quote-to-cash process for leakage in the past twelve months, I can almost guarantee you're leaving revenue on the table. Here are the seven most common leakage points I see, how to detect them, how to quantify the damage, and how to fix them. Consider this your self-audit checklist.
Leakage Point 1: Incorrect Pricing and Discounting
The problem: Reps are quoting from outdated price books, applying discounts incorrectly, or manually overriding system pricing without proper approval. The result is deals that close at margins lower than intended, or worse, deals that close at prices the company can't actually honor.
How to detect it: Pull every quote generated in the past quarter and compare the quoted price to the current price book. Flag any quote where the price doesn't match and wasn't accompanied by an approved discount. Also look for quotes where multi-year or volume discounts were applied incorrectly: stacking discounts that shouldn't stack, applying enterprise pricing to mid-market deals, or extending promotional pricing past its expiration.
How to quantify it: Calculate the revenue delta between what should have been quoted (based on current pricing and approved discount policies) and what was actually quoted. In my experience, this gap runs 2-5% of total bookings for companies without CPQ automation, and 0.5-1% for companies with CPQ that haven't updated their rules in the past year.
How to fix it: Implement or update your CPQ (Configure, Price, Quote) system with current price books, automated discount approval workflows, and guardrails that prevent unauthorized overrides. If you're not ready for CPQ, at minimum implement a price book validation step in your approval workflow. For more on the downstream effects of quoting problems, see Why Your Sales Cycle Is Longer Than It Should Be. Pricing friction is one of the biggest hidden cycle-time killers.
Leakage Point 2: Unapplied Payments
The problem: Payments come in but don't get matched to the correct invoice or account. They sit in suspense accounts or unapplied cash buckets, creating a gap between cash received and revenue recognized. This is especially common in companies with multiple product lines, complex billing structures, or high transaction volumes.
How to detect it: Ask your finance team to pull the unapplied payments report. Every accounting system has one, and in many companies, nobody looks at it regularly. Sort by age and amount. If you have payments sitting unapplied for more than 30 days, you have a problem. If the total unapplied balance is more than 1% of your monthly revenue, you have a significant problem.
How to quantify it: Unapplied payments don't just represent delayed revenue recognition. They also drive downstream issues. Customers with unapplied payments may receive dunning notices for invoices that are technically paid, damaging the relationship. Collections teams waste time chasing payments that already arrived. And cash flow reporting is inaccurate, which affects everything from financial planning to debt covenants.
How to fix it: The root cause is almost always a mismatch between how invoices are generated and how payments are received. Standardize your invoice numbering and reference fields so payment matching can be automated. Implement automated cash application rules in your billing system. And establish a weekly review cadence for the unapplied payments queue. Don't let it age.
Leakage Point 3: Revenue Recognition Errors
The problem: Revenue is recognized in the wrong period, at the wrong amount, or against the wrong contract terms. This happens most often when revenue recognition is a manual process that depends on someone translating contract terms into journal entries. It's worse when sales, finance, and legal are working from different copies of the contract.
How to detect it: Run a reconciliation between your bookings report (what sales says they closed), your billing report (what finance invoiced), and your revenue recognition schedule (what was recognized and when). Discrepancies between these three reports indicate recognition errors. Also look for contracts where the recognition schedule doesn't match the stated terms. For example, a 12-month SaaS contract where revenue is recognized upfront instead of ratably.
How to quantify it: The financial impact depends on the nature of the errors. Timing errors (right amount, wrong period) affect forecasting accuracy and can create compliance issues. Amount errors (wrong revenue figure) directly impact reported revenue. In publicly traded or audit-sensitive companies, recognition errors can trigger restatements, and that's a whole different level of pain.
How to fix it: Automate revenue recognition as much as possible. Connect your CRM to your billing system to your revenue recognition engine so contract terms flow through without manual re-entry. Implement validation rules that flag contracts where the recognition schedule doesn't match standard terms. And establish a monthly reconciliation process between sales, finance, and RevOps. If you're building the business case for this investment, the audit risk alone usually justifies the spend.
Leakage Point 4: Contract Terms That Don't Match What Was Sold
The problem: The signed contract says one thing, but the CRM opportunity says another. Maybe the rep promised a custom SLA that didn't make it into the contract. Maybe the contract includes a price escalator that the rep didn't disclose. Maybe the billing terms (net-30 vs. net-60) differ between what was negotiated and what was documented.
How to detect it: Compare a sample of closed-won opportunities to their signed contracts. Look at pricing, terms, billing frequency, SLA commitments, and any custom provisions. In my experience, 8-15% of contracts have at least one material discrepancy between the CRM record and the signed document.
How to quantify it: Discrepancies create two types of cost. First, the direct financial impact: if the contract price is lower than what was recorded in the CRM, your bookings are overstated. If it's higher, you're under-billing. Second, the relationship cost. When a customer discovers a discrepancy, it erodes trust. If they were promised something that isn't in the contract, you're either honoring an undocumented commitment (cost) or disappointing a customer (churn risk).
How to fix it: Implement a contract-to-CRM validation step in your deal closure process. Before an opportunity is marked closed-won, someone (ideally in deal desk or RevOps) should verify that the CRM record matches the signed contract on key terms: price, billing frequency, term length, SLA, and any custom provisions. Better yet, use contract management software that auto-populates CRM fields from signed agreements.
Leakage Point 5: Approval Bottlenecks That Kill Deal Momentum
The problem: A deal is ready to close, but it's stuck in an approval queue. Discount approval. Legal review. Security questionnaire. Executive sign-off. Every day a deal sits waiting for approval, two things happen: the probability of close decreases, and the customer's urgency decays. I've seen deals that were "ready to sign this week" slip by a month because the approval process took 8 business days.
How to detect it: Measure the time between when a quote is generated and when it receives final approval. Then measure the time between approval and signature. If the approval-to-signature gap is short but the generation-to-approval gap is long, your approvals are the bottleneck. Also track approval queue depth: how many deals are waiting for approval at any given time?
How to quantify it: This is where it gets painful. Look at deals that were forecasted to close in a given period but slipped to the next period. For each slipped deal, identify whether approval delays were a contributing factor. Then calculate the deal-velocity impact: what would your average cycle time be if you eliminated approval delays? The revenue impact is the difference between when deals actually closed and when they would have closed with faster approvals, multiplied by the time-value of that revenue. We covered the broader signs your stack is costing you revenue, and approval bottlenecks are almost always on that list.
How to fix it: Implement tiered approvals based on deal size and discount level. A $20K deal with a standard 10% discount shouldn't need the same approval chain as a $500K enterprise deal with custom terms. Pre-approve standard scenarios so only exceptions require manual review. Set SLAs for approvers so that if a deal isn't reviewed within 24 hours, it auto-escalates. And provide mobile approval capability so deals don't stall because someone is traveling.
Leakage Point 6: Collections Delays From Poor Dunning Workflows
The problem: Invoices go out, but payments don't come back on time. Or at all. Not because customers don't want to pay, but because your dunning process (the sequence of reminders, escalations, and follow-ups for overdue invoices) is manual, inconsistent, or nonexistent.
How to detect it: Pull your accounts receivable aging report. Calculate your Days Sales Outstanding (DSO). If your DSO is more than 15 days above your stated payment terms, you have a collections problem. Also look at the distribution. Are a handful of large accounts dragging the average, or is late payment widespread?
How to quantify it: Late payments have direct and indirect costs. Direct: the time-value of delayed cash. If your DSO is 60 days on net-30 terms, you're effectively extending a 30-day interest-free loan to every customer. At scale, this represents meaningful working capital impact. Indirect: collections effort consumes finance and CS team bandwidth that should be spent on higher-value activities. A strong sales forecasting process depends on predictable collections timing, and when that breaks down, your forecast breaks down with it.
How to fix it: Automate your dunning workflow. Most billing platforms support automated dunning sequences: a reminder at 7 days past due, an escalation at 14 days, a formal notice at 30 days, and an account hold at 45 days. Customize the tone and channel (email, in-app notification, phone call) based on customer segment and relationship. And make sure your dunning workflow coordinates with your CS team. Nothing destroys a customer relationship faster than an aggressive collections notice sent the same day as a QBR.
Leakage Point 7: Renewal Gaps From Missing Triggers
The problem: Contracts expire without a renewal conversation ever happening. Not because the customer churned intentionally, but because nobody noticed the renewal date was approaching. The contract lapses, service continues (because nobody turns it off either), and the company is now providing service without a valid contract. Eventually someone catches it, but by then the customer has leverage: "We've been off-contract for three months and nothing changed, so why should we pay more?"
How to detect it: Run a report on every contract that renewed in the past year. How many renewed on time (before the expiration date)? How many renewed late (after expiration)? How many are currently expired with no renewal in progress? For the late renewals, how many days after expiration did the renewal close? If more than 20% of your renewals close after the contract expiration date, you have a trigger problem.
How to quantify it: Late renewals cost you in three ways. First, the gap period where service is provided without a contract creates unbilled revenue. Second, late renewals give customers leverage to negotiate: "we didn't even know we needed to renew, and the product works fine without a contract." Third, and most importantly, late renewals often indicate a broader CS coverage gap that increases churn risk.
How to fix it: Build automated renewal triggers that fire at 120, 90, 60, and 30 days before contract expiration. These triggers should create a renewal opportunity in the CRM, assign it to the appropriate owner (CSM, account manager, or renewal specialist), and generate a task sequence for the renewal conversation. The 120-day trigger should include an automated health check. How is the customer using the product? Are there open support tickets? Is the champion still at the company? This early intelligence determines whether the renewal will be a straightforward conversation or a retention effort.
Running Your Own Audit
Here's how I'd approach this if you wanted to run a self-assessment without bringing in outside help.
Week 1: Pull the data for each of the seven leakage points. You don't need perfect data; directional accuracy is enough to identify which areas have the biggest gaps.
Week 2: Quantify the top three leakage points. Focus on the ones where the data suggests the highest dollar impact. Build a simple model: estimated revenue at risk, estimated annual leakage, and the confidence level of your estimate.
Week 3: For each of the top three, map the root cause and define the fix. Some fixes are process changes (adding a validation step, changing an approval threshold). Some are system changes (implementing automation, connecting two systems). Some are organizational changes (who owns what, how is performance measured).
Week 4: Build the business case and the implementation plan. Frame it as a revenue recovery initiative, not an operations project. Leadership cares about the $2.7M you're losing, not the workflow you need to redesign.
If you want a more structured approach, a quote-to-cash optimization engagement walks through this systematically, mapping every step of the process, quantifying every leakage point, and delivering a prioritized remediation plan with projected ROI.
The revenue you're losing to process inefficiency is the easiest revenue to recover. You've already done the hard work of winning the customer and closing the deal. Don't let it leak out through cracks in the process you built to collect it.