Guide · Recovery gaps
Why your Stripe dunning is silently losing you money
How Stripe Smart Retries actually work, why the default configuration leaves recoverable revenue on the table, the levers that move your recovery rate, and how an audit surfaces the recovery gap hiding in your account.
Most SaaS teams could not tell you what share of their failed Stripe payments they actually recover, and that single blind spot is where the money quietly leaks out. Stripe dunning runs in the background, retries a charge a few times, and reports almost nothing useful back to you, so a recovery rate that feels fine in your head can be half of what it should be in reality.
Stripe dunning is the automated process Stripe uses to retry failed subscription payments and, optionally, email customers to update their card. The short answer to why it loses you money: Stripe's Smart Retries recover a meaningful share of failures on their own, but the published "around 55 percent" figure is an average across millions of businesses, and independent audits of real B2C accounts put the number closer to 25 to 35 percent.3 The gap between those two numbers, multiplied across a year of failed charges, is revenue you already earned and never collected. This guide explains how Stripe dunning works, why the default leaves money on the table, the levers that move your recovery rate, and how a revenue audit surfaces exactly what you are losing.
What dunning actually means on Stripe
Dunning is the billing term for the sequence of actions a system takes after a payment fails: retrying the charge, notifying the customer, and eventually marking the subscription unpaid or cancelled if nothing works. Stripe dunning has two halves that often get conflated. The first is Smart Retries, the automated re-attempt of the charge itself. The second is the customer-facing communication: the emails Stripe can send asking the customer to update a card, and the hosted page where they actually do it.1
Most teams turn on Smart Retries, leave the email settings at their defaults, and never look at either again. That is where Stripe dunning quietly starts costing money. The retry half can only succeed when the customer's existing card will eventually work. The communication half is what recovers everything else, and it is almost always the part that gets ignored. It is the half of Stripe dunning most teams never tune.
What Stripe Smart Retries do, and what they do not
Smart Retries use a machine-learning model trained on billions of Stripe transactions to pick the retry time most likely to succeed for each individual card, rather than retrying on a fixed schedule.4 Stripe can re-attempt a failed charge several times over a window that extends up to about two months, with the exact timing chosen by the model; many accounts run a shorter window of around three weeks.5 For a soft decline such as temporary insufficient funds, this works well. Waiting two days and trying again after a likely payday genuinely recovers payments a naive fixed retry would miss.
What Smart Retries do not do is reason about why a card declined. A "stolen card" decline and an "insufficient funds" decline get broadly the same treatment, even though one will never recover by retrying and the other very likely will.5 They also do nothing to involve the customer. The retry happens silently. If a card is simply expired, no amount of retrying the same dead card will succeed, and the only fix is getting the customer to enter a new one, which retries alone cannot do.
The recovery rate almost nobody measures
Here is the uncomfortable part. Stripe publishes that businesses using Stripe Billing recover about 55 percent of failed payments on average.2 But that figure is an average across every business type and bundles the full native recovery suite. When one payments team audited more than 200 B2C Stripe Billing accounts representing over $500M in failed-payment volume, the real recovered share landed at 25 to 35 percent.3 A separate analysis put Smart Retries alone at roughly 38 percent.5
The honest answer to "what recovery rate should I expect" is that it depends heavily on your customer base, your decline mix, and whether you have layered any communication on top, and that most teams have never actually calculated their own number. Failed payment recovery starts with that one measurement, and almost nobody takes it. Stripe's dashboard gives you basic retry metrics but no clean recovery-rate figure, so you are usually flying blind on the one number that matters most.5 You cannot improve a metric you do not measure, and a recovery gap you cannot see is one you will never fix. Across the median SaaS company, failed payments alone account for roughly 9 percent of recurring revenue, so the cost of guessing is not small.7 Knowing your real recovery rate is the first step to fixing Stripe dunning, and it starts with measurement.
Why retries alone leave money on the table
The single biggest lever in Stripe dunning is not the retry schedule. It is customer communication. A silent retry can only succeed if the customer's existing card will eventually clear. The moment a failure is caused by an expired card, a hard decline, or a fraud hold that needs releasing, the only path to recovery runs through the customer, and that means email, and increasingly SMS or in-app prompts.
The numbers bear this out. A single dunning email recovers roughly 15 percent of failed payments on its own, and a well-timed sequence of four emails over several days recovers 35 to 45 percent.6 Layer in card-expiration reminders, which can prevent 20 to 30 percent of failures before they ever happen, plus Stripe's Card Account Updater, and a full system reaches 60 to 80 percent or higher.6 Here is how the approaches compare:
| Recovery approach | Typical recovery | What it takes |
|---|---|---|
| Smart Retries alone, silent | ~25 to 40% | Toggle on, no ongoing work |
| Retries plus a single dunning email | adds ~15 points | One email template |
| Retries plus a tuned 4-email sequence | 35 to 45% | Sequence, timing, copy |
| Plus card-expiry prompts and Account Updater | prevents 20 to 30% of failures | Configuration |
| Full system: retries, multichannel dunning, in-app | 60 to 83% | A dunning tool or in-house build |
Timing matters as much as the channel. The most effective first dunning email goes out within the first hour of the failure, while the customer may still have the bank's decline notification fresh in mind, rather than the 24 to 48 hours most teams wait before sending anything.6 Tuning Stripe dunning is mostly about closing that communication gap, not micro-optimizing the retry schedule.
How a Stripe revenue audit finds your recovery gap
A recovery gap is a failed payment that was never followed by a successful one. It is the realized, dollar-denominated version of your missing recovery rate: not a percentage, but a specific list of charges, customers, and amounts that failed and never came back. Where a recovery rate tells you how you are doing in aggregate, the recovery gap tells you exactly which money is sitting uncollected right now.
An audit surfaces these by correlation. For each customer, it looks at every failed payment and checks whether that same customer had a successful payment within a defined window afterward. If they did, the failure recovered and no finding is raised. If they did not, the charge is flagged with its amount, date, and the customer attached. Bleedpoint's recovery-gap check uses a 14-day window measured strictly after each failure, correlates at the customer level rather than relying on Stripe's retry counter (which is not always populated in the data), and excludes any failure that is really a case of involuntary churn, which it reports as a separate finding.1 The 14-day window is deliberately conservative: long enough that a normal retry cycle has had a fair chance to work, short enough that a charge sitting unrecovered for two weeks is real money worth a nudge.
The distinction worth holding onto is that an audit is a diagnostic, not a recovery tool. It tells you the size and shape of your recovery gap so you can decide what to do, whether that is enabling Smart Retries, building a proper dunning sequence, or adopting a recovery tool. It reads your data only. It never contacts a customer or moves a charge. An audit does not tune your Stripe dunning for you; it tells you how much your current setup is missing.
That is what Bleedpoint does. It connects to your billing system with read-only access, runs the recovery-gap check alongside four other revenue-leak checks, and returns a PDF report with each unrecovered charge, a dollar total, and a recommended action. If you want to see the format before connecting anything, the sample report walks through a fictional 14-finding audit with a clear recovery-gap section.
Do it yourself, use a dunning tool, or run an audit
There are three honest paths, and they are not mutually exclusive. The right mix depends mostly on how much failed-payment volume you have.
Use Stripe's native tools. Smart Retries, customer emails, the hosted payment-update page, and Card Account Updater are the native Stripe dunning tools, all built in and free beyond standard Stripe fees. For an early-stage business under roughly $10K in monthly recurring revenue, turning these on and writing a basic email sequence captures most of the easy recovery and is the correct starting point. You do not need a tool to do the obvious thing first.
Adopt a dedicated dunning tool. Once recovery is worth real money, tools like Churnkey, Revive, and Rebounce specialize in multichannel dunning, decline-code-specific retry logic, in-app payment walls, and the recovery analytics Stripe does not surface. They typically charge either a percentage of recovered revenue or a flat monthly fee, and above roughly $50K in monthly recurring revenue the lift usually pays for itself.4 These are recovery tools by design: their job is to act, continuously.
Run a revenue audit. An audit is the diagnostic that tells you whether you have a recovery problem worth solving, and how big it is, before you commit to building or buying anything. It is a point-in-time number, not an ongoing service. If you are comfortable in SQL, you can build the correlation in Stripe Sigma yourself; if you would rather get the number in a few minutes and a shareable report, a purpose-built audit does the same work without the queries. The three approaches fit together cleanly: audit to size the gap, native tools to capture the easy wins, a dunning tool when the math justifies it. Failed payment recovery is one of the highest-return activities in subscription billing, because you are reclaiming revenue from customers who already chose to pay you, and an audit is how you decide whether it is worth the effort.8
Frequently asked questions
What is dunning in Stripe?
Dunning is the automated process Stripe runs after a subscription payment fails. It retries the charge with Smart Retries, can email the customer to ask them to update their card, and eventually marks the subscription unpaid or cancelled if nothing works. Stripe dunning has two halves: the retry of the charge itself, and the customer-facing communication. Most teams configure only the first and leave the second at its defaults.
What recovery rate should I expect from Stripe Smart Retries alone?
It varies widely by customer base and decline mix. Stripe publishes an average of about 55 percent across Stripe Billing users, but independent audits of B2C accounts often find the real figure closer to 25 to 35 percent, and Smart Retries with no customer communication layered on tend to land lower still. The practical takeaway is to measure your own recovery rate rather than assume the published average applies to you.
How many times does Stripe retry a failed payment?
Stripe can retry a failed subscription payment several times over a window that extends up to about two months, with Smart Retries choosing each retry time using a machine-learning model rather than a fixed schedule. The schedule and number of attempts are configurable, and many accounts run a shorter window of around three weeks.
Are Stripe's built-in retries enough, or do I need a dunning tool?
For an early-stage business, native Smart Retries plus a basic dunning email sequence capture most of the recoverable revenue and are the right starting point. Above roughly $50K in monthly recurring revenue, a dedicated dunning tool that adds multichannel outreach and decline-code-specific retry logic usually recovers enough additional revenue to pay for itself. The decision is mostly a function of how much failed-payment volume you have.
What is a recovery gap and how do I find mine?
A recovery gap is a failed payment that was never followed by a successful payment from the same customer. It is the dollar-denominated version of a low recovery rate: a specific list of charges, customers, and amounts that failed and never came back. You can find recovery gaps in Stripe Sigma by correlating failed and successful payments per customer, or with an audit tool that runs the correlation for you and totals the dollar value.
Will running an audit or checking my dunning affect my customers?
No. A read-only audit reads your billing data and produces a report. It cannot retry a charge, send an email, change a subscription, or contact a customer in any way. Any recovery action is something you take separately, either in the Stripe Dashboard or through a dedicated recovery workflow.
Find out what your recovery gap is worth.
Free scan. See exactly what you're leaking, then unlock the full report for $99. Read-only access, no subscription required.
References
- Stripe. Smart Retries and revenue recovery. Stripe Documentation. docs.stripe.com
- Stripe. Stripe Billing: recover failed payments. Published average recovery figure for Billing users. stripe.com/billing
- Redux Payments. Stripe Smart Retries: How They Work, Recovery Rates, and Where They Fail. Independent data across 200+ B2C Stripe Billing accounts. reduxpayments.com
- Churnkey. Stripe Smart Retries: FAQs and Best Practices. churnkey.co
- Rebounce. Why Stripe's Default Payment Retries Aren't Enough. Recovery-rate and retry-window analysis. rebounce.dev
- DEV Community. 5 Stripe Dunning Best Practices That Recover 40%+ of Failed Payments. Dunning email and card-expiration recovery data. dev.to
- PaymentRescue. How Failed Payments Cost SaaS Companies 9% of Revenue. Citing data from Stripe, Recurly, and ProfitWell. paymentrescue.dev
- QuantLedger. Failed Payment Recovery: Stripe Smart Retries and Dunning. Retry-window guidance and recovery benchmarks by failure type. quantledger.app