Free 60-second Stripe checkup/read-only/no card
See exactly what failed payments
are costing you. In 60 seconds.
Connect Stripe read-only and DunningDoctor returns one number: what you’ve leaked to failed payments in the last 90 days — and how much is still recoverable. Then an agent claws it back on optimal-day retries and branded card-update emails. You only pay on dollars it actually recovers, proven against your Stripe baseline.
$8,240
failed-payment loss
$5,900
still clawable-back
insufficient funds
41% of failures
>88%
of accounts your size
Illustrative example. Run the scan to replace these with your own real 90-day figures — no card, read-only.
The hidden leak
The leak you can’t see on your MRR chart.
Your dashboard shows MRR up and to the right. It doesn’t show the customers who never meant to leave — the ones whose card expired, hit a daily limit, or got flagged by their bank. They didn’t churn. They got dropped.
Involuntary share
20–40%
of all your churn
Almost none of it is a product problem. It's a billing problem you've never been paid to look at.
Monthly leak
5–9%
of MRR, every month
At $80k MRR that's $4,000–$7,200 walking out the door before you've finished your coffee.
Leak prevalence
94%
of scanned accounts
have a live leak when we scan them — averaging about $2,340/mo still recoverable.
Stripe Smart Retries
Table stakes, not a solution. They retry on a fixed cadence and stop — no optimal-day logic for your customers, no branded card-update flow, and no view of what they left on the table. So the first thing DunningDoctor does is the thing nobody’s done for you: put a number on it.
Recovery protocol
Diagnosis in 60 seconds. Treatment in one click.
- 01
Connect Stripe, read-only
One-click OAuth requests a read-only scope to look at your failed charges. No CSV, no API keys, no card. Revoke it from your Stripe dashboard anytime.
- 02
Get your number — free, full detail
In about 60 seconds the scan returns your headline: leaked vs. recoverable over 90 days, your full decline-code breakdown, and your percentile against accounts your size. The real figure, not a teaser.
- 03
Flip recovery ON — the one click
The diagnosis is free; the treatment is one click. The agent retries on the optimal day and sends branded card-update emails. We only bill the moment a retry succeeds — no card needed to start.
The scan tells you the truth for free. Turning recovery on is the only way to act on it — and it costs you nothing until it makes you money.
Proof, line by line
Every recovered dollar, measured against your Stripe baseline.
A deterministic control slice of your failing invoices gets nothing but Stripe’s own retries. We measure DunningDoctor against that baseline and bill only on the incremental lift. If a charge would’ve cleared on Stripe’s stock cadence, it’s not in your fee.
Illustrative example| Charge | Recovered | Baseline | Incremental |
|---|---|---|---|
| cus_7712 · Vellumexpired_card | $499 | $0 | +$499 |
| cus_9902 · Meridianinsufficient_funds | $199 | $199 | $0 |
| cus_1190 · Loopinsufficient_funds | $99 | $0 | +$99 |
| cus_6690 · Asterprocessing_error | $199 | $199 | $0 |
| cus_4821 · Northwindexpired_card | $420 | $0 | +$420 |
- Recovered by DunningDoctor
- $1,416
- Would’ve cleared on Stripe alone
- $398
- Incremental lift — what you’re billed on
- +$1,018
- Success fee · 22%, hard-capped $199/mo
- $199
What you get
Built to prove every recovered dollar.
One number, not a dashboard to learn
The scan returns a single headline — leaked and recoverable — in plain dollars over your last 90 days. You see what failed payments cost you before we ever ask for a sale.
Optimal-day smart retries, not a fixed cadence
Stripe retries on a stock schedule. DunningDoctor retries each failed charge on the day it's statistically most likely to clear — then proves the incremental lift over your baseline, charge by charge.
Branded card-update & dunning emails
When a retry needs the customer to act, we send a branded, on-domain card-update email — your logo, your voice, your one-click update link. Recover the payment and keep the relationship.
Recovered-vs-baseline ledger — proof, line by line
Every dollar we recover is logged against what Stripe's stock retries would have recovered on their own. You see incremental lift, not vanity totals. The fee is computed off this ledger.
Pay-on-recovery, hard-capped at $199/mo
The default is a success fee on net recovered revenue — capped at $199/mo no matter how much we claw back. Prefer predictable cost? Switch to a flat plan in one click.
Decline-code intelligence + cohort percentile
Your breakdown tells you which failure types are draining you; your percentile tells you whether your leak is normal or a five-alarm fire for your size — from a benchmark across thousands of scanned accounts.
Pricing
You see the money first. You pay last — and only on what we recover.
Performance pricing is the default on purpose — there’s no buy decision. You already saw your recoverable number in the free scan. Flip recovery on; we bill the instant a retry succeeds.
Free Leak Scan
See your number, no card.
- Full 90-day leaked + recoverable number
- Complete decline-code breakdown
- Your benchmark percentile vs. accounts your size
- Recovery OFF — diagnosis only, nothing billed
Recover
Pay only on what we recover.
- Optimal-day smart retries on every failed charge
- Branded card-update & dunning emails on your domain
- Live recovered-vs-baseline ledger (proven lift)
- 22% of net recovered — hard-capped at $199/mo
- No card to start. No recovery, no fee.
Recover Flat
Predictable cost once recovery beats the fee.
- Same engine, same optimal-day retries, same ledger
- $49/mo — under $50k MRR
- $99/mo — $50k–$150k MRR
- $199/mo — $150k–$300k MRR
Powered by Stripe
Read-only scan scope; retry scope only when you enable recovery.
Structured by Claude Code
The recovery agent runs deterministically on a gated schedule — no LLM in the billing loop.
Protected by pay-on-recovery
Billed only on verified successful retries, proven against your Stripe baseline, capped at $199/mo.
Questions, answered straight
Frequently asked questions
How is the fee calculated, exactly?
On the RECOVER plan it's 22% of net recovered revenue — the dollars a retry actually clears, after refunds and chargebacks are netted out. Every recovered dollar is logged against your Stripe baseline (what stock Smart Retries would have recovered on their own), so you're charged on incremental recovery, not money Stripe would've gotten anyway. The fee is hard-capped at $199/mo. You can audit the recovered-vs-baseline ledger any time.
How do I know you're not billing me for money Stripe would've recovered anyway?
That's exactly what the baseline ledger proves. A deterministic control slice of your failing invoices gets nothing but Stripe's own retries; we measure DunningDoctor's recoveries against that baseline and only count — and only charge on — the incremental lift. If a charge would've cleared on Stripe's stock cadence, it's not in your fee. The whole ledger is visible to you (and never writable by anyone) so the math is auditable.
What Stripe access do you need? Is this safe?
The scan uses a read-only OAuth scope — we can see failed charges, we cannot move money. Recovery scope (the ability to retry charges) is only requested when you turn recovery on, and it's least-privilege: retry and recover, nothing else. We never see or store full card numbers — that stays in Stripe's vault. You can revoke access from your Stripe dashboard in one click, any time.
Isn't this just Stripe Smart Retries with a markup?
No. Smart Retries run a fixed cadence and stop. DunningDoctor retries on the statistically optimal day per decline code and card type, layers branded card-update emails on your domain, and — critically — proves the incremental lift over Smart Retries in the ledger. If we weren't beating your baseline, your fee would be near zero. The success-fee model only works because we recover money Stripe's stock retries miss.
What happens if you recover nothing?
You pay nothing. The free scan stays free, the diagnosis is yours to keep, and on the RECOVER plan there is no charge until a retry succeeds. That's the point of pay-on-recovery: your downside is $0.
Do I have to talk to anyone or sit through a demo?
No. Connect Stripe, read your number, flip recovery on. There's no call, no contract, no minimum. You're converting on the recoverable figure you're already looking at, the moment you see it.
The number is already in your Stripe account
There’s a figure waiting in your failed-payment history right now. Go see it.
What you’ve leaked, and what’s still recoverable. The scan is free, read-only, takes about a minute, and asks for no card. Worst case, you learn your books are clean.
Read-only / 60 seconds / no card / pay only on what we recover