Why won't my hot tub hold chlorine?
You added chlorine last night. This morning the test reads zero. You add more, soak in the evening, test the next day: zero again. The tub is not leaking chlorine. Something in the water is consuming it, and in a chlorine hot tub there are really only three suspects.
Which one you have comes down almost entirely to one question: how long has this water been in the tub?
| When the chlorine vanishes | Most likely cause | The fix |
|---|---|---|
| Fresh fill, gone within an hour, before anyone soaks | Biofilm in the plumbing | Purge product, then drain and refill |
| Holds fine until people get in, crashes after | Bather load (this is normal) | Dose after every soak |
| One to three months into the fill, each dose buys less | Stabilizer stacked up from dichlor | Switch to plain chlorine, or drain |
Take them in order.
Fresh fill, and chlorine is gone within the hour
You drained, refilled, dosed to a few ppm, and an hour later there is nothing on the strip. Nobody has been in the water. Hot water does burn chlorine off faster than a pool, but not like that. Demand that fast on clean water means the demand is not in the water at all. It is in the plumbing.
A hot tub's shell drains, but its lines never really do. The circulation loop, jet manifolds and heater housing stay warm and wet between fills, and warm wet pipe grows biofilm: a slime layer bacteria build to protect themselves. Most of a neglected tub's microbial load lives in the lines, not the water you can see, and a mature film shrugs off normal chlorine levels. The chlorine you add spends itself burning the film's surface, the film regrows overnight, and the reading goes to zero on water that looks perfectly clear.
The pattern is most common in a tub you just bought used, one that sat idle for a season, or an inflatable that came out of the shed.
Shock does not fix it; it just feeds it more chlorine to spend. The fix is a purge product, run through the old water before you drain: add it, run the jets hot for 30 to 60 minutes, and watch what comes out of the lines. Brown and gray flecks and a dirty foam line are normal and are the point. Then drain, wipe the shell down, and refill. On the new fill, chlorine that used to vanish in an hour will still be there the next day.
Chlorine holds fine until people get in
If a fresh fill holds chlorine overnight with the cover on but crashes after every soak, nothing is wrong. That is what soaking does, and the numbers are bigger than most owners expect.
One person-hour in a 350-gallon tub consumes roughly 1 to 2 ppm of free chlorine. At 102°F (39°C) a soaking adult sweats around a pint an hour, and all of it, plus deodorant, lotion and detergent residue, goes into a volume 50-plus times smaller than a backyard pool. Two people for 45 minutes is the bather load of a small crowd in a 20,000-gallon pool. The chlorine did not fail; it was used up doing its job.
So the habit that makes a chlorine tub work is simple: dose after every soak, not on a schedule. Replace roughly what the soak consumed, jets running, and retest about 15 minutes later before adding more. Small water moves fast in both directions, which is why spa doses are measured in teaspoons.
One more read worth knowing: a sharp chemical smell is combined chlorine, sanitizer that has already reacted with sweat and debris and stopped working. Above about 0.5 ppm, clear it: raise free chlorine well above its normal band, pump running, and stay out until it settles back down. If the water has gone cloudy along with the chlorine demand, that is its own diagnosis path: see why is my hot tub cloudy.
One to three months in: dichlor has quietly built a stabilizer problem
This is the one that catches people who are doing everything "right." The fill started fine. Somewhere around week four to twelve, each dose seems to buy less. The reading can even look normal while the water smells, feels slick, or clouds up, and shocking barely moves it.
The cause is almost always the granules you are dosing with. Dichlor, the standard "spa chlorine" in most kits, is stabilized chlorine: roughly half of every scoop is cyanuric acid (CYA) by weight, and every 10 ppm of free chlorine you add with it leaves about 9 ppm of CYA behind. A little CYA is useful in an outdoor tub, sunscreen that keeps sunlight from stripping the chlorine. But CYA does not evaporate and nothing consumes it. Chlorine comes and goes; the stabilizer from every dose stays.
In a pool that accumulation takes years. In 350 gallons it takes weeks. Dose 3 ppm a day with dichlor and you are adding about 2.7 ppm of CYA a day: roughly 80 ppm in a month, past 150 ppm by month two. And excess CYA binds chlorine. At 30 to 50 ppm of stabilizer, 2 to 4 ppm of free chlorine keeps water sanitary; at 150 ppm the same water needs closer to 11 to 15 ppm to behave the same way. Your test says 3 ppm, but most of it is locked up and barely working, which is how a "fine" reading and foul water coexist.
No chemical lowers stabilizer and neither does waiting; the only lever is dilution. In a pool that means a carefully planned partial drain. In a tub it is an hour with a garden hose and a couple of dollars of water: when CYA has stacked up, just drain and refill.
Then stop it recurring. On the fresh fill, use dichlor only until CYA reaches about 30 ppm, a week or two of normal dosing, then switch to plain unscented liquid chlorine, which adds zero CYA, for the rest of the fill's life. Test CYA monthly so the climb is a number you watch rather than a surprise. The tradeoffs are small: liquid doses in a tub are tiny and easy to overshoot, and they nudge pH up slightly. And if the chlorine treadmill has worn you out, bromine is the other legitimate road: it holds up in hot water, runs at higher numbers, and involves no CYA at all, which is why most permanent spas use it.
If your tub is inflatable
Inflatable and Saluspa-style tubs are the fastest-growing slice of hot tub ownership, and everything above applies to them, only faster. They hold 170 to 250 gallons, so bather load hits harder and the same daily dichlor habit can push CYA past 100 ppm in under a month. The sachet of "spa chlorine granules" in the box is almost always dichlor, and the manual never mentions stabilizer. Two habits matter most: dose with the filter pump running, since many inflatables only circulate while it is on, and treat draining as routine, not defeat. At this volume a full swap costs about a dollar and resets biofilm, bather waste and CYA at once.
The short version
A fresh fill that eats chlorine before anyone soaks is biofilm: purge the lines, then refill. Chlorine that crashes after soaks is normal: dose after every soak, about 1 to 2 ppm per person-hour. A fill that gets hungrier from month one onward is stabilizer stacked up by dichlor: switch to plain liquid chlorine past 30 ppm of CYA, or simply drain. In a tub, when in doubt, drain. It is an hour, not a project.
Basinly is the pool and spa app we built for exactly this loop. Set up your tub with its real volume and every dose comes back sized for it, teaspoons rather than pool-sized cups, with a nudge to retest after adding. Log your tests and the stabilizer chart turns dichlor's slow climb into a line you can see, so the switch point to plain chlorine is a number you watch instead of a smell you notice too late. Your tub of dichlor granules lives in the app's stock and draws down automatically with every logged dose, and reminders cover the after-soak dose and the purge before each refill. There is more about it on the Basinly page.