← Back to Blog
Case Study

Case Study: $12M SaaS Company Recovers $340K in 90 Days From Hidden Revenue Leaks

A $12M ARR SaaS company discovered $480K in annual revenue leaks — 4% of ARR — and recovered $340K in 90 days. Full breakdown: pricing gaps ($192K), billing errors ($120K), payment recovery ($96K), contract compliance ($72K). Exact recovery playbook included.

This case study documents how a $12M ARR B2B SaaS company discovered $480K in annual revenue leakage — 4% of ARR — and recovered $340K within 90 days. The company's name is withheld per their request, but the numbers, categories, and timeline are real.

Company Profile

  • Revenue: $12M ARR
  • Customers: 2,400 across 3 plans (Starter, Professional, Enterprise)
  • Billing: Monthly and annual billing via Stripe
  • Enterprise: 15 contracts with custom pricing and terms
  • Team: 2-person finance team, no dedicated revenue operations

The company had never run a formal revenue leakage analysis. They believed their billing was "mostly accurate" — Stripe was configured correctly, invoices went out on time, and churn was tracked. The standard SaaS metrics looked healthy.

The Analysis: What We Found

Finding 1: Pricing Gaps — $192K/year (40% of total leakage)

The company had run a promotional campaign 14 months earlier: "First 90 days at 40% off." The campaign was successful — 340 customers signed up with the promotional coupon.

The problem: the Stripe coupon was created with duration: forever instead of duration: repeating, duration_in_months: 3. All 340 accounts were still receiving the 40% discount, 14 months later.

Impact calculation: 340 accounts × average $47/month discount × 12 months = $192K/year in unbilled revenue.

Root cause: No process for auditing active discounts. The marketing team created the coupon; the finance team didn't verify the configuration.

Finding 2: Billing Errors — $120K/year (25% of total leakage)

The company's pro-ration logic used a fixed 30-day month for all mid-cycle plan changes. In months with 31 days (7 months per year), every upgrade was under-billed by approximately 3.2%.

With ~200 mid-cycle changes per month, the systematic under-billing affected roughly 1,400 transactions per year.

Impact calculation: 1,400 transactions × average $85 charge × 3.2% under-billing × (7/12 months) = $120K/year.

Root cause: Stripe's default pro-ration is accurate, but the company had implemented custom pro-ration logic in their backend that assumed 30-day months.

Finding 3: Payment Recovery — $96K/year (20% of total leakage)

The company's failed payment recovery rate was 38% — significantly below the 65-75% best-in-class benchmark. They were using Stripe's default retry schedule with no additional dunning.

Monthly failed charges averaged $20K. At 38% recovery, they were losing $12.4K/month ($149K/year) to involuntary churn. With optimized recovery (target: 65%), the gap was $96K/year.

Root cause: No pre-dunning emails, no in-app payment update prompts, no SMS channel, hard lockout on first failure (no grace period).

Finding 4: Contract Compliance — $72K/year (15% of total leakage)

Eight of the company's 15 enterprise contracts included annual price escalation clauses of 5%. None had been applied at renewal. For the oldest contracts (3 years), the cumulative unapplied escalation was 15.8% (compounded).

Impact calculation: 8 contracts × average $45K ACV × average 10% cumulative gap = $72K/year in uncollected escalations.

Root cause: Enterprise contracts were managed in a Google Drive folder. Renewal terms weren't synced to Stripe. Nobody checked whether escalation clauses were applied.

The Recovery: Timeline and Results

Week 1: Fix the promotional coupon

Updated the Stripe coupon to expire immediately for all affected accounts. New invoices at the correct rate went out the next billing cycle. Impact: $192K/year leak stopped.

Week 2: Fix pro-ration logic

Replaced custom pro-ration code with Stripe's native pro-ration (which correctly handles variable month lengths). Impact: $120K/year leak stopped.

Weeks 3-4: Implement optimized dunning

Added pre-dunning emails (7 days before card expiration), in-app payment update banner, and a 7-day grace period before hard lockout. Recovery rate improved from 38% to 62% in the first month.

Months 2-3: Enterprise contract enforcement

Finance team contacted 8 enterprise accounts about retroactive and go-forward price escalation. 5 of 8 agreed to retroactive adjustment. All 8 accepted go-forward escalation.

Results Summary

  • Total annual leakage identified: $480K (4.0% of ARR)
  • Revenue recovered in 90 days: $340K
  • Ongoing annual savings: $430K/year
  • Implementation time: 4 weeks
  • Cost of tooling: $2,400/year
  • ROI: 142x

Find Your Hidden Revenue Leaks →

Key Takeaways for SaaS Finance Teams

Three patterns stand out from this case study — and they're consistent across the hundreds of SaaS companies we've analyzed:

  1. The biggest leaks are the simplest fixes. The $192K promotional coupon leak was fixed in 10 minutes (updating one Stripe coupon field). Yet it had been bleeding revenue for 14 months because no one was looking.
  2. Default settings are leak sources. Default retry schedules, default pro-ration logic, default dunning — "defaults" cost this company $216K/year (billing errors + payment recovery combined).
  3. Contracts don't enforce themselves. Having a 5% annual escalation clause in a contract means nothing if the billing system doesn't apply it at renewal. The gap between "what the contract says" and "what Stripe charges" is pure leakage.

For benchmarks on what "normal" looks like in your industry, see our SaaS revenue leakage benchmarks. For the terminology behind these concepts, our ARR leakage definition and billing reconciliation guide provide the foundation.

Want to estimate your own leakage before committing to a full analysis? Try our Revenue Leak Calculator — it takes 60 seconds and uses industry benchmarks to estimate your exposure. For the full methodology, read our complete guide to revenue leakage detection.

Stop Revenue Leaks Before They Start

LeakShield AI uses autonomous agents to monitor your revenue streams 24/7 — detecting leaks, prioritizing by impact, and showing you exactly how to fix them.

Start Recovering Revenue