Here's the short version. Then here's why the short version isn't true.
Keep chlorine between 1 and 3 ppm, pH between 7.2 and 7.8, alkalinity between 80 and 120 ppm, and cyanuric acid around 30 to 50 ppm. Hit those five numbers and your pool is in good shape.
But wait, there’s more.
Chlorine in water splits into two forms: hypochlorous acid, which does the actual killing, and hypochlorite ion, which barely does anything. Which form you get depends on pH, following this relationship:
At a pH of 7.5, you get close to a 50/50 split. At 7.8, the active fraction drops to around 33%. At 8.0, it's closer to 24%.
So a pool testing 3 ppm free chlorine at pH 8.0 has roughly 0.72 ppm of the form that actually sanitizes. The same 3 ppm at pH 7.2 gives you closer to 2.0 ppm of active chlorine. Same test result, nearly three times the killing power, and nothing on a standard test kit shows you the difference.
There’s another wrinkle.
Cyanuric acid is what keeps chlorine from disappearing in sunlight. Without it, direct UV can strip a pool's chlorine to nothing in under 2 hours.
But CYA has a rule attached to it: free chlorine needs to stay at roughly 7.5% of your CYA level or it stops reliably killing algae. At 50 ppm CYA, that's a floor of 3.75 ppm.
Go above 10 ppm free chlorine and you're past what the CDC's Model Aquatic Health Code allows while people are swimming. Between 3.75 and 10 ppm, at a typical 50 ppm CYA level, is your entire legal, effective operating range.
Which is worth comparing against the 1 to 3 ppm at the top of this page.
There’s another wrinkle.
In summer, a pool can lose 1.5 to 2 ppm of chlorine a day to sun and normal use. Over 7 days between visits, that's 10.5 to 14 ppm of total demand, which is more room than the 6.25 ppm window above actually has.
Dose to survive the whole week and you're pushing past the MAHC ceiling on day one. Dose to stay under the ceiling and you're below the algae-killing floor by day 3 or 4.
There is no single dose that satisfies both rules for a full week. Not a scheduling problem. An arithmetic one, with no solution.
This is the actual math behind once-a-week chlorine-only service, and it's why algaecide, a salt system, or a chemical feed system exist: something has to hold the line that chlorine alone mathematically cannot.
There’s another wrinkle.
Total alkalinity is what every test kit reports. Carbonate alkalinity, the number that actually protects your plaster, is calculated by correcting total alkalinity for cyanuric acid's own contribution to the reading:
At 50 ppm CYA, that alone knocks about 17 ppm off your total alkalinity reading. On a well-kept pool that isn't a crisis. A pool reading 100 ppm total alkalinity has about 83 ppm of carbonate alkalinity underneath it, and 83 is still doing its job.
We see this combination constantly, and the two halves of it travel together.
A pool's pH keeps drifting up, so it gets chased back down with muriatic acid, week after week. Every dose eats a little alkalinity, and nobody is putting any back. Total alkalinity is now 60 ppm.
Meanwhile the pool is being chlorinated with tablets in a floater. Tablets carry stabilizer, and it accumulates, so cyanuric acid has climbed to 120 ppm.
Run the correction on that pool and the carbonate alkalinity comes out somewhere between 15 and 25 ppm, depending on the pH and the temperature that day.
That isn't "a little low." That is extremely aggressive water, and left uncorrected it leads to spot etching and equipment failure. Meanwhile every number on the test kit still looks defensible. Alkalinity of 60 is inside the published range. The pool is being taken apart by a figure nobody calculated.
And the error runs in the worst possible direction. At pH 7.8, that pool reads +0.11 on an index calculated from total alkalinity, which looks like mild scaling and suggests backing the pH down. Corrected for the cyanurate, it's −0.47. The uncorrected number isn't just wrong, it's pointing the opposite way from the truth, and acting on it makes the problem worse.
Here’s where it all comes together, and also where it gets more complicated.
pH, alkalinity, calcium hardness, temperature, and total dissolved solids all interact. No single one of them tells you whether the water is actually balanced. The Langelier Saturation Index combines all five into one number:
A result near 0 means balanced water. Negative means corrosive. Positive means scaling.
Most companies that use LSI at all plug in total alkalinity for the AF term. The correct version uses carbonate alkalinity, from the formula above. Skip that substitution and your LSI reading can look balanced while the water underneath is still quietly out of balance.
And here’s the one that trips up almost everyone.
Higher pH nudges the LSI toward the scaling side, which is good for your plaster. But higher pH also pushes more chlorine into its weak, non-killing form, which is bad for your sanitation, per the formula at the top of this page.
The pH that best protects your surface is directly working against the pH that gets the most out of your chlorine. There's no number that maximizes both. There's only a target that balances the tradeoff, and it moves depending on your calcium hardness, your CYA level, and the temperature of your water that week.
None of this is complicated on purpose. It's what pool water actually does, whether or not anyone's tracking it.
Or, you can just hire us to handle it.
A note on the math above: these are simplified versions of real formulas. The actual LSI factors come from published lookup tables (temperature, calcium hardness, and TDS each have their own table), the CYA correction to alkalinity has a more precise pH-dependent version, and the HOCl split follows the actual dissociation constant of hypochlorous acid rather than the simplified curve above. The relationships are accurate. The exact coefficients are calculated fresh for your water every time, not read off a page like this one.
Hiring someone to care for your pool is a personal decision. Look around. Ask questions. When the time feels right, we'd be glad to hear from you.
Start a conversation