A gym owner I know called me in a bit of a panic. He had just run a report on his membership software. Forty-three members had "active" memberships. But their monthly payments had stopped landing months earlier. Some cards had expired. Some banks had blocked the charge. Nobody had told him. Nobody had told them, either. The system just quietly stopped charging and moved on. Those members thought they still had a gym membership. He thought he was getting paid. Neither was true.

This happens more than people realize. It's not a rare glitch. It's what happens when subscription billing software is built to do one thing well — charge a card on a schedule — and nothing else.

"Just Charge the Card Every Month" Is the Easy 20%

If you've never built or bought subscription software, charging a card every month sounds simple. Store the card. Run it once a month. Done.

That part is genuinely easy. Most payment providers can do it in a few lines of code.

The hard part is everything that happens when that simple plan doesn't go as planned. A card expires. A bank flags the charge as suspicious. A customer's account is short on funds for a day. A customer wants to switch from a $40 plan to a $70 plan halfway through the month. A customer wants to leave, and you have to decide how to let them.

None of that is charging a card. All of it is what actually keeps a subscription business healthy. Skip it, and you end up like my gym owner friend: technically "billing," but quietly losing customers and money at the same time.

Industry researchers who track subscription businesses put a number on this. Roughly a fifth to two-fifths of all customer loss ("churn") at subscription companies isn't people choosing to leave. It's people who never meant to leave, but their payment failed and nobody caught it. That's called involuntary churn, and it's the single most fixable kind of customer loss there is — if your software is built to catch it.

What Should Happen When a Renewal Payment Fails

Here's the part most owners never think about until it bites them: what happens the moment a renewal payment doesn't go through.

A card can fail for all sorts of harmless reasons. It expired last week. The bank's fraud system got nervous about a routine charge. There wasn't quite enough balance the day the charge ran, but there will be in two days when the customer gets paid. None of these mean the customer wants to cancel.

Good billing software handles this with something called "dunning" — a slightly old-fashioned word for a very sensible idea: politely, persistently asking to be paid, on a schedule designed to succeed. Instead of trying the same card once and giving up, the system retries a handful of times over one to two weeks, often timed around when people typically get paid. At the same time, it emails the customer with a plain, friendly notice and a one-click link to update their card.

This isn't a minor nicety. Card networks like Visa and Mastercard also run a background service that automatically refreshes card numbers and expiration dates when a bank reissues a card — so a smart system can sometimes fix the problem before the customer even notices. Combined with well-timed retries and a clear email, businesses that do this recover a large share of payments that would otherwise have just disappeared.

Without any of this, a failed charge just becomes a quiet cancellation. Nobody decided that. It just happened.

Handling Upgrades and Downgrades Without Shortchanging Anyone

Say a customer on your $40-a-month plan wants to switch to your $70-a-month plan, and they do it on day 12 of a 30-day cycle. What should you charge them right now?

The fair answer involves a bit of math called proration — charging only for the days actually used at each price. In this example, they'd owe roughly the remaining 18 days at the new, higher rate, minus a credit for the 18 days they already paid for at the old, lower rate. Good software does this automatically, in the background, and shows the customer a clear breakdown so they're not left guessing why their card was charged an odd amount.

Downgrades are usually handled a bit differently. Most businesses let the higher plan run out through the end of the current cycle, then switch to the lower price starting next month, rather than issuing a same-day partial refund. Either approach is fine — what actually matters is picking one, applying it consistently, and telling the customer clearly what will happen before they confirm the change.

What a Fair Cancellation Flow Actually Looks Like

Here's a pattern I see constantly: a business makes it a single click to sign up, and then makes it a phone call, an email, or a maze of settings menus to cancel. It feels like it protects revenue. It does the opposite.

Customers remember how hard you made it to leave. Regulators have noticed this trick too — U.S. regulators pushed for a rule requiring cancellation to be at least as easy as sign-up, and even after a court fight over how that specific rule was written, the underlying expectation hasn't gone away. Customers now expect a clear cancel button, not a retention obstacle course.

A good cancellation flow does a few simple things. It's easy to find. It confirms clearly what happens next — the date service ends, whether a refund applies, whether they keep access until the end of what they already paid for. And it's honest, not manipulative. You can absolutely offer a discount to stay, once, without guilt-tripping. What you shouldn't do is hide the button or make someone call a phone number just to stop paying you.

Businesses that do this well often see people come back later, on good terms. Businesses that make cancellation painful mostly just generate angry chargebacks and bad reviews — which is a much worse outcome than a lost renewal.

The Common Thread

Every one of these situations — a failed card, an upgrade mid-cycle, a customer who wants out — is a moment where the customer is watching closely and forming an opinion about your business. Subscription billing software that only knows how to charge a card handles none of them well. Software built with these moments in mind handles all of them quietly, fairly, and correctly, most of the time without anyone even noticing.

This is closely related to what I've written about how ecommerce software actually works — the checkout moment is a one-time event, but a subscription relationship has to get this right every single month, for years. And when things do slip through the cracks, that's exactly the kind of gap I cover in my piece on credit card reconciliation.

If you're running a membership, a subscription box, or any SaaS product and you're not sure your billing setup is actually catching these moments, I'd like to hear about it. Let's talk through your situation.