Visible assumptions
The public benchmark exposes the illustrative failed-payment bands and 62% illustrative modeled recovery assumption used in its model. Updated July 2026.
A living report for SaaS founders tracking failed payments, decline codes, and recovery opportunities across Stripe.
Public benchmark
These ranges are the public model used by Dunlo's benchmark and audit pages. They are useful for estimation, not a substitute for connecting Stripe and reading your actual invoices.
< $5k MRR
Stripe defaults can hide the problem because volume is still low.
4.2%
$5k-$20k MRR
The first range where a dedicated recovery workflow usually pays back.
5.1%
$20k-$80k MRR
Failed payments become a visible retention problem, not just billing noise.
5.8%
$80k+ MRR
Recovery needs prioritization, account value, and human escalation.
6.4%
Failure-code playbook
insufficient_funds
Retry timing matters, but the customer email should stay calm.
expired_card
Stop retrying blindly and send a direct card-update path.
authentication_required
Explain the bank authentication step before another charge attempt.
do_not_honor
Escalate carefully when account value justifies a personal touch.
Report scope
Public benchmark model by MRR range
Failure-code recovery playbook
Beta data publication rules
Approved screenshots and testimonials when available
Beta transparency
Dunlo publishes assumptions, recovery mechanics, and its proof policy before it publishes customer outcomes.
During beta, customer outcomes are published only with approval and enough context to be useful.
The public benchmark exposes the illustrative failed-payment bands and 62% illustrative modeled recovery assumption used in its model. Updated July 2026.
Failure reasons, recovery timing, customer update links, and founder review are documented before signup.
Customer metrics and stories remain private until the sample is useful and the customer approves publication.