I've been studying involuntary churn -- the revenue SaaS companies lose when payments fail through no fault of the customer. After analyzing the patterns, there are exactly 5 failure modes, and each has a specific fix.
1. Expired Credit Cards
The problem: Cards expire. Customers forget to update them. The next charge fails.
The fix: Pre-dunning emails. Email customers 30 and 7 days before their card expires with a direct link to update their payment method. This is the easiest win because you can prevent the failure entirely.
Impact: Prevents 15-25% of all failed payments.
2. Insufficient Funds
The problem: Customer's account is temporarily low. The charge gets declined.
The fix: Smart retries (Stripe already does this with ML-optimized timing) + a polite email letting the customer know. Most people just need a nudge to move money around.
Impact: 40-60% recovery rate with retry + email.
3. Bank Declines (Fraud Flags)
The problem: The bank's fraud system flags a legitimate recurring charge as suspicious.
The fix: Email the customer immediately. They call their bank, approve the charge, done. The key is speed -- the faster you notify them, the more likely they'll act. Day-of email is critical.
Impact: 50-70% recovery when customer is notified within 24 hours.
4. Network / Processing Errors
The problem: Temporary network issues between Stripe, the card network, and the issuing bank.
The fix: Automatic retries. Stripe Smart Retries handle this well. Usually resolves on the second or third attempt without any customer action.
Impact: 80-90% auto-recovery via retries.
5. Outdated Billing Information
The problem: Customer changed banks, got a new card number, moved addresses.
The fix: Card account updater (Stripe has this) + dunning emails with a payment update link. The updater catches most changes automatically, but some require manual update.
Impact: Varies. Updater catches 60-70%, dunning emails catch another 20-30%.
The Stack That Handles All 5
Here's the optimal setup:
- Stripe Smart Retries (free, built-in) -- handles retry timing
- Card Account Updater (Stripe, small fee per update) -- catches bank/card changes
- Dunning email tool -- handles everything Stripe doesn't: pre-expiry alerts, failure notifications, follow-up sequences, win-back emails
Stripe covers layers 1 and 2. You need something for layer 3.
The enterprise options (Churn Buster at $249/mo, Gravy at 10-20% of recovered revenue) work but are priced for companies doing $500K+ MRR.
I built Rebill specifically for the $5K-$100K MRR range at $19/mo. It handles pre-expiry alerts, failed payment sequences, and win-back emails. Connect Stripe in 30 seconds.
There's also a free calculator if you want to see how much failed payments are costing you before committing to anything.
Key Takeaways
- Involuntary churn is 20-40% of total churn for most SaaS companies
- The fix is not complex -- it's just automated emails at the right time
- Stripe handles retries, not communication -- you need a dunning layer on top
- Speed matters -- emailing a customer on day 0 vs day 3 changes recovery rate significantly
- Pre-dunning (expiry alerts) is the highest-leverage move -- prevent failures before they happen
If you're running a SaaS and haven't measured your involuntary churn rate, start there. `SELECT COUNT() FROM invoices WHERE status = 'uncollectible'` in your Stripe data might surprise you.*
Top comments (0)