For a long time I thought "growth" meant one thing: more signups. More ads, more content, more launches, more people at the top of the funnel. So that's where all my energy went.
Then I did some boring math that changed how I think about it.
Every month, a slice of my paying customers were disappearing — and when I actually looked, a big chunk of them hadn't churned on purpose. They hadn't cancelled. They hadn't complained. Their card just failed to renew (expired card, insufficient funds, a random bank decline) and the subscription silently died. No angry email, no exit survey. Just gone.
That hit me harder than any funnel metric. These were people who had already said yes. They wanted to keep paying. I just quietly let them slip because I wasn't paying attention to the least glamorous part of the business.
Here's the reframe that stuck with me: acquiring a brand-new customer might cost you 5-10x what it costs to hold onto one you already have. So the "cheapest" growth channel isn't a new ad campaign — it's plugging the leak of customers who were never trying to leave in the first place.
A few things that helped me:
• Actually measure involuntary churn separately from voluntary churn. Most dashboards lump them together and hide the problem.
• Treat a failed payment like a support moment, not a dunning notice. A human, helpful "hey, your card didn't go through" recovers way more than a cold system email.
• Retry intelligently, not blindly. Timing and tone matter more than most people think.
This rabbit hole is actually what led me to start building Revova (a tool to find and recover this lost revenue), but honestly the mindset shift matters more than any tool: retention IS growth, it's just the unsexy half nobody posts about.
So I'm curious how the IH crowd thinks about this:
Do you track involuntary vs voluntary churn separately? And has anyone here found that fixing retention moved the needle more than chasing new signups?
Would love to hear real numbers if you're open to sharing. 🙏
A great reminder that not all churn reflects dissatisfaction. Separating payment failure from genuine cancellation gives founders a much clearer picture of product health. Recovering these customers is often less about selling and more about removing friction at exactly the right moment.
"Less about selling and more about removing friction at exactly the right moment" — that's the whole philosophy in one line. These customers aren't objecting to anything; they just hit a wall (an expired card, a random decline) and need the easiest possible path back. So the job isn't persuasion, it's making the fix a 20-second tap that arrives at the right time. And you're right that the split is a product-health signal in itself: high involuntary churn is an ops problem you can fix this week, while high voluntary churn is a much harder product conversation. Lumping them hides which one you actually have.
this is the most underrated lever in SaaS. involuntary churn is usually a bigger share of total churn than people expect, and its almost pure recovery since these people already want to pay. two things that move it fast: smart retries (retry a failed card on a schedule, not just once) and pre-dunning, email them before the card even expires so it never fails. way cheaper than replacing them at the top of the funnel. great perspective
"Almost pure recovery since these people already want to pay" — exactly, that's what makes this such a high-ROI corner to work in. The two levers you named are the ones I leaned on hardest: scheduled smart retries (never just one blind attempt) and pre-dunning that emails people before the card even expires, so the failure never happens in the first place. And you're right on the economics — preventing or recovering a payment is a fraction of the cost of replacing that customer at the top of the funnel. Great way to frame it.
Your point about treating a failed payment as a support moment instead of a dunning notice really resonated. I have seen founders pour energy into acquisition while a double digit percentage of existing revenue quietly leaks from payment failures they never segmented out. The lumped churn metric hides it completely.
Do you find the retry timing strategy differs significantly between B2B and B2C? Card decline patterns seem to vary a lot by payment method.
The per-customer email adaptation is more nuanced than most people would bother with. Most teams set one tone and forget it, but the B2B/B2C split inside a single customer base is real. Curious how you detect the work vs personal context reliably enough to pick the right tone. Are you inferring from the email domain, billing address, something else?
Glad the "support moment, not a dunning notice" idea landed — that reframe changes everything about how you write the emails. On B2B vs B2C: yes, they genuinely diverge — B2C follows payday rhythms, B2B is about invoicing, approvals and net terms, and decline patterns shift by payment method like you said. The retry timing on the charge itself I leave to the processor's ML (it's very good at that), but the part I control — the emails — now detects each customer and adapts: a work address gets a more formal "you may want to loop in finance" tone, a personal one gets something warmer. Most merchants have both, so I do it per customer rather than a single global setting. Your comment is a big part of why I built it that way.
I like the distinction between voluntary and involuntary churn because it reminds me how easily one metric can hide very different stories.
Two customers may produce the same outcome, but for completely different reasons. One made an intentional decision to leave. The other simply never completed the renewal they already intended to make.
I've started becoming cautious whenever different user journeys get collapsed into a single number. The metric is useful, but the next question I usually ask is, "What different paths produced this result?" That's often where the more actionable insight lives.
What different paths produced this result? is such a healthy instinct — a single churn number is where real insight goes to die. Involuntary vs voluntary is the first split that has to happen, because one is a payment problem and the other is a product problem, and they call for opposite responses. I recently pushed it a level deeper: the breakdown now separates the paths within involuntary too — soft declines vs hard declines vs bank-verification (3-D Secure) failures — since each is a different story with a different fix. Two identical "failed" outcomes can need completely different handling. Really appreciate you articulating it this clearly.
I like where you took it.
What stands out to me is that every extra layer of separation exists for one reason: it changes the next decision.
If splitting a metric doesn't lead to a different action, it's probably just creating a more detailed dashboard. But when each path points to a different response, the classification becomes genuinely useful instead of simply more granular.
That's a distinction I've started paying much more attention to.
That's the sharpest way to put it — separation is only worth it if it changes the next decision, otherwise it's just a prettier dashboard. It's the test I now run on every metric I'm tempted to add: "what would I do differently if this number moved?" If the answer is nothing, it doesn't earn a place on the screen. Involuntary vs voluntary passes because the responses are opposite; soft vs hard vs auth-failure passes for the same reason. Anything that doesn't, I cut. Really like this lens.