Every credit card has an expiration date stamped on it. And every month, a slice of your customer base is holding a card that's about to stop working.
The average credit card expires after 3-4 years. That means roughly 25-30% of the cards in your billing system will expire in any given year. For a SaaS company with 1,000 customers, that's 250-300 payment failures waiting to happen. Not because those customers want to leave. Just because a piece of plastic hit its shelf life.
Expired cards are the single most common cause of involuntary churn. They're also the most preventable.
The Scale of the Problem
Here's what the data actually looks like.
Credit card expiration isn't evenly distributed. Banks tend to issue cards with expiration dates clustered around certain months, and customer acquisition patterns create uneven distributions in your own system. But on average, you can expect 2-3% of your active cards to expire in any given month.
| Metric | Typical Range |
|---|---|
| Cards expiring per year | 25-30% of total |
| Cards expiring per month | 2-3% of total |
| Payment failure rate on expired cards | 85-95% |
| Recovery rate without intervention | 15-25% |
| Recovery rate with dunning sequence | 60-75% |
| Recovery rate with pre-dunning | 80-90% |
That last row is the one worth staring at. If you reach out to customers before their card expires, recovery rates jump to 80-90%. Compare that to the 60-75% you get with a standard dunning sequence after the failure happens. Pre-dunning is roughly 20% more effective than post-failure recovery.
A quick calculation:
Customers: 2,000
Cards expiring this year: ~550
Average monthly revenue per customer: $75
Revenue at risk from expired cards: $41,250/year
Without any intervention: Recover 20% = $8,250
With post-failure dunning: Recover 67% = $27,638
With pre-dunning: Recover 85% = $35,063
Difference between dunning and pre-dunning: $7,425/year
That $7,425 gap represents pure upside from doing one thing: reaching out before the payment fails.
Why Card Updater Services Don't Solve Everything
If you use Stripe, you might be thinking: "Doesn't Stripe's automatic card updater handle this?"
It helps. But it doesn't solve the problem.
How Card Updaters Work
Visa Account Updater (VAU), Mastercard Automatic Billing Updater (ABU), and similar services from other networks allow merchants to request updated card information when a card is replaced. If a customer's bank issues a new card (new number, new expiry), the network can automatically push those details to your payment processor.
Stripe participates in these programs. When your customer's card is replaced, Stripe may receive the updated details automatically and update the payment method on file.
The Gaps in Card Updaters
The problem is that card updaters don't catch everything. Here's why:
Coverage isn't 100%. Not all banks participate in updater programs. Smaller banks, credit unions, and banks outside the US have lower participation rates. Visa's updater covers roughly 80% of US-issued Visa cards, but that still leaves 20% uncovered. For Mastercard, coverage is similar. For Amex and Discover, it's lower.
Timing is imprecise. Card updaters run in batch processes, typically on a weekly or monthly cycle. If a card expires on March 1 and the updater batch runs on March 5, you've already had a failed payment on March 1.
Not all replacements trigger updates. If a customer's card is replaced because it was compromised (fraud), the updater may not provide the new details due to security protocols. If the customer switches banks entirely, the updater won't help at all.
Prepaid and debit cards are often excluded. Many prepaid and debit cards don't participate in updater programs.
Here are realistic coverage numbers:
| Card Type | Updater Coverage |
|---|---|
| US-issued Visa credit | ~80% |
| US-issued Mastercard credit | ~75% |
| US-issued Amex | ~60-65% |
| US-issued debit cards | ~50-60% |
| International cards | ~30-50% |
| Prepaid cards | ~10-20% |
So even with card updaters running, 20-40% of expired cards in your system will not be automatically updated. Those failures are coming. The only question is whether you'll be ready.
Building a Pre-Dunning Strategy
Pre-dunning means reaching out to customers before their payment fails. You know the expiration date of every card on file (Stripe stores this). You can see the failures coming weeks or months in advance.
Step 1: Identify Expiring Cards
Query your Stripe customer data monthly for cards expiring in the next 30-60 days. Stripe's API makes this straightforward. You can filter payment methods by exp_month and exp_year.
A monthly report might look like:
Cards expiring in February 2026: 47
Cards expiring in March 2026: 52
Cards expiring in April 2026: 39
Step 2: Send a Friendly Update Request
30 days before expiration, send a simple email:
Subject: Your card on file expires soon
Hi [Name],
The Visa ending in 4242 that we have on file for your [Product]
subscription expires next month.
To avoid any interruption, you can update your card here:
[Update Payment Method]
Takes 30 seconds. Your subscription will continue without a hitch.
Thanks,
[Product] Team
This email has an 80-90% success rate because:
- There's no urgency or alarm. It's informational.
- The customer hasn't experienced any disruption.
- The action is simple and low-stakes.
- They likely already have their new card (banks send replacements 2-4 weeks before expiry).
Step 3: Follow Up If Needed
If the card hasn't been updated 14 days before expiration:
Subject: Reminder: your card expires in 2 weeks
Hi [Name],
Quick reminder that the Visa ending in 4242 on your [Product]
account expires on March 31.
If your bank sent you a replacement card, just update the
details here and you're all set: [Update Payment Method]
This way, your $79/mo subscription continues uninterrupted.
Thanks,
[Product] Team
Step 4: Final Reminder
7 days before expiration:
Subject: Your card expires in 7 days
Hi [Name],
Your card on file for [Product] expires on March 31. After that,
we won't be able to process your next payment.
Update your card now to avoid any interruption:
[Update Payment Method]
If you've already updated through your bank and the details
haven't changed, no action needed.
[Product] Team
The Pre-Dunning Timeline
| Timing | Action | Expected Update Rate |
|---|---|---|
| 30 days before | First email | 40-50% update |
| 14 days before | Reminder email | 20-25% of remaining |
| 7 days before | Final email + SMS | 15-20% of remaining |
| Payment day | Card updater catches some | 10-15% of remaining |
| After failure | Standard dunning sequence | 60-70% of remaining |
With this layered approach, the vast majority of expired card situations are resolved before the customer ever experiences a failed payment.
The Gap Between Expiry and Payment
There's a timing nuance that matters. Card expiration doesn't always align with billing dates.
If a customer's card expires on March 31 and their billing date is April 15, you have two weeks of buffer after expiry. The card updater has extra time to work. Your pre-dunning emails have an extended runway.
But if the card expires on March 31 and billing is on April 1, you have essentially no buffer. The payment will fail the next day.
This means your pre-dunning timing should factor in the customer's billing date, not just the card expiry date. A card expiring 3 days before a billing cycle needs more aggressive pre-dunning than one expiring 3 weeks before.
Expired Cards vs. Other Failure Types
To put expired cards in context, here's how they compare to other payment failure causes:
| Failure Type | % of All Failures | Avg Recovery Rate | Preventable with Pre-Dunning? |
|---|---|---|---|
| Expired card | 15-20% | 65-75% | Yes (80-90%) |
| Insufficient funds | 35-40% | 50-60% | No |
| Generic decline | 20-25% | 40-50% | No |
| Authentication required | 5-10% | 50-65% | No |
| Processing error | 5-8% | 70-80% | No |
| Fraud flag | 2-4% | 0-50% | No |
Expired cards are unique because they're the only major failure type you can reliably predict and prevent. You know the expiry date. You know the billing date. You can do the math.
Every other failure type is reactive by nature. You find out about it after it happens. With expired cards, you have a 30-60 day advance warning. Not using that window is like seeing a pothole in the road and driving into it anyway.
What About Asking for Backup Payment Methods?
Some companies ask customers to add a secondary payment method as a fallback. This can help, but adoption is low. Only 5-10% of customers will proactively add a backup card.
A more effective approach is to offer backup payment methods at the point of failure: "Your primary card didn't go through. Add a backup card so this doesn't happen again." Customers who just experienced a disruption are more motivated to add redundancy.
You can also offer alternative payment methods entirely. ACH/bank transfers have a failure rate of 0.5-1%, compared to 5-10% for credit cards. For customers who've experienced multiple card failures, suggesting a switch to ACH can permanently solve the problem.
Key Takeaways
- 25-30% of cards expire every year. This is a predictable, ongoing source of churn that never goes away.
- Card updaters help but have gaps. Expect 20-40% of expired cards to slip through automated updates.
- Pre-dunning is 20% more effective than post-failure dunning. Reaching out before the failure happens recovers 80-90% vs. 60-75%.
- The expiry date is a gift. You know exactly which customers are at risk and when. Use that information.
- Timing matters. Align your pre-dunning schedule with billing dates, not just expiry dates.
- Three emails over 30 days catches the vast majority. Start early, escalate gently, and include a payment update link every time.
Rekko monitors your Stripe payment methods and flags expiring cards before they cause failures. Automated pre-dunning emails go out on schedule, with pre-authenticated payment links that make updating painless. When a card does expire and a payment fails, Rekko's dunning sequence picks up where pre-dunning left off.
Start your free trial and stop losing customers to something as predictable as an expiration date.