Blog
Churn, dunning & retention — the playbook.
Practical guides on keeping subscription revenue you've already earned — failed- payment recovery, Stripe dunning, and cancel flows that save customers without dark patterns.
FTC click-to-cancel: what your cancel flow actually needs
The FTC's click-to-cancel rule means cancelling has to be as easy as signing up. Here's what that requires from your cancel flow — and how to still run a save flow without breaking it.
Jun 11, 2026 · 6 min read
Stripe dunning best practices for 2026
Stripe's built-in retries are a floor, not a strategy. A practical guide to decline-code-aware retries, a 4-touch dunning sequence, deliverability, and the numbers to watch.
Jun 10, 2026 · 8 min read
How to reduce involuntary churn in your SaaS
Involuntary churn — failed payments, not cancellations — is the quietest leak in subscription revenue. How to find it, fix it with smart retries and dunning, and measure recovery.
Jun 9, 2026 · 7 min read
Stripe past_due vs unpaid: what each subscription status actually means
past_due means Stripe is still retrying; unpaid means it stopped. What each status means, what controls the difference, and the right recovery move for each.
Jun 8, 2026 · 6 min read
Stripe decline codes explained: what each means and whether to retry
A practical reference to Stripe decline codes — soft vs hard, what each means, where to read it, and whether to retry, send a card-update email, or stop.
Jun 6, 2026 · 5 min read
Handling the invoice.payment_failed webhook without duplicate emails or dead links
Stripe's invoice.payment_failed fires on every retry. How to dedupe events, send a fresh hosted pay link, and stop cleanly when next_payment_attempt goes null.
Jun 4, 2026 · 6 min read
Dunning email templates for Stripe: a copy-paste sequence that recovers payments
A copy-paste 4-email dunning sequence for Stripe: subject lines, body copy, and decline-reason tailoring that recovers more failed payments.
Jun 3, 2026 · 5 min read
How to design a SaaS cancellation flow that actually saves customers
A 5-screen blueprint for a SaaS cancellation flow that saves customers without dark patterns: a reason survey, reason-matched offers, a one-tap exit, win-back.
Jun 2, 2026 · 6 min read
Stripe billing portal limitations: when you need an alternative
Stripe's native customer portal is great for the basics — until you want to retain the customer who clicks cancel. The walls it hits, and when you've outgrown it.
Jun 1, 2026 · 5 min read