Involuntary churn: the customers who never meant to leave
Last updated 1 November 2026
Some of your churned customers never decided to leave. Their card expired, or was reissued after a fraud alert, or hit a limit, and the renewal failed. Stripe retried a few times, the dunning emails went to an inbox nobody reads, and the subscription was cancelled. This is involuntary churn, and in most subscription businesses it is a meaningful share of the total. It is also the cheapest churn to prevent, because the customer is on your side.
Measure yours first
Take every customer whose last subscription ended in the past twelve months and sort them into three groups:
- Payment failure. Stripe’s
cancellation_details.reasonispayment_failed, or there is an unpaid invoice with failed attempts in the 45 days before the end. - Dispute. The reason is
payment_disputed, or there is a dispute in the 60 days before the end. - Chose to cancel. Everyone else.
Add up the monthly revenue in the first group. That is money nobody chose to lose. If you have never looked, the figure is usually a surprise.
Then look at the failed payments that didn’t end in churn: every invoice whose first attempt failed, and whether it was recovered on a retry (and after how many days), is still being retried, or was lost. Recovered out of recovered plus lost is your recovery rate. Churnahead’s Why they left page does this classification for you from a read-only Stripe connection.
What Stripe already does
Stripe does a lot here, and you should turn all of it on before adding anything:
- Smart Retries retry failed payments at the times most likely to succeed.
- Card account updater pulls new card numbers and expiry dates from participating issuers automatically, so many expiring cards are updated without the customer doing anything.
- Dunning emails to the customer about a failed payment, with a link to update the card, and the Customer Portal where they can do it.
- Subscription settings for what happens when retries run out: cancel, mark unpaid, or leave as is.
These recover a good share of failures. What they don’t do is tell you which customers are in trouble, let you reach out personally, or do anything about a card that is going to expire before the next renewal but hasn’t yet.
Catching the rest
The gap is the human one. A founder or an account manager who notices that a $400-a-month customer’s card failed yesterday, and sends one line from their own mailbox, recovers accounts the automated emails don’t. For that you need to know, in time, and in order of how much is at stake:
- Cards expiring before the next renewal. Visible weeks ahead from the payment method’s expiry date. A short note before the renewal fails beats a dunning sequence after it.
- Failed payments, as they happen. An
invoice.payment_failedwebhook, or a daily pass over open invoices with failed attempts and past-due subscriptions. - Disputes. Rare, urgent, and almost never recovered without a conversation.
Rank them by monthly revenue, put them in one place every morning, and record what you did so you can see a month later how much was saved.
What Churnahead does about it
Three of Churnahead’s built-in signals are about involuntary churn: payment failed (40 points), card expiring (30 if already expired, 20 if within 45 days, on a subscription that will renew) and refund or dispute (45 for a dispute, 25 for a refund). A failed payment on Stripe triggers an instant alert; expiring cards show up on the morning list weeks ahead. The Why they left page gives the split of past churn into card failures, disputes and real cancellations, the recovery rate on failed invoices, and the share of lost revenue nobody chose to lose. The Win back page lists the customers lost to card failures first, because they are the easiest to bring back, each with a draft message.
All of it from a read-only connection. Churnahead never retries a charge or emails your customers itself; it tells you, and leaves the conversation to you. See the signals and digest and alerts pages for the details.