Onboarding 7 min read

Churn Recovery: The Dunning + Win-Back Playbook That Gets Customers Back Without Discounting

Stripe's default dunning recovers 38% of failed charges. Dedicated dunning recovers 60 to 80%. That gap is recoverable revenue sitting on the table.

Who this is for: Founders and operators of subscription-based SaaS or AI products who are losing revenue to failed payments and cancellations without a systematic recovery process.

The problem

Churn has two flavors, and most businesses only fight one of them.

Voluntary churn (customers who actively cancel) gets all the attention. But involuntary churn, revenue lost to failed credit card charges, gets treated as a billing problem and handed to Stripe. That's a costly mistake. Stripe's default dunning (the automatic retry logic built into every account) recovers about 38% of failed charges. Dedicated dunning tools recover 60 to 80% of the same failed charges. That gap, 22 to 42 percentage points of recoverable revenue, is sitting on the table for every subscription business relying on default settings.

The second problem is what happens after a customer cancels. Most businesses send one "sorry to see you go" email and move on. Win-back campaigns (sequences sent 30 to 90 days after a cancellation) reactivate 12 to 18% of churned customers at 5 to 7x lower cost than acquiring a replacement customer from scratch. The economics are compelling: the churned customer already knows your product, already had a reason to try it, and can be reached without paying for new acquisition.

This playbook covers both levers.

The Dunning + Win-Back Framework

Part 1: Dunning. Recovering Failed Payments Before They Become Cancellations

Failed payments are not the same as cancellations. A customer whose card expires or hits a temporary limit hasn't decided to leave. But if you don't recover the charge quickly, they will.

Step 1: Audit your current dunning setup.

If you're on Stripe's default settings, you're running the out-of-the-box retry logic with a 38% recovery rate. Check your Stripe settings under Billing, Subscriptions, Smart Retries. "Smart retries" sounds like enough. It isn't. It retries on a schedule optimized for aggregate recovery, not for your customer segment.

Step 2: Layer in a pre-dunning flow.

Pre-dunning is proactive: before a charge fails, reach out to customers whose payment methods are expiring in the next 30 to 60 days. A simple "your card on file expires soon, update it here" email, sent 30 days before expiry, prevents the failure entirely. This is lower-friction than any recovery campaign.

Step 3: Deploy dedicated dunning software or a custom sequence.

Purpose-built dunning tools run retry logic at higher-conversion intervals, split-test email copy, and handle the "charge failed but customer didn't cancel" state cleanly. They bring recovery rates to 60 to 80%. If you can't justify a dedicated tool today, a three-email manual sequence (Day 1: polite notice, Day 4: direct request, Day 8: final notice before pause) will still outperform doing nothing.

Copy this prompt
Write a 3-email dunning sequence for a [product type] subscription product. Email 1 (Day 1): friendly benefit-of-the-doubt tone, something went wrong on our end. Email 2 (Day 4): more direct, access will pause in X days. Email 3 (Day 8): clear, calm statement of outcome with a link to update payment. Each email under 80 words. Include subject lines.

When to use: When setting up or improving your failed-payment recovery flow. Replace [product type] with your specifics. The output gives you a ready-to-use dunning sequence.

Step 4: Match the message to the charge status.

Part 2: Win-Back. Reactivating Churned Customers

A customer who canceled 45 days ago is not the same as a net-new stranger. They know your product, they experienced some value (even if not enough to stay), and the reason they left is often fixable.

Step 1: Segment churned customers by exit reason.

This requires a pre-cancellation survey. If you don't have one, add it immediately. Four multiple-choice options plus an optional text field, shown before the cancellation is processed:

Each segment gets a different win-back message. A customer who left because of price gets a different offer than a customer who left because of a missing feature you've since shipped.

Step 2: Launch the win-back sequence at day 30 to 45.

Don't reach out the week they canceled. That reads as desperate and won't land. Wait 30 to 45 days. This is enough time for the friction of switching to have surfaced, but not so long that they've fully committed to an alternative.

The sequence has three messages:

  1. Day 30 to 45: Re-introduction. What's changed since they left (new feature, improvement, case study). No offer yet.
  2. Day 50 to 55: Direct offer matched to their stated exit reason. If they left for price, offer a discount or downgrade path. If they left for a missing feature, show them it's been shipped.
  3. Day 60 to 70: Final message. "Last time we'll ask" framing. Sometimes the cleanest message performs best here.
Copy this prompt
I run a [product type] subscription product. A customer canceled because [exit reason from survey]. Write a 3-email win-back sequence: Email 1 at day 30 (what's changed, no offer), Email 2 at day 50 (direct offer matched to their exit reason), Email 3 at day 65 (final ask, clean and brief). Each email under 100 words. Include subject lines.

When to use: When building win-back campaigns segmented by exit reason. Run this prompt once per exit-reason segment for tailored messaging.

Step 3: Measure reactivation rate by segment.

A 12 to 18% reactivation rate is the aggregate benchmark. High-fit customers who left for fixable reasons (price, feature gap) will outperform that. Customers who left because the product genuinely wasn't right for them will underperform. Knowing which is which helps you triage future churn earlier.

How to apply it

  1. This week: Check your Stripe dunning settings. If you're on defaults, identify the gap between your current recovery rate and 60 to 80%. That number is the revenue case for a better setup.
  2. This week: Add a pre-cancellation survey if you don't have one. Four radio buttons plus an optional text field, shown before any cancellation is processed.
  3. This month: Add a pre-dunning email to customers with cards expiring in the next 30 to 60 days.
  4. This month: Build a three-email dunning sequence for failed charges (Day 1, Day 4, Day 8).
  5. This month: Segment your last 90 days of churned customers by exit reason. Build a win-back sequence for your largest segment first.
  6. This quarter: Measure reactivation rate by exit-reason segment. Use that data to identify which exit reasons are most recoverable, and address those root causes in the product.
Copy this prompt
I have [number] customers who churned in the last 90 days. Here are their exit reasons from our cancellation survey: [paste summary or list]. Group them by exit reason, rank each group by size, and for the top 3 segments, suggest: (1) what product or messaging change would address the root cause, and (2) the win-back offer most likely to land for that segment.

When to use: When analyzing your churn data to prioritize which segments to build win-back campaigns for first. The output gives you a prioritized action plan.

The one decision

Dunning and win-back both force the same judgment: how much friction do you introduce in the recovery process? Aggressive dunning copy and heavy-handed win-back discounting can damage the relationship with customers who are only temporarily lapsed. The data supports a low-pressure, benefit-of-the-doubt tone in dunning and a value-first (not discount-first) approach in win-back. Discounts should be the last message in the win-back sequence, not the first.

Share on LinkedIn Share on X

Get the companion toolkit

Copy-paste email templates, worksheets, and sequences that go with this guide. Yours free.

Win-back email templates
Churn analysis worksheet
Re-engagement sequence
Work with Brady

Want this done for your business?

I build AI automations for small businesses every week. If you'd rather have someone set this up than DIY it, let's talk.

Join a free workshop

or see the Build Sprint ($497)