Failed payment & involuntary churn
Stop losing subscribers to declined cards.
Your subscription platform retries on a schedule. We replace it with a decision made per charge — the decline code, the issuer, the age of the card and what that subscriber’s last few payments did — so the customers who never meant to leave, don’t.
-
9%
of recurring revenue lost to failed payments, on average
-
20–40%
of all subscription churn is involuntary — cards, not customers
Sources: Baremetrics; Paddle / ProfitWell
The problem
A subscriber’s card declines on the third of the month. Nobody tells them. Your subscription platform retries on whatever schedule it shipped with, the retries fail for exactly the same reason the first charge did, and after the last attempt the subscription cancels itself. Two weeks later the customer notices the box never arrived — and by then they have bought something else.
That is not churn. It is a billing failure wearing churn’s clothing, and it is why involuntary churn commonly accounts for between 20% and 40% of everything a subscription business loses. The revenue is already yours. These are people who chose the product, are still using it, and never decided to leave.
None of this is a marketing problem. A declined card is a systems problem with a marketing symptom, and it gets solved in the retry logic — not in the subject line.
Nobody has ever audited the retry ladder
Every subscription platform ships with a default retry schedule and almost every brand is still running it, untouched since the day the app was installed. A flat schedule treats every failure identically: the card that hit its limit on the 1st, the card that expired in March, the card the bank flagged over an address mismatch. Retrying the expired card four times and the limit-hit card once has the logic exactly backwards, and no amount of copywriting corrects it.
A flat schedule is a single decision, made once, in advance, on behalf of every subscriber you will ever bill. What a failed charge actually needs is a decision made about that charge — and everything required to make it is already attached to the failure.
Decline codes are collected and never read
The processor tells you why each charge failed. An insufficient funds decline is a timing problem — retry it later, on a day people are more likely to have been paid. An expired card decline is a data problem, and no number of retries will solve it, because the customer has to hand you a new number. A do not honor is a bank-side response that frequently clears on its own. Treating all three as one bucket marked “failed” is how a brand ends up with retry activity that looks busy and recovers very little.
Read that list again and it stops being a copy problem and starts being a prediction problem. The code is there on every failure, with the issuing bank, the age of the stored card and that subscriber’s own payment history sitting next to it. Behind them is a year of failed charges where the outcome is already known — which retries eventually cleared, on which day, after how many attempts. That is a labelled dataset, and the thing worth predicting from it is not whether to retry but when: which hour of which day this particular card, at this particular bank, for this reason, is most likely to clear.
The dunning email reads like a collections notice
The messages that do go out — usually one, usually email only — are written in the register of an overdue invoice. “Your payment failed. Update your details to avoid interruption.” But the customer never chose to stop paying and is not a debtor; they are a subscriber whose bank declined a charge they never saw. They will act on a message that reads like a useful heads-up from a brand they like, and delete one that reads like a threat. Which of those messages a subscriber gets, and on which day, is a second decision the platform makes for you by default: one template, one delay, one tone, for a bank hold and a dead card alike.
And then the mechanical layer nobody owns
No card-expiry warning before the charge that was always going to fail. No account updater, so a reissued card is treated as a lost customer. A payment-update page that wants a desktop, a login and three screens, when the email was opened on a phone. And no reporting, so nobody inside the business can say what any of it costs — which is why it stays unfixed.
What the system decides, and what it does not
It decides timing and targeting: when a charge is retried, how many attempts it is worth, who gets a warning before the failure, and which of the messages you approved goes out next. Everything with money on the other side of it stays with a person — refunds, credits, discounts to save a subscriber, a price change, a cancellation. It never writes the messages either; we do, in your voice, and you sign them off before anything can send. Billing is the one place where an automated mistake repeats every month instead of ending, so the boundary is drawn deliberately rather than where the technology happens to run out.
What we build
Seven pieces. Built in your accounts, documented, and yours if we ever part ways.
- Retry timing, decided per charge Rebuilt inside Recharge, Skio or Smartrr as a decision the system makes for each failed charge rather than a schedule every failure shares. It reads the decline code, the issuing bank, how old the stored card is and how that subscriber’s previous charges behaved, then sets the retry window, the attempt count — and whether to retry at all.
- Pre-dunning Card-expiry warnings that go out before the charge fails. Next cycle’s charges are scored ahead of time — expiry date, card age, what the last few charges on that card did — so the warning reaches the subscribers whose payment is already doomed and nobody else.
- Dunning sequence Four to six touches across email and SMS, written to be helpful rather than threatening. Which touch a subscriber gets, and when, follows from the decline reason and what they did with the last one — not from one calendar the whole list runs on. We write the copy and you approve it; the system chooses the recipient and the hour, never the words.
- Account updater Integrated so reissued and renumbered cards are caught silently — the customer never finds out their card changed, because nothing broke.
- Payment update page Self-serve, and it works on a phone in one tap. No login wall, no desktop-only form, no support ticket.
- Recovery dashboard So you can see the number every week without asking anybody to pull it — and see which retry decisions the system got right and which it got wrong, because a decision you cannot inspect is a decision you cannot argue with.
- Decline-reason reporting Soft versus hard, by processor, by cohort. It is the reporting layer that tells you which failures are worth chasing and which are a data problem — and it is the labelled history the retry decision is fitted against in the first place.
How the build runs
Four weeks from access to launch, on a fixed scope and a fixed price. You know the number before we start, and nothing decides anything on a live subscriber until it has been replayed against a year of your own failed charges.
-
01
Audit & baseline
Every failed charge from the last twelve months pulled and classified by decline reason, processor and cohort. That classified history is two things at once: your baseline in dollars, and the labelled data the retry decision gets fitted against — twelve months of failures where you already know which retries eventually cleared. You get the recoverable figure before anything gets built.
Week 1
-
02
Retry architecture
The decision written down in plain language before it is automated: which decline codes may be retried, how far the timing may move, how many attempts may be spent on one charge, and which codes skip the retries entirely and go straight to a human message. An expired card is in that last group, because no amount of retrying has ever produced a new card number.
Week 1–2
-
03
Build & copy
Retry scoring, pre-dunning, the dunning sequence, the account updater and the payment-update page. Copy written in your voice and inside your claims constraints — and approved by a person before the system is allowed to send any of it.
Week 2–4
-
04
QA & launch
Every branch tested with real declined test cards before one live subscriber sees it, and the retry logic replayed against last year’s failures so you can read what it would have done differently, charge by charge. Nothing goes live untested — a broken dunning flow costs more than no dunning flow.
Week 4
-
05
Measure & iterate
Weekly recovery rate by decline reason and by cohort, read against the baseline from week one. Each cycle’s outcomes go back into the classified history the timing is set from. Where a decline code turns out to want a fixed rule rather than a scored decision, it gets one — the number has to move either way.
Ongoing
The benchmarks, with sources
Two figures do most of the work on this page. Both are category benchmarks with named sources, and both are worth checking against your own data before you believe them — the failed-payment calculator does that in about a minute, and the benchmark pages carry the rest.
| Metric | Benchmark | Source |
|---|---|---|
| Recurring revenue lost to failed payments | ~9% | Baremetrics |
| Involuntary share of total churn | 20–40% | Paddle / ProfitWell |
| Recovery rate after a rebuilt retry ladder | — | Pointerflow client data — to publish |
The first two rows are category benchmarks, not a forecast for your account — replacing them with your own numbers is the whole point of the audit. The third row stays an em dash until we have enough client data behind it to publish something honest.
What it costs
Published ranges, because hidden pricing costs more leads than it protects. Where you land inside a range depends on how many subscription platforms and messaging tools are in play, not on how much we think you can pay.
Revenue Recovery Audit — payment recovery only
$1,500–$3,000
Full recovery system build
$5,000–$10,000
Ongoing optimization
from $3,000/mo
Performance option — a share of recovered revenue, for brands who prefer it
By arrangement
The audit is credited in full against any build you go ahead with. If we cannot identify recoverable revenue worth more than the audit fee, we refund it.
Related reading
Questions
How much of our churn is actually involuntary?
Usually more than people expect. Across subscription businesses, involuntary churn accounts for somewhere between 20% and 40% of total churn (Paddle / ProfitWell). The audit splits your own cancellations into voluntary and involuntary so you are working from your number rather than the category benchmark.
Will this work with Recharge? What about Skio, Smartrr or Stay AI?
Yes. We build inside whatever subscription platform you already run — Recharge, Skio, Smartrr and Stay AI are all common in this category. The retry architecture is the same idea in each one; what changes is where the switches live and what has to be built around the platform’s limits.
Do we have to change payment processors?
Almost never. Nearly everything we change sits above the processor — retry timing, decline-code routing, the dunning sequence and the card-update path. If something at the processor level is genuinely costing you money, we say so in the audit and show the working.
Isn’t retry logic just a setting we can switch on?
There is a setting, and it is almost certainly already on. It is a flat schedule that retries every failure the same number of times on the same days regardless of why the charge failed. The work is turning one schedule into a decision made per charge — the decline code, the issuer, the age of the stored card and that subscriber’s own payment history deciding the window and the attempt count — and pairing it with messaging matched to the reason and a card-update path people actually complete on a phone.
Where is the system not allowed to decide?
Anywhere money moves. It sets timing and targeting — when to retry, how many attempts, who is warned before a failure, which approved message goes next. It does not issue refunds or credits, does not apply a discount to save a subscriber, does not change a price or a plan, and does not cancel anything. It also does not write the emails: we write them, you approve them, and the system only chooses who receives which. On billing, an automated mistake repeats every month rather than ending, so autonomy is granted narrowly and on purpose.
How accurate is the retry model?
We do not publish a number, and we will not until there are enough builds behind one to publish something honest — metric to confirm. What we can show you before you commit is the replay: last year’s failed charges run back through the new logic, so you can see what it would have retried, when, and where it disagrees with the schedule you are running today. That is a comparison on your own data rather than a claim about somebody else’s.
How long before we see recovered revenue?
Recovery starts on the first billing cycle after launch, because the charges are already failing on a schedule. Reading the result properly takes two full cycles — one to recover, and one to confirm the recovered subscribers stayed.
Do you write the dunning emails, or do we?
We write them, in your voice and inside your claims constraints, and you approve everything before it sends. If you would rather write them in-house, we hand you the sequence map, the timing and the segmentation to write against.
We already have an agency running our email. Does this conflict?
No. Failed-payment recovery is billing infrastructure rather than campaign marketing, and it is usually the piece nobody at a retention agency owns. We work alongside your existing team, in your accounts, and we document everything we touch.
What if our failed-payment rate is already low?
Then we tell you so in the audit and point you at the leak that is actually costing you more — flows, cancel-flow logic or replenishment timing. If we cannot identify recoverable revenue worth more than the audit fee, we refund it.
Find out what you’re losing.
Before you commit to anything, we tell you exactly what you’re losing and what it costs to stop it. Two weeks. Fixed fee. Credited in full against any build you go ahead with.
- Fee
- $1,500–$3,000, fixed
- Duration
- Two weeks
- Credited
- In full, against any build
- You supply
- Read access + one 45-minute call