Dunning Playbook

dunning-playbook.md

Markdown 13.3 KB 414 lines 31 sections

Dunning Playbook

Complete guide to recovering failed payments and reducing involuntary churn.


Why Dunning Matters

  • Failed payments cause 30-50% of all subscription churn
  • Most failed payments are recoverable with the right strategy
  • Subscription businesses lose an estimated $129 billion annually to involuntary churn
  • Effective dunning recovers 50-60% of failed payments

The Dunning Timeline

B0


Pre-Dunning: Prevent Failures Before They Happen

Card Expiry Management

TimingAction
30 days before expiryEmail: "Your card ending in 4242 expires next month"
15 days before expiryEmail: "Update your payment method to avoid interruption"
7 days before expiryEmail: "Your card expires in 7 days — update now"
3 days before expiryIn-app banner: "Payment method expiring soon"

Email template — Card expiring:

B1

Card Updater Services

Major card networks offer automatic card update programs:

ServiceNetworkWhat It Does
Visa Account Updater (VAU)VisaAuto-updates stored card numbers and expiry dates
Mastercard Automatic Billing Updater (ABU)MastercardSame for Mastercard
Amex CardrefresherAmerican ExpressSame for Amex

Impact: Reduces hard declines from expired/replaced cards by 30-50%.

How to enable:

  • Stripe: Automatic — enabled by default
  • Chargebee: Enabled through gateway settings
  • Recurly: Built-in, enabled by default
  • Braintree: Contact processor to enable

Backup Payment Methods

Prompt for a second payment method:

  • During signup: "Add a backup payment method" (low conversion)
  • After first successful payment: "Protect your account with a backup card" (better timing)
  • After a failed payment is recovered: "Add a backup to prevent future interruptions" (best timing — they felt the pain)

Pre-Billing Notifications

For annual plans or high-value subscriptions:

  • Email 7 days before renewal with amount and date
  • Include link to update payment method
  • Show what's included in the renewal
  • Required by some regulations for auto-renewals

Smart Retry Strategy

Decline Type Classification

CodeTypeMeaningRetry?
I0SoftTemporarily low balanceYes — retry in 2-3 days
I1 (generic)SoftVarious temporary reasonsYes — retry 3-4 times
I2SoftGateway/network issueYes — retry within 24h
I3HardCard is expiredNo — request new card
I4HardCard reported stolenNo — request new card
I5Soft/HardBank refused (ambiguous)Try once more, then ask for new card
I6AuthSCA/3DS neededSend customer to authenticate

Retry Schedule by Provider

Stripe (Smart Retries — recommended):

  • Enable "Smart Retries" in Stripe Dashboard → Billing → Settings
  • Stripe's ML model picks optimal retry timing based on billions of transactions
  • Typically 4-8 retry attempts over 3-4 weeks
  • Recovers ~15% more than fixed-schedule retries

Manual retry schedule (if no smart retries):

RetryTimingBest Day/Time
1Day 1 (24h after failure)Morning, same day of week as original
2Day 3Try a different time of day
3Day 5After typical payday (1st, 15th)
4Day 7Morning of the next business day
5 (final)Day 10Last attempt before grace period ends

Retry timing insights:

  • Retry on the same day of month the original payment succeeded
  • Retry after common paydays (1st and 15th of the month)
  • Avoid retrying on weekends (lower approval rates)
  • Morning retries (8-10am local time) perform slightly better

Dunning Email Sequence

Email 1: Payment Failed (Day 0)

Tone: Friendly, matter-of-fact. No alarm.

B2

Email 2: Reminder (Day 3)

Tone: Helpful, slightly more urgent.

B3

Email 3: Urgency (Day 7)

Tone: Direct, clear consequences.

B4

Email 4: Final Warning (Day 10)

Tone: Final, clear, no guilt.

B5


Grace Period Management

What Happens During Grace Period

SettingRecommendation
Duration7-14 days after final retry
AccessDegraded (read-only) or full access
VisibilityIn-app banner: "Payment past due — update to continue"
RetryContinue background retries during grace
CommunicationDunning emails continue

Access Degradation Options

Option A: Full access during grace (recommended for B2B)

  • Lower friction, customer feels respected
  • Higher recovery rate (they still see value)
  • Risk: some customers exploit the grace period

Option B: Read-only access (recommended for B2C)

  • Can view but not create/edit
  • Creates urgency without data loss fear
  • Clear message: "Update payment to resume full access"

Option C: Immediate lockout (not recommended)

  • Aggressive, damages relationship
  • Lower recovery rate
  • Only appropriate for very low-cost plans

Post-Grace Period

TimingAction
Grace period endsPause account (not delete)
Day 1 post-pause"Your account has been paused" email
Day 7 post-pause"Your data is still here" reminder
Day 30 post-pauseWin-back attempt with new offer
Day 60 post-pauseFinal win-back
Day 90 post-pauseData deletion warning (if applicable)

Provider-Specific Setup

Stripe

Enable Smart Retries:

  1. Dashboard → Settings → Billing → Subscriptions and emails
  2. Enable "Smart Retries" under retry rules
  3. Set failed payment emails in Dashboard → Settings → Emails

Custom retry rules (if not using Smart Retries):

B6

Webhook events to handle:

  • invoice.payment_failed — trigger dunning
  • invoice.paid — cancel dunning, restore access
  • customer.subscription.updated — status changes
  • customer.subscription.deleted — final cancellation

Chargebee

Built-in dunning:

  1. Settings → Configure Chargebee → Retry Settings
  2. Configure retry attempts and intervals
  3. Settings → Configure Chargebee → Email Notifications → Dunning

Dunning options:

  • Automatic retries with configurable schedule
  • Built-in dunning emails (customizable templates)
  • Grace period configuration per plan

Paddle

Managed dunning:

  • Paddle handles retries and dunning automatically
  • Limited customization (Paddle manages the relationship)
  • Paddle Billing webhooks (dot-separated event_type names):
  • transaction.payment_failed reports a failed payment attempt. Use its subscription_id to associate a subscription renewal; a failed one-off transaction is not subscription churn.
  • subscription.past_due reports that the subscription is past due.
  • subscription.canceled reports an effective cancellation. A cancellation scheduled for the next billing period emits subscription.updated first; retain access according to the current subscription state until that change takes effect.
  • Configure notification subscriptions for these exact names. subscription.payment_failed and subscription.cancelled are not Paddle Billing event types; do not mix Billing webhooks with the separate Paddle Classic alert names.
  • Verify the payment-failure and cancellation contracts before wiring account state changes.
  • Best for hands-off approach

Recurly

Revenue Recovery:

  1. Configuration → Dunning Management
  2. Set retry schedule per plan
  3. Configure grace period and final action (pause vs cancel)

Advanced features:

  • Machine-learning retry optimization
  • Per-plan dunning schedules
  • Built-in Account Updater

In-App Dunning

Don't rely on email alone. Show payment failures in the app:

B7

Rules:

  • Show on every page load during dunning period
  • Allow dismiss (but show again next session)
  • Direct link to payment update (fewest clicks possible)
  • Don't block the product — let them continue using it

B8


Measuring Dunning Performance

Key Metrics

MetricHow to CalculateTarget
Recovery rateRecovered payments / Total failed50-60%
Recovery rate by decline typeRecovered / Failed per typeSoft: 70%+, Hard: 40%+
Time to recoveryDays from failure to successful payment<5 days
Pre-dunning prevention ratePrevented failures / Expected failures20-30%
Dunning email open rateOpens / Sent per email60%+
Dunning email click rateClicks / Opens per email30%+
Revenue recovered (monthly)Sum of recovered payment amountsTrack trend
Revenue lost to involuntary churnSum of failed + unrecovered amountsTrack trend

Benchmarking

By company stage:

StageTypical Involuntary ChurnTarget After Optimization
Early (< $1M ARR)3-5% of MRR/month1-2%
Growth ($1-10M ARR)2-4% of MRR/month0.5-1.5%
Scale ($10M+ ARR)1-3% of MRR/month0.3-0.8%

ROI Calculation

B9

Other references

From the same skill.

View all 2 →

Related skills

More from the same category.

View all