ExeechainExeechain

Detect

  • Churn prediction0-100 daily, with the drivers
  • Customer health scoreThe three reasons, quoted
  • Revenue forecastNext quarter, defensible

Act

  • Retention playbooksDrafted per customer
  • Workflow automationWorkflows you compose
  • CopilotAsk about any account

Prove

  • QBR automationEight hours to thirty seconds
  • Revenue leak benchmarkSize the leak from your MRR, free
  • Retention intelligenceThe whole loop

Alternatives

  • vs Gainsight
  • vs ChurnZero
  • vs Vitally
  • vs Planhat
  • vs Totango

What they cost

  • Gainsight pricingEvery reported figure, sourced
  • ChurnZero pricingListed vs actually paid
  • Buyer's guideHow to choose

Connect

  • Stripe
  • HubSpot
  • Intercom
  • Zendesk
  • Mixpanel
  • Slack

Bring your own

  • API & CSVREST, webhooks, import
Pricing

Read

  • Documentation
  • Blog
  • Getting started

Look around

  • Live demoA seeded workspace
  • Churn calculatorLogo and revenue churn, annualised
  • NRR calculatorNet and gross retention
  • SecurityWhat we have, and don't
Sign inStart free
  1. Home/
  2. Blog/
  3. Revenue leakage
Blog/Failed payments

Revenue leakage in SaaS: definition, the seven causes, the formula, and how to detect it in billing data

Revenue leakage is recurring revenue a company earned and never collected, or lost without a decision: failed payments that were never retried, cards that expired before renewal, discounts that never ended, seats used but never billed, and renewals that lapsed unnoticed. The seven causes, the formula, a worked example, and how each one shows up in Stripe or any billing system.

Exeechain Research·September 18, 2026·10 min read

Short answer

What is revenue leakage in SaaS?

Revenue leakage is recurring revenue a company earned and then lost without anyone deciding to lose it: failed payments never recovered, cards that expired before renewal, discounts that never ended, seats used but not billed, renewals that lapsed unnoticed, plan changes never invoiced, and ad-hoc credits. It differs from churn (a decision) and from bad debt (usually unrecoverable). Leakage rate = (revenue that should have been collected − revenue collected, excluding customer decisions) ÷ contracted recurring revenue. Every cause is detectable in billing data.

Most of what gets called churn in a SaaS company includes a share that was never a decision. A card failed. A discount outlived its term. A contract ended and nobody on either side noticed. None of those customers chose to pay less, and most of the money is recoverable, which is what makes leakage the cheapest revenue a company can find. This post defines it, lists the seven causes with how each shows up in billing data, gives the formula, and sets out how to stop each one.

Leakage versus loss versus churn

Revenue loss is any decline in revenue. Churn is loss where the customer decided: they cancelled, downgraded, or negotiated. Leakage is loss where nobody decided. All leakage is loss; most loss is not leakage. The distinction is operational: churn is fixed in the product and in customer success, leakage is fixed in billing operations, and a company that lumps them together sends its CSMs to save customers whose only problem is an expired card.

The seven causes

Seven causes of SaaS revenue leakage, what each looks like, how to detect it in billing data, and typical size
CauseWhat it looks likeHow to detect itTypical size
Failed payments never recoveredAn invoice fails, one automated email goes out, nobody follows up, the subscription lapses weeks laterOpen invoices with a failed attempt and no later successful payment; subscriptions ended with reason payment_failedLargest. Typically 20-40% of all churned MRR was this.
Cards expiring before renewalThe card on file expires in the month before the next charge; the charge fails on scheduleDefault payment method expiry date earlier than the next billing dateLarge and entirely predictable weeks ahead.
Discounts that never endedA 3-month launch discount is still applied 18 months laterCoupons or discounts on active subscriptions with no end date, or an end date in the pastSmall per account, silent, and adds up over years.
Unbilled seats or usageA team of 14 is using an account billed for 10 seatsActive users per account above the billed quantity; metered usage above the invoiced amountMedium; it is also the expansion nobody asked for.
Renewals that lapsed unnoticedAn annual contract reaches its end date; nobody on either side acted; access continues or stops without an invoiceContracts with an end date in the past and no renewal invoiceRare but large per incident.
Plan changes not invoicedA customer was upgraded in the product; billing was never updatedPlan or tier in the product differs from the price on the subscriptionMedium; common after manual upgrades.
Ad-hoc credits and refundsSupport issues a credit to close a ticket; no policy, no record of whyCredit notes and refunds without a linked reason or approverSmall individually; a policy problem, not a billing one.

The formula

Revenue leakage (period) = revenue that should have been collected under existing contracts and price lists − revenue actually collected, excluding amounts lost to explicit customer decisions.

Leakage rate = revenue leakage ÷ contracted recurring revenue for the period.

In practice the numerator is built cause by cause rather than from the top down, because “should have been collected” is only knowable per cause: the failed invoices that never settled, the expected renewal invoices that never issued, the discount amounts past their end date, the unbilled seats at list price.

A worked example

A SaaS company with $400,000 contracted MRR closes a quarter. From billing: 23 invoices failed and were never settled ($19,400); 6 cards expired the month before renewal and the charges failed ($5,200); 41 subscriptions still carry a launch discount that was meant to last 3 months ($3,100 per month of foregone revenue); 9 accounts use more seats than they are billed for ($2,700 at list); 2 annual contracts passed their end date with no renewal invoice ($4,000).

  • Monthly leakage ≈ 19,400 + 5,200 + 3,100 + 2,700 + 4,000 = $34,400.
  • Leakage rate = 34,400 ÷ 400,000 = 8.6% of contracted MRR.
  • Of that, the first two rows ($24,600, or 72%) are failed cards. None of those customers decided anything.

The numbers are invented; the shape is not. In most subscription books the first two causes dominate, which is why the fix that pays back fastest is a recovery sequence and a card-expiry check, not a pricing review.

Detecting it in Stripe

Every cause above is a query against billing objects. Failed payments: invoices with status open or uncollectible that have a failed attempt and no later successful payment, plus subscriptions ended with cancellation_details.reason = payment_failed. Expiring cards: the default payment method's exp_month and exp_year against the subscription item's current_period_end. Discounts: active subscriptions with a coupon whose end is null or past. Unbilled seats: item quantity against active users from product data. Lapsed renewals: contract end dates with no subsequent invoice. The Stripe measurement notes cover the fields and the traps in each.

Preventing it

Each cause becomes a monitored condition with an owner and a response:

  1. Failed payment: a five-touch recovery sequence starts the day the invoice fails, carries a pay link, uses the bank's decline reason to pick the copy, and stops the moment the invoice settles.
  2. Expiring card: a message a month before the charge, with a one-click update link, to every customer whose card expires before their next billing date.
  3. Discounts: an end date on every coupon at creation; a monthly list of active discounts past their intended term.
  4. Seats and usage: a monthly reconciliation of billed quantity against active users, with the gap either invoiced or raised as an expansion conversation.
  5. Renewals: a renewal calendar read from the billing system's contract end dates, never from a spreadsheet, with the first touch 90 days out.
  6. Plan changes: a check that the product's plan for an account matches the subscription's price.
  7. Credits: a policy with an approver and a reason code on every credit note.

The common thread is that every check reads billing data rather than relying on someone remembering. Leakage is what happens in the gaps between people's attention, and the fix is to stop depending on attention.

Recovering what already leaked

Failed and expired-card revenue is recoverable for weeks after the failure; most customers pay when asked properly, because they never intended not to. Lapsed renewals are recoverable if the customer is still using the product. Discounts and unbilled seats are recoverable from the next invoice forward, and rarely retroactively; raise them as a conversation, not a back-bill. The one thing not to do is project a recovery rate before running the sequence on your own book. The share you recover depends on your customers and your timing, and a figure quoted in advance is someone else's.

Frequently asked questions

What is revenue leakage in SaaS?

Revenue leakage in SaaS is recurring revenue the company earned the right to collect and then lost without anyone deciding to lose it: subscription payments that failed and were never retried or fixed, cards that expired before a renewal charge, discounts that were meant to end and never did, seats or usage delivered but never billed, and renewals that lapsed because nobody noticed the date. It differs from churn in that the customer did not choose to leave, and from bad debt in that it is usually recoverable.

What is the difference between revenue loss and revenue leakage?

Revenue loss is any decline in revenue, including the customer deciding to cancel, downgrade or negotiate a lower price. Revenue leakage is the subset of loss that happened without a decision on either side: a failed payment, an unbilled seat, a discount nobody removed. All leakage is loss; most loss is not leakage. The distinction matters because leakage is fixed in billing operations and loss is fixed in product and customer success.

What are the main causes of revenue leakage?

The main causes of revenue leakage in a subscription business are failed payments never recovered, cards expiring before the next charge, promotional discounts that outlive their term, usage or seats consumed above the billed amount, contracts that auto-renewed at an old price or lapsed unnoticed, invoices issued late or not at all after a plan change, and refunds or credits applied without a policy. In most SaaS books the first two are the largest by far.

How do you calculate revenue leakage?

Revenue leakage for a period = revenue that should have been collected under existing contracts and price lists − revenue actually collected, excluding amounts lost to explicit customer decisions (cancellations, negotiated discounts). The revenue leakage rate is that figure divided by contracted recurring revenue for the period. In practice it is computed cause by cause: failed invoices that never settled, expected renewals that did not bill, discounts past their end date, and unbilled usage, each valued from billing records.

How do you detect revenue leakage in Stripe?

In Stripe, revenue leakage shows up as invoices with status open or uncollectible that carry a failed payment attempt and were never settled; subscriptions with a default payment method whose card expiry precedes the next billing date; subscriptions with a coupon that has no end date; subscription items whose quantity is below the seats actually in use; and subscriptions that ended with cancellation reason payment_failed. Each is a query against the subscription, invoice and payment-method objects.

How do you prevent revenue leakage?

Revenue leakage is prevented by turning each cause into a monitored condition with an owner: a recovery sequence that starts the day an invoice fails and stops when it settles, a card-expiry check that emails the customer a month before the charge, an end date on every discount, a monthly reconciliation of seats used against seats billed, and a renewal calendar read from the billing system rather than a spreadsheet. The common thread is that each check reads billing data, not memory.

Where this comes from

The four causes Exeechain's leak scan reads from a Stripe account are the first, second, fifth and fourth rows above (failed payments, cards expiring before renewal, renewals at risk, and unbilled expansion), each reported per customer with the dollars attached and nothing projected. The worked example is invented and its proportions are illustrative; the 20-40% figure for the failed-card share of churn is an industry range, not a measurement Exeechain took.

Evaluating revenue leakage against other platforms? See how Exeechain compares head-to-head with Gainsight, ChurnZero, Vitally, and Planhat.

Keep reading

More from the blog.

Retention metrics

Gross revenue retention (GRR): definition, formula, what it includes, and what a good number is

9 min read · Sep 18, 2026

Retention metrics

Customer retention rate: the formula, the KPIs that sit around it, and what a SaaS retention curve should look like

9 min read · Sep 18, 2026

Retention metrics

Customer retention vs acquisition: the actual cost math, and where the 5x claim comes from

9 min read · Sep 18, 2026

Find the money that leaked.
Read-only, from your own billing.

First scores in 15 minutes. Full accuracy in 24 hours. From $299/mo. Failed payments, expiring cards and slipping renewals named per customer, then recovered under your approval.

Or look at the live demo

Not ready to switch? Size your leak from your MRR and churn rate, with no billing access at all.

ExeechainExeechain

Find the revenue you never decided to lose. Failed payments, cards expiring before renewal, and renewals slipping, by customer, with the dollars attached.

Product

  • Free revenue leak scan
  • Churn prediction
  • Health scores
  • Copilot
  • Playbooks
  • QBR automation
  • Forecast
  • Retention intelligence
  • Pricing

Integrations

  • Stripe
  • HubSpot
  • Intercom
  • Zendesk
  • Mixpanel
  • Slack

Free tools

  • Churn rate calculator
  • NRR calculator

Compare

  • vs Gainsight
  • vs ChurnZero
  • vs Vitally
  • vs Planhat
  • vs Totango
  • Gainsight pricing
  • ChurnZero pricing
  • Planhat pricing
  • Vitally pricing
  • Totango pricing
  • CS software pricing
  • Buyer's guide

Resources

  • Live demo
  • Blog
  • Failed payment recovery
  • Involuntary churn
  • API reference

Company

  • About
  • Contact

Legal

  • Privacy
  • Terms
  • Security
AES-256 at restTLS 1.2+DPA available
© 2026 Exeechain·Built for SaaS teams who take retention seriously.
Sign in