Most gyms aren’t growing. They’re refilling.
I’ll say it plainer. The number you put on the whiteboard, “we signed twelve this month”, that number is a lie of omission. Not because it’s false. Because it’s only half the sentence. Twelve in. And you stopped reading there.
Picture a bucket. You’re standing over it with a hose, proud of the hose. The hose is your marketing. Your front-desk tour. Your January promo. Meanwhile there’s a crack near the bottom and water is leaving as fast as you’re pouring. You can run that hose forever and the water level never moves. You’ll be exhausted, you’ll be spending, and the level on the inside of the bucket stays exactly where it was. That’s most independent gyms. Working hard on the hose, never looking at the crack.
The only honest growth number is net. New minus lost. That’s it. If you signed twelve and twelve quit, you grew by zero, and you paid for the privilege of running in place. Gross growth is the press release. Net growth is the truth.
Why owners stare at the wrong number
I’ve watched this for thirty-four years, in my own gym and in every operation I ever quietly built systems for. Acquisition is loud. It’s exciting. A new face walking through the door gives you a little hit, proof the thing works, proof you’re wanted. Losing a member is quiet. People don’t quit with a speech. They just stop showing up, and one day a card declines, and they were gone three weeks before the card told you.
So we build our whole emotional life around the loud number and we never sit with the quiet one. The leak doesn’t announce itself. You have to go looking for it. And nobody wants to look, because looking means admitting the bucket has a hole, and the hole feels like a verdict on you.
It isn’t a verdict. It’s data. Let me give you the formula.
Find your leak rate first
Before you spend one more dollar on leads, measure the leak. Here’s the sequence. No tools you don’t already have, your billing system has all of it.
- Pick a clean window. Last full month, or trailing 90 days if your gym is small enough that one month is noisy. Pick it and don’t move it.
- Count your start headcount. Active paying members on day one of that window. Call it Start.
- Count who left. Cancellations plus failed-and-never-recovered payments inside that window. Call it Lost. Be honest about the failed payments, a card that died and never came back is a leak, not a “maybe.”
- Your leak rate is Lost ÷ Start. Twenty members left out of two hundred, that’s a 10% monthly leak. Multiply nothing, dress up nothing. That’s the size of your crack.
- Now count who came in. New joins that same window. Call it New.
- Your net is New minus Lost. That’s the only number that tells you if the bucket is filling.
Do that and you’ll feel something. Probably not good. Most operators run this the first time and find their leak is eating sixty, seventy percent of everything the hose brings in. That’s normal. That’s the starting line, not a failure.
Why patching beats pouring
Here’s the part the lead-gen ads will never tell you, because they sell hoses.
The cheapest member you will ever get is the one you already have. You’ve paid the acquisition cost on them once. It’s sunk. Every additional month they stay is nearly pure margin, no ad spend, no tour, no follow-up sequence to win them. A new member, by contrast, costs you real money to acquire and gives you nothing until they stay long enough to earn it back. If they leak out at month three, you lost money on them. You’d have been better off not signing them.
So when your leak rate is high, buying more leads is the most expensive thing you can do. You’re pouring premium water into a cracked bucket. Drop your leak from 10% to 6%, four members a month on a base of two hundred, and you’ve added the same to your net as a marketing campaign that lands four new joins, except retention costs almost nothing and compounds every single month after. The hose is a monthly bill. The patch is a one-time fix that keeps paying.
I’m still figuring out the exact ceiling on this, there’s a floor under churn no gym beats, life happens, people move, get hurt, change. You’ll never get the bucket to zero leak. But the gap between “never looked” and “looked and patched the obvious holes” is enormous, and almost nobody crosses it.
The order of operations
Patch the bucket. Then pour. In that order, every time.
- Patch first. Find the three biggest holes. Usually: the first 30 days (new members who never built a habit), the silent decliners (attendance dropping for weeks before they quit, visible in your check-in data if you look), and the failed-payment leak (cards dying with no recovery system). Fix those three before you touch your ad budget.
- Build the patch so it runs without you. This is the part that matters. A retention save you do by personally noticing a member went quiet is not a system, it’s you being heroic, and heroes don’t scale and they burn out. Build a trigger: when a member’s check-ins drop below their own baseline for fourteen days, something fires automatically, a text, a flag to a coach, a call task. When a payment fails, a recovery sequence starts the same day, not three weeks later. The mechanism watches so you don’t have to. You design it once and it runs every day whether you’re on the floor or on vacation.
- Then pour. Once the bucket holds water, now the hose is worth it. Every lead you buy actually raises the level instead of replacing what leaked out last night. Same marketing dollar, completely different return, because it’s landing in a bucket that keeps what you put in it.
That’s the whole formula. There’s no advanced version I’m holding back. Measure the leak. Patch the three biggest holes. Make the patch automatic so it doesn’t depend on you remembering. Then, and only then, spend on growth.
Go pull your numbers tonight. Start, Lost, New. Three counts, ten minutes, your billing system already has them. Find out whether you’ve been growing or just refilling. You can’t fix a leak you’ve never measured, and you can’t out-pour a hole you’ve never looked at.
I live my truth and I make myself useful.

