About Pool Calc, and how we calculate

Pool Calc is an independent app and website made by Henson and published by YOUR COMPANY LLC. We are not affiliated with any chemical, pool or spa brand.

Why it exists

Pool and hot tub chemistry is simple once you have the right numbers, and frustrating when two screens or two websites give different ones. We built one chemistry engine, checked it against published dosing facts, and use it everywhere: in the app, and in every calculator and article on this site.

Where the guidance comes from

  • Chlorine targets follow the free chlorine to cyanuric acid approach popularised by the Trouble Free Pool community.
  • Hot tub limits are based on CDC guidance and EPA product labels: at least 3 ppm free chlorine (4 ppm bromine), no soaking above 5 ppm chlorine (6 bromine), never above 10 ppm chlorine or 8 bromine, and never with pH below 7.0 or above 7.8 (CDC's hot tub page). We call the tub ready at pH 7.2 to 7.8, the control range in CDC's Legionella toolkit for hot tubs, which is based on the Model Aquatic Health Code.
  • CDC recommends not using stabilizer (cyanuric acid) in hot tubs, because it slows chlorine down. The dichlor-then-bleach method deliberately keeps it to about 30 to 40 ppm and says to drain above 40; the app also offers bleach only, with none.
  • Pools: swim when free chlorine is back in your normal range and at or below the re-entry level on your chlorine label (many labels say 4 ppm). Never during a shock, never above 10 ppm.
  • Product strengths and doses for non-chlorine shock come from product labels.
  • Water chemistry constants come from peer-reviewed sources, listed below.

How we calculate

QuantityHow it is calculated
Chlorine doseppm × litres ÷ available chlorine per gram or millilitre. Pool liquid chlorine (10% and up) is labelled in trade % (g per 100 mL); bleach below 10% by weight, corrected with its density.
Side effectsFrom the chemical formula: dichlor adds 0.91 ppm CYA per ppm FC, trichlor 0.61, cal-hypo 0.71 ppm calcium.
pH (acid and base)A carbonate, borate and cyanurate buffer model with temperature-dependent constants (Plummer and Busenberg 1982; Mesmer et al. 1972) and activity corrections. Total carbonate is computed from your alkalinity.
Alkalinity, calcium, stabilizer, saltStoichiometry: one equivalent of acid per equivalent of alkalinity, calcium chloride at its stated purity, stabilizer and salt one to one by weight.
FC / CYA (pools)Minimum free chlorine 7.5% of CYA (5% for salt water), target 3 ppm above the minimum (7.5% for salt water), shock 40% of CYA. Nobody swims above 10 ppm: above 10 but still inside the normal range for a high CYA (for example 10 to 11 ppm at CYA 80) the answer is "wait", higher is "not safe".
Pool pH and swimmingReady to swim at pH 7.0 to 8.0. Adjust pH first at 6.5 to 7.0 or 8.0 to 8.5 (the Model Aquatic Health Code requires immediate correction below 6.5 or above 8.0). Not safe below 6.5 or above 8.5. CDC recommends 7.0 to 7.8.
Hot tub limitsFree chlorine at least 3 ppm whatever the CYA and at least 7.5% of CYA, 5 ppm at most to soak, never above 10. Above about 67 ppm CYA no chlorine level up to 5 ppm meets the ratio, so the answer is "drain and refill first"; the plan says to drain above 40 ppm. Bromine 4 to 6 ppm, never above 8. Ready at pH 7.2 to 7.8 (CDC Legionella toolkit, based on the Model Aquatic Health Code); pH 7.0 to 7.2 is "raise pH first"; below 7.0 or above 7.8 is not safe (CDC hot tub guidance).
CSIlog of calcium times carbonate activity over the calcite solubility product at the water temperature; carbonate alkalinity corrected for cyanurate and borates.
BromineBromine reading = chlorine reading × 2.25 (159.8 ÷ 70.9). Bromide reserve from sodium bromide by weight; start-up oxidizer sized to about 5 ppm bromine (one MPS or chlorine equivalent per bromine).
MPSLabel doses: 1.5 oz of 45% per 200 gal (spa), 1 lb of 38% per 10,000 gal (pool). In a bromine tub the full spa dose turns about 27 ppm of bromine loose from the bromide reserve, so the routine dose is sized to about 5 ppm instead, and a test is required after any shock.
Drain interval(US gallons ÷ 3) ÷ average bathers per day.
Split additionsAcid is split into parts of no more than 12.5 ppm of alkalinity each; soda ash and borax 15 ppm; baking soda 40 ppm; calcium chloride 100 ppm (50 in a spa); chlorine reducer 5 ppm. Chlorine, shock, bromine, MPS, stabilizer and salt doses are not split: they are flagged when large.

The engine is written once and tested against more than 1,300 reference cases generated from a separate reference implementation, so the app and this site give the same answers. If you find a number that looks wrong, email [email protected] with your inputs and we will check it.

Limits

The calculators assume the volume and product strength you enter are right, and that the product is fresh. Liquid chlorine loses strength in storage, and scoop measures for powders are approximate. Doses are estimates, rounded for measuring: test after adding, always follow the product label, add chemicals one at a time and never mix them.