What Is Dunning? The SaaS Founder's Guide
Dunning is the automated process of recovering failed subscription payments before the customer churns. It combines retry logic, email sequences with payment update links, and in-app notifications. Without dunning, Stripe recovers about 35% of failed charges. A proper dunning stack recovers 50-70%, making it the single highest-ROI retention investment for SaaS founders.
Dunning Explained Simply
The word "dunning" comes from the 17th-century verb "to dun". to make persistent demands for payment of a debt. In modern SaaS, dunning refers to the entire system that fires when a customer's recurring payment fails: automatic card retries on optimized schedules, multi-step dunning email sequences asking the customer to update their payment method, in-app banners prompting card updates, and grace periods that keep the subscription active while recovery attempts continue. Dunning exists because payment failures are rarely the customer's fault. expired cards, bank holds, insufficient funds, and network errors account for the vast majority of failures. The customer still wants your product; they just need a friction-free path to fix their payment. This type of loss is called involuntary churn and accounts for 20-40% of total SaaS churn. Every SaaS company on a recurring billing model needs dunning, yet most indie founders rely solely on Stripe's default retry logic, which leaves 60-65% of failed payments unrecovered. Use our dunning ROI calculator to see how much revenue a proper dunning system would save your business.
How to Calculate Dunning
If 40 payments fail this month and your dunning system recovers 24 of them, your recovery rate is 60%. At $50 average subscription price, that's $1,200 saved versus $800 lost. Without dunning beyond Stripe retries, you'd recover only ~14 ($700) and lose $1,300.
Calculate your dunning ROIDunning Benchmarks for SaaS in 2026
| Stage | Benchmark | Notes |
|---|---|---|
| Pre-revenue / MVP | N/A | Too few transactions to measure. focus on getting Stripe retries enabled |
| $1K to $10K MRR | 35 to 45% | Stripe Smart Retries only; most founders haven't added email dunning yet |
| $10K to $50K MRR | 50 to 60% | Adding a 3-4 email dunning sequence lifts recovery by 15-20 percentage points |
| $50K+ MRR | 60 to 70% | Full stack: retries + emails + in-app banners + pre-dunning card expiry alerts |
How to Improve Dunning
1. Enable Stripe Smart Retries and extend your retry window to 28 days
Stripe's ML-based retry timing recovers more than a fixed schedule. Go to Settings → Subscriptions and emails → Smart Retries. Set the retry window to the maximum 28 days to give customers the longest possible grace period before cancellation. This alone gets you from ~25% to ~35% recovery.
2. Send the first dunning email within 1 hour of failure
Speed matters. Emails sent within the first hour of a failed payment see 2-3x higher open rates than those sent 24 hours later, because the customer is more likely to still be near a device and aware of the transaction. Include a direct one-click link to update their card. don't make them log in first. See our dunning email benchmarks for optimal timing data.
3. Use a 4-email sequence spaced over 14 days
The optimal dunning cadence based on aggregate SaaS data: Email 1 at hour 1 (friendly heads-up), Email 2 at day 3 (reminder with urgency), Email 3 at day 7 (last chance before service impact), Email 4 at day 12 (final notice before cancellation). Each email should be plain text from a real person, not a branded marketing template.
4. Add pre-dunning card expiry alerts
25-30% of payment failures come from expired cards. Stripe fires a customer.source.expiring webhook 30 days before expiration. Sending a proactive "your card expires soon" email prevents the failure from ever happening. Learn how in our guide on how to send card expiry reminders in Stripe. SaveMRR's pre-dunning alerts automate this from your Stripe webhooks.
5. Automate the entire stack instead of building it yourself
Building dunning from scratch. webhook handlers, email templates, retry logic, card update pages, tracking. takes 20-40 engineering hours. Tools like SaveMRR ($19/mo) connect to Stripe in minutes and run the full dunning stack automatically: Smart Retries, multi-email sequences, card expiry alerts, and recovery tracking.
Dunning vs Payment Recovery
Dunning and payment recovery overlap but aren't identical. Dunning specifically refers to the communication and retry process, specifically the emails, notifications, and automated retries that attempt to collect a failed payment. Payment recovery is the broader outcome: the total percentage of failed payments that are eventually collected through any means, including dunning, card updater services, manual outreach, or customer self-service. A SaaS company's payment recovery rate is the result of its entire dunning strategy. You can benchmark your recovery using the failed payment recovery calculator. You can have dunning without great recovery (bad emails, wrong timing), but you can't have high recovery without some form of dunning. For a step-by-step setup guide, see how to set up dunning in Stripe.
Frequently asked questions
What does dunning mean in SaaS?
In SaaS, dunning is the automated process of recovering failed subscription payments. It includes retry logic (re-attempting the charge on optimized schedules), email sequences (notifying the customer and providing a link to update their card), and grace periods (keeping the subscription active during recovery attempts). The goal is to collect the payment before the subscription cancels.
How much revenue does dunning actually recover?
Stripe's built-in Smart Retries recover about 35% of failed payments on their own. Adding a dedicated dunning email sequence pushes recovery to 50-60%. A full dunning stack with retries, emails, in-app banners, and pre-dunning card expiry alerts can recover 60-70%. For a $20K MRR SaaS with 3% monthly failure rate, that's the difference between losing $390 and losing $180.
How many dunning emails should I send?
The optimal number is 3-4 emails over a 14-day period. Email 1 goes out within 1 hour of failure, Email 2 on day 3, Email 3 on day 7, and an optional Email 4 on day 12. Sending fewer than 3 leaves recovery on the table. Sending more than 5 has diminishing returns and risks annoying the customer.
Does Stripe do dunning automatically?
Stripe has basic built-in dunning: Smart Retries (ML-optimized retry timing) and a single email notification on failure. However, Stripe doesn't send multi-step email sequences, doesn't provide in-app payment update banners, and doesn't send pre-dunning card expiry alerts. Most SaaS companies need a dedicated dunning tool or custom-built system to reach recovery rates above 40%.
What's the cheapest way to add dunning to my SaaS?
The cheapest dedicated option is SaveMRR at $19/mo, which includes automated dunning emails, Stripe Smart Retry optimization, card expiry alerts, and recovery tracking. Alternatives like Churn Buster start at $99/mo, Stunning at $50/mo. You can also build dunning yourself using Stripe webhooks and a transactional email service, but expect 20-40 hours of engineering work.
