TL;DR

  • Payment failures account for up to 48% of all churn in SaaS businesses, according to FlexPay research — yet most teams treat their entire churn number as a single problem.
  • The customer has already decided to stay. Involuntary churn is a billing infrastructure gap, not a product or satisfaction problem. That structural difference makes it the highest-ROI churn intervention available.
  • A properly implemented dunning system with card updater recovers 40-60% of billing-failure churns in 1-2 weeks. Implementation difficulty: low. Expected NRR impact: +1-3%.
  • Recurly's 2023-24 benchmark establishes the median recovery rate at 47.6%. Enterprise SaaS reaches 52-58%. Most unoptimized systems are well below that.
  • Build the measurement before you build the system. A payment_failed to payment_succeeded funnel with a 30-day recovery window is the baseline you optimize against.

The Invisible Churn Problem

Involuntary Churn: The 20-40% of SaaS Churn You're Not Fixing
Key insights on Involuntary Churn: The 20-40% of SaaS Churn You're Not Fixing.

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 cannot see: a substantial portion of those accounts did not choose to leave. Their card expired. Their bank flagged an international subscription charge. A renewal attempt fired at 2am and failed silently.

Up to 12% of card-on-file transactions fail due to expirations, insufficient funds, or network glitches — and a single payment hiccup can drive 35% of users to cancel.

The problem is not customer satisfaction. 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, payment failures account for up to 48% of all churn in subscription, e-commerce, and SaaS businesses, according to research by FlexPay.

That's nearly half of churn that was never about product fit or customer satisfaction.

This is the core of the involuntary churn problem: it's invisible until you explicitly measure it, and most teams never do.

The $1M-$5M ARR window is where this matters most. At this stage, billing failures are responsible for 20-40% of churn, but most companies at this stage have not yet invested in proper dunning infrastructure.

They rely on Stripe's default retry logic and a single automated email.

That is not a dunning system. It is a billing acknowledgement.

The 5-Component Involuntary Churn System

A proper involuntary churn system has five components. Most companies have one or two. Here is what the full system looks like.

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. The failure_code property is what allows you to route each failure to the right intervention.

Without failure code taxonomy, you are 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).

The insight: These are different problems requiring different messages. A taxonomy-first approach lets you build intervention logic that matches the actual failure type, not a generic "your payment failed" email.

2. Retry Logic

Stripe's default retry logic is four attempts over 14-28 days (configurable via Smart Retries). That is 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.

The insight: Do not retry expired card failures. Stop the loop, send the update request, and move on. Retrying a known-expired card wastes your retry budget and generates unnecessary decline flags.

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 have not enabled card updater, and it is 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.

Given that 15% of recurring payments are declined across Visa and Mastercard networks, card updater handles a meaningful portion of these automatically before they ever trigger your dunning sequence.

The insight: Card updater is not a nice-to-have. It is the passive recovery layer that makes your active dunning sequence more efficient by reducing the volume of failures that need human intervention.

4. Pre-Expiry Notifications

Card updater does not catch everything. Some cards expire without being reissued. Banks do not 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 is not dealing with a failed payment — they are being given a helpful heads-up. The response rate is substantially higher than post-failure dunning emails.

The insight: Pre-expiry notifications are prevention, not recovery. They cost nothing to send and eliminate the failure event entirely for a portion of your subscriber base.

5. Recovery Measurement

The fifth component is the one most companies skip: measuring whether the system is working. You need a payment_failed to payment_succeeded funnel with a defined recovery window (typically 30 days).

For every 100 failed payments, the typical SaaS company successfully recovers fewer than 48 — meaning 52+ represent pure revenue loss, customers who could have been retained with better recovery strategies.

Without this, you cannot distinguish between accounts that recovered because of your dunning sequence and accounts that would have recovered anyway. You cannot test sequence changes against a baseline. You cannot calculate your actual recovery rate.

The insight: Build this measurement step before you optimize anything else. Tracking payment failure events in your analytics tool gives you the funnel visibility to turn dunning optimization into a repeatable, measurable process rather than a one-time implementation.

Free Resource

Dunning Email Template Pack

Ready-to-use email sequences for expired card, card declined, and bank block failure types. Includes subject lines, body copy, and CTA variations for each step in the sequence. Built for Customer.io, Intercom, and Klaviyo.

The Data Behind Dunning Optimization

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.

47.6%

Recurly's 2023-24 benchmark establishes the median failed-payment recovery rate at 47.6% across subscription businesses. Enterprise SaaS reaches 52-58%. Most unoptimized systems are well below median.

Run that through your own numbers.

If you are at $2M ARR with 5% monthly churn, and billing failures account for 30% of that churn, you are losing roughly $30K/month to failed payments. Recovering half of those accounts with dunning optimization is worth $180K annually from a two-week implementation project.

The comparison to other interventions is not even close.

Segment ACV Range Recovery Rate Unrecovered Rate
Enterprise SaaS >$10K 52-58% 42-48%
Mid-market $1K-$10K 45-52% 48-55%
SMB SaaS <$1K 38-47% 53-62%
Consumer subscriptions N/A 35-42% 58-65%

Enterprise SaaS achieves the highest recovery rates, likely due to multiple payment methods on file, dedicated finance contacts, and higher motivation to maintain service continuity.

SMB SaaS has the widest variance — indicating significant room for optimization in this segment.

"Payment failures account for up to 48% of all churn in subscription, e-commerce, and SaaS businesses, according to research by FlexPay."

— Slicker, 2025 Failed Payment Recovery Benchmarks

AI-powered recovery shows 2-4x better results than traditional batch methods, making it worth evaluating intelligent retry tools alongside manual configuration.

Churn Diagnosis

Diagnose Your Churn Mix First

Building a dunning system without knowing your involuntary churn share is like running a CS intervention program without knowing which archetype is driving your churn. The Churn Diagnosis Playbook includes the Involuntary Churn Diagnostic — measure your billing failure rate and recovery gap in under 2 hours.

The Payment Failure Playbook by Error Type

Different failure codes require different responses. Here is the intervention logic for the three most common types.

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 do not know. Retry once after 3-4 days. If still declined after two attempts, escalate the message: the service is at risk of interruption, here is 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

This failure code means you know exactly what is 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 did not catch the card, this is the fallback. One reminder 3-4 days later if no action taken. Then final notice before cancellation.

Bank Block

Some banks — particularly outside the US — automatically block subscription charges from SaaS companies they do not 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 is 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.

FAQ

What is involuntary churn in SaaS?

Involuntary churn, also known as soft churn, occurs when customers unintentionally lose service due to payment failures rather than dissatisfaction with the product. It accounts for as much as 34% of the overall churn rate. Common causes include expired cards, insufficient funds, network glitches, and bank fraud flags. The customer has already decided to stay — the transaction just did not complete.

What percentage of SaaS churn is involuntary?

B2B SaaS averages 3.5% monthly churn, split between 2.6% voluntary and 0.8% involuntary — translating to roughly 35% annual churn. For companies with higher overall churn, involuntary can reach 40% of total. The exact share varies by billing geography, customer segment, and average contract value. 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 a good payment recovery rate?

Recurly's 2023-24 benchmark study establishes the median failed-payment recovery rate at 47.6% across subscription businesses. Enterprise SaaS achieves 52-58% recovery rates, Mid-market 45-52%, SMB SaaS 38-47%, and Consumer subscriptions 35-42%. A properly implemented dunning system should recover 40-60% of billing-failure churns.

How much can dunning optimization improve my NRR?

The ProductQuant Retention Strategy Builder benchmarks dunning optimization at +1-3% NRR improvement. The range depends on your current involuntary churn share, your baseline recovery rate, and your implementation completeness. A company at 5% monthly churn where billing failures represent 30% of churn, recovering 50% of those failures, would see approximately a 0.75% monthly churn rate reduction — compounding meaningfully over 12 months.

What is Stripe's default retry logic?

Stripe's default retry logic is four attempts over 14-28 days (configurable via Smart Retries). That is a starting point, not an optimized system. The key is calibrating retry timing to failure type: insufficient_funds failures should retry after payday windows, while expired_card failures should stop the retry loop immediately and trigger the payment method update request.

Sources

Jake McMahon

About the Author

Jake McMahon is the founder of ProductQuant, where he focuses on SaaS churn diagnosis and retention infrastructure for growth-stage companies. He holds a Master's in Behavioural Psychology and Big Data from the University of Queensland, and spent several years building analytics infrastructure at venture-backed SaaS companies before founding ProductQuant. He is Australian, based in Tbilisi, Georgia.

When not writing about churn, he is building the measurement frameworks that make retention work measurable rather than aspirational.

Next Step

Measure Your Involuntary Churn Share First

Building a dunning system without knowing your billing failure rate and recovery gap is like optimizing onboarding without knowing your activation rate. The Churn Diagnosis Playbook includes the Involuntary Churn Diagnostic — measure your current state in under 2 hours, then build the system.