Hey IH 👋
A few weeks ago I did something most founders avoid: I actually went through my Stripe payment history line by line. Not the happy "MRR is up" chart — the failed charges tab.
What I found made me a little sick. Payment after payment had silently failed. Expired cards. "Insufficient funds." Banks declining charges for no clear reason. These weren't customers who wanted to leave — they'd already decided to pay me. The money just… never landed. And I never noticed, because nothing screams at you when a renewal quietly fails. It just shows up later as "churn."
The scary part is how normal this is. Roughly 15% of recurring payments fail every month across subscription businesses. Most of us shrug and call it "just how Stripe works." But that's revenue you already sold. You did the hard part — you won the customer — and then lost the money on the last inch.
So instead of accepting it, I started building Revova.
The first thing I made was almost selfish: a Lost Revenue Finder that scans your Stripe history and tells you the exact number you've already lost. I wanted to see my own damage first. (Fair warning: the number surprises everyone.)
Then came the part that actually recovers it — automated dunning that doesn't feel robotic. Instead of the generic "your payment failed" email everyone ignores, it runs a personalized 5-email sequence, in the customer's own language (8 supported), timed to when they're most likely to fix it. It works with Stripe, Paddle, Braintree, Chargebee and Recurly, and setup takes about 3 minutes with no code.
Where I'm honestly at: just launched, still early, and I care more about getting this right than getting it big. I'd rather have 10 founders tell me what's broken than 1,000 signups I can't learn from.
So two real questions for you:
If you want to run the Lost Revenue Finder on your own Stripe and see your number, it's here → https://revova.io (use code Bird20 for 25% off if you decide to stick around).
I'll keep posting what I learn as I build this out. 🚀
one metric I'd add: incremental recovered revenue, not total. Stripe's Smart Retries already claw back a decent chunk of these on their own, so counting every eventually-successful charge as a save overstates what the tool actually adds. the honest version is lift measured against a holdout left on plain Smart Retries, otherwise you're paying a cut for dollars that would've landed anyway. good problem to be working on though, involuntary churn is about the most winnable revenue there is.
To answer your second question: Stripe Smart Retries plus the card account updater do most of the work for me, and email is the last resort rather than the first. One thing worth splitting out though: in the EU a big slice of 'failed' recurring charges aren't insufficient funds, they're SCA/3DS challenges the customer never completes. Those don't need a warmer dunning email, they need a re-authentication link, and if Revova buckets them with expired cards the recovery rate on EU merchants will look worse than it should. Are you separating hard declines from authentication failures in the Lost Revenue Finder? That split is usually where the recoverable money sits.
One thing I'd keep testing is whether you're selling revenue recovery or operational confidence.
Recovering lost payments saves money once. Giving founders confidence that revenue isn't quietly leaking every month changes how they think about the business. That feels like the stronger position over time.