TL;DR
- According to Recurly's 2025 data, involuntary churn (billing failures) accounts for 20-40% of total churn at most SaaS companies.
- These customers want to keep paying — the problem is infrastructure, not satisfaction.
- Dunning optimization combined with card updater services can recover 40-60% of billing churn — Churnkey's 2025 data shows email-only dunning recovers 42%, while a full dunning stack recovers up to 70%.
- A well-implemented dunning system takes 1-2 weeks to build and typically delivers +1-3% NRR improvement.
- The first step is diagnosing your involuntary churn share — not building the dunning sequence.
The Invisible Churn Problem
You're reviewing your monthly churn dashboard. Revenue down. A handful of accounts gone. You fire up the CRM, look at the churned accounts, and start building a CS intervention plan.
What you almost certainly can't see: a substantial portion of those accounts didn't choose to leave. Their card expired. Their bank flagged an international subscription charge. A renewal attempt fired at 2am and failed silently. By the time your dunning sequence (if you have one) sent a generic "your payment failed" email, the account had already churned in your billing system.
The problem isn't customer satisfaction. It's that failed payments look identical to voluntary churn in aggregate metrics. Both show up as the same revenue loss line item. Both decrease your MRR. Both inflate your churn rate. The difference is that one requires CS effort, product work, and months of iteration — and the other requires a two-week infrastructure fix.
Most SaaS teams treat their entire churn number as a single problem to solve. They invest in onboarding improvements, build new features, hire CS reps, and redesign pricing tiers. Meanwhile, a significant slice of their churned revenue was recoverable with a retry schedule and a well-timed email sequence.
This is the core of the involuntary churn problem: it's invisible until you explicitly measure it, and most teams never do.
Why It's Different From Every Other Churn Type
In the 7 Churn Archetypes framework, involuntary churn sits alongside — not within — the seven primary archetypes. That positioning matters. Every other archetype (failed activation, expectation gap, champion loss, budget cut, and so on) involves some level of customer dissatisfaction, product-fit failure, or relationship deterioration. Solving those problems means changing something about your product, your onboarding, or your sales process.
Involuntary churn is categorically different. The customer has already decided to stay. They set up the subscription. They integrated your product. They renewed — or tried to. The payment just didn't go through. That's it. There's no dissatisfaction to address, no product gap to close, no champion to win back. There's only a billing infrastructure gap to fix.
This structural difference is why involuntary churn has the highest ROI of any churn intervention. You're not trying to change a customer's mind. You're trying to complete a transaction they already agreed to.
The voluntary vs involuntary churn distinction determines your entire response strategy — and conflating the two is why most companies underinvest in dunning until they're well past $5M ARR.
The other reason it's different: it's predictable. A payment_failed event in your billing system is a leading indicator of involuntary churn — not a lagging one. Unlike the behavioral signals that predict voluntary churn (declining login frequency, feature drop-off, support ticket spikes), payment failure is a hard event with a known timeline. You have a window — typically 7-14 days before the subscription is cancelled — to complete a transaction the customer already wants to complete.
The 20-40% You're Not Counting
According to Recurly's 2025 benchmark data, involuntary churn accounts for 20-40% of total churn at most SaaS companies. This figure is consistent with other industry research, with some sources placing billing failure churn at up to 40% of total churn.
To put that in practical terms: if you're running 5% monthly churn, a typical churn distribution might look like this (from the 7 Churn Archetypes framework):
- 35% billing failures — the involuntary churn share
- 25% expectation gap
- 20% failed activation
- 10% champion loss
- 10% budget/prioritization
That means more than a third of your churn problem has nothing to do with your product. It's a billing infrastructure problem. And it's the archetype that calls for intervention first — before you rebuild your onboarding flow or expand your CS team.
The $1M-$5M ARR window is where this matters most. At this stage, billing failures are responsible for 20-40% of churn (Recurly, 2025), but most companies at this stage haven't yet invested in proper dunning infrastructure. They rely on Stripe's default retry logic and a single automated email. That's not a dunning system — it's a billing acknowledgement.
The gap between what companies spend on voluntary churn interventions and what they spend on involuntary churn infrastructure is enormous. CS teams, product managers, and retention specialists are expensive. A properly configured dunning system with card updater integration costs almost nothing to run once it's built.
Why Dunning Optimization Is the Highest-ROI Churn Fix
The ProductQuant Retention Strategy Builder rates dunning optimization as the lowest-difficulty, highest-speed NRR intervention available to a SaaS company. Implementation difficulty: low. Implementation timeline: 1-2 weeks. Expected NRR impact: +1-3%.
That combination is nearly impossible to find elsewhere in your retention toolkit. Onboarding improvements take 3-6 months to show measurable impact. CS programs require hiring and training. Pricing experiments carry risk. Dunning optimization is a two-week project with a measurable, fast payback.
Here's the ROI framing from the ProductQuant Churn Diagnosis methodology:
- Dunning emails combined with card updater services can recover 40-60% of billing churn
- A well-structured dunning sequence reduces total involuntary churn by 30-50% within 30 days
- That translates directly to NRR improvement: if billing failures are 30% of your churn, and you recover half of them, you've reduced total churn by 15%
Run that through your own numbers. If you're at $2M ARR with 5% monthly churn, and billing failures account for 30% of that churn, you're losing roughly $30K/month to failed payments. Recovering half of those accounts with dunning optimization is worth $15K/month — or $180K annually — from a two-week implementation project.
The comparison to other interventions isn't even close. This is why the churn intervention playbook sequences dunning optimization first for any company that hasn't explicitly measured and optimized their involuntary churn rate.
The 5-Component Involuntary Churn System
A proper involuntary churn system has five components. Most companies have one or two. Here's what the full system looks like:
- Failure Code Taxonomy
- Retry Logic
- Card Updater
- Pre-Expiry Notifications
- Recovery Measurement
Most teams are running 1 of 5 components
Retry logic alone without Card Updater or pre-expiry notifications recovers a fraction of what a complete system does. The dunning best practices guide covers all five.
1. Failure Code Taxonomy
Not all payment failures are the same. Stripe and other billing processors return specific failure codes: card_declined, expired_card, insufficient_funds, do_not_honor, card_not_supported, and others. Each failure code calls for a different response.
The first thing your system needs to do is capture the failure_code on every payment_failed event. In the FormDR PostHog implementation, payment_failed fires with four properties: plan, amount, failure_code, and attempt_count. That failure_code property is what allows you to route each failure to the right intervention.
Without failure code taxonomy, you're sending the same dunning sequence to a customer whose card expired (easily fixed by the customer) and a customer whose bank is blocking international charges (requires a different conversation entirely). Those are different problems requiring different messages.
2. Retry Logic
Stripe's default retry logic is four attempts over 14-28 days (configurable via Smart Retries). That's a starting point, not an optimized system. The key insight: retry timing matters, and it should be calibrated to failure type.
For insufficient_funds failures, retrying immediately is unlikely to succeed. Retrying a few days later — particularly just after the 1st of the month when accounts are typically topped up — improves recovery rates. For expired_card failures, no amount of retrying will work until the customer updates their payment method. Your retry logic should align with these realities.
The retry schedule should be coordinated with your email sequence — each retry attempt is an opportunity to send a pre-retry notification, and each failed retry is a trigger for an escalating message.
3. Card Updater
Card updater services (Stripe Account Updater, Visa Account Updater, Mastercard Automatic Billing Updater) automatically update expired or reissued card numbers with the new ones on file — before the next charge attempt. This is passive recovery. No customer action required.
Most companies at $1M-$5M ARR haven't enabled card updater, and it's the easiest recovery lever available. Stripe Account Updater is available on most paid Stripe plans and requires a single configuration toggle. Enable it. This recovers a portion of your expired card failures without a single email.
4. Pre-Expiry Notifications
Card updater doesn't catch everything. Some cards expire without being reissued. Banks don't always participate in updater networks. For those cases, you need pre-expiry notifications.
If you capture card expiry dates (Stripe exposes these via the payment method object), you can trigger an email 30 and 14 days before expiry: "Your card on file expires at the end of this month. Update it here to avoid any service interruption." This moves the intervention before the failure, not after it.
Pre-expiry notifications are the simplest sequence in your system and one of the highest-converting. The customer isn't dealing with a failed payment — they're being given a helpful heads-up. The response rate is substantially higher than post-failure dunning emails.
5. Recovery Measurement
The fifth component is the one most companies skip: measuring whether the system is working. You need a payment_failed → payment_succeeded funnel with a defined recovery window (typically 30 days).
Without this, you can't distinguish between accounts that recovered because of your dunning sequence and accounts that would have recovered anyway. You can't test sequence changes against a baseline. You can't calculate your actual recovery rate.
Build this measurement step before you optimize anything else. Tracking payment failure events in PostHog gives you the funnel visibility you need to turn dunning optimization into a repeatable, measurable process rather than a one-time implementation.
The Payment Failure Playbook: What to Do for Each Error Type
Different failure codes require different responses. Here's the intervention logic for the three most common types.
Card Declined (card_declined)
A decline can mean many things: the bank is blocking the transaction, the card is frozen, there are fraud controls in place, or the card has been cancelled. The customer may or may not know their card is declined.
Your response: Immediate notification to the customer with a direct link to update their payment method. Keep the message factual and non-accusatory — they likely don't know. Retry once after 3-4 days. If still declined after two attempts, escalate the message: the service is at risk of interruption, here's how to update. Do not retry indefinitely — excessive retries on a declined card generate do_not_honor flags that can get your merchant account flagged.
Expired Card (expired_card)
This failure code means you know exactly what's wrong: the card expiry date has passed. No retry will succeed until the customer provides a new payment method.
Your response: Stop the retry loop immediately. Send a single, clear message: "Your card ending in XXXX expired. Add a new payment method here." The message should take the customer directly to the billing update page, not your account dashboard. If you have card updater enabled and it didn't catch the card, this is the fallback. One reminder 3-4 days later if no action taken. Then final notice before cancellation.
Bank Block (do_not_honor / international flags)
Some banks — particularly outside the US — automatically block subscription charges from SaaS companies they don't recognize, especially for international merchants. The customer's card is valid, the funds exist, but the bank is declining the transaction.
Your response: Be explicit with the customer about what's happening. "Your bank blocked the payment — this happens with some international subscription charges. You can ask your bank to allow charges from [company name], or use a different card or PayPal." Include the specific steps for how to whitelist a merchant with common banks if you serve a geography where this is common. This is a customer education problem, not a payment method problem.
How to Measure Your Involuntary Churn Recovery Rate
Before you build anything, you need to know your current involuntary churn rate. Here's the measurement framework.
-
Build the payment failure funnel. In PostHog, Mixpanel, or any event analytics tool, create a funnel: Event:
payment_failed→ Event:payment_succeeded(within 30 days). The percentage ofpayment_failedevents that don't reachpayment_succeededwithin 30 days is your unrecovered involuntary churn rate. -
Classify your failure codes. Pull a 90-day export of your
payment_failedevents with theirfailure_codeproperty. The distribution of failure codes tells you where to invest. If 60% of your failures areexpired_card, pre-expiry notifications and card updater will recover the most. If 60% arecard_declined, your retry logic and customer notification sequence needs work. The exact distribution varies by company, billing geography, and customer segment. Don't assume — measure. - Calculate your recovery potential. Take your unrecovered involuntary churn rate and apply the 40-60% recovery benchmark (Churnkey, 2025: 42% email-only, up to 70% with full stack). That's your recovery potential range. Multiply by your monthly billing failure volume to get a dollar figure. This calculation is the business case for the implementation. It's also the baseline you'll measure against once the system is live.
-
Set up the recovery measurement loop. Once your dunning system is running, track these three metrics monthly: payment failure rate (failed payments / total renewal attempts); recovery rate within 14 days (fast recovery, likely from card updater + first email); recovery rate within 30 days (full dunning sequence window). A 30-day recovery rate above 50% indicates your system is performing. Below 30% means your sequence, timing, or card updater configuration needs attention. Using PostHog for churn prediction events includes a full template for the
payment_failedevent instrumentation, including thefailure_codeandattempt_countproperties you need for this funnel.
Dunning Email Template Pack
The sequence timing and copy angle for each failure type is different. The Dunning Email Template Pack includes ready-to-use email sequences for the three main failure categories (expired card, card declined, bank block), with subject lines, body copy, and CTA variations for each step in the sequence.
It's built for Customer.io, Intercom, and Klaviyo — and includes the trigger logic for connecting your billing events to the email sequence.
FAQ
What is involuntary churn in SaaS?
Involuntary churn is account cancellation caused by payment failure rather than customer dissatisfaction. The customer intends to continue their subscription, but the renewal charge fails — due to an expired card, bank decline, or billing error — and the account is eventually cancelled when the payment isn't recovered. It is distinguished from voluntary churn, where the customer actively chooses to cancel. The complete guide to SaaS churn archetypes covers the full taxonomy.
What percentage of SaaS churn is involuntary?
According to Recurly's 2025 benchmark data, involuntary churn accounts for 20-40% of total churn at most SaaS companies. The exact share varies by company — billing geography, customer segment, and average contract value all affect the mix. Measuring your own involuntary churn share is the first diagnostic step.
How do dunning emails work?
A dunning email is an automated notification triggered by a failed payment event. The sequence typically starts with a notification immediately after the payment fails, followed by additional emails timed to coincide with retry attempts. The goal is to prompt the customer to update their payment method before the subscription is cancelled. Effective dunning sequences vary the message by failure type — an expired card email differs from a declined card email — and escalate in urgency as the subscription cancellation window approaches.
What is the best dunning email sequence timing?
The effective window for dunning is 7-14 days. A practical sequence: Day 0 (payment fails) → notification email. Day 3 → retry attempt + pre-retry email. Day 5 → second retry + escalation email if still unpaid. Day 8 → final notice before cancellation. Day 14 → account cancellation with reactivation offer. Pre-expiry notifications sent 30 and 14 days before card expiry extend this window before failure occurs at all.
Sources
- Recurly. Subscription Benchmark Report — Churn Rate Benchmarks. recurly.com
- Churnkey. State of Retention 2025. churnkey.co
20-40% of your churn is infrastructure. Fix it in 2 weeks.
The Churn Diagnosis Playbook includes the involuntary churn diagnostic, the dunning optimization checklist, and the full Retention Strategy Builder — so you know which lever to move first.