Pool Saved to Cloud

Your sync code (use this to load your profile on another device):

Write this down! There is no way to recover it if you lose it and clear your browser.
Save your pool settings for quick calculations

How We Calculate: Pool Chemistry and Math

The exact chemistry and formulas behind our pool calculators — FC/CYA, pH, alkalinity, calcium, salt, CYA and borates — with the constants, where they come from, and where they break down.

What this page is

Every dosing number our calculators give you comes from a specific formula with a specific constant. This page shows all of them — what we use, why it's justified, and where the simple version stops being exact. It's here for the curious; you never need to read it to use the tools.

One model, every tool. The all-in-one calculator and each single-purpose calculator (chlorine, pH, alkalinity, calcium, CYA, salt, borates) all use the same constants listed below, so they agree with each other. Our numbers follow the Trouble Free Pool (TFP) / PoolMath conventions and reduce to textbook stoichiometry wherever a clean derivation exists.

Free chlorine & CYA — why FC scales with stabilizer

This is the one piece of pool chemistry most worth understanding, and the place a flat "keep chlorine at 3 ppm" rule goes wrong.

The chemistry

Free chlorine in water splits between hypochlorous acid (HOCl) — the part that actually kills pathogens and algae — and hypochlorite ion (OCl⁻). Cyanuric acid (CYA, "stabilizer") acts as a reservoir: it binds the great majority of your free chlorine into chlorinated isocyanurates, protecting it from sunlight but holding it in reserve. Only a small, equilibrium-controlled fraction stays as active HOCl at any moment.

The consequence — established by measured equilibrium constants (O'Brien, Wojtowicz, et al.) — is that the active sanitizer level depends on the FC ÷ CYA ratio, not on FC alone. Double the CYA and you must roughly double the FC to keep the same killing power. That's why every number below is a percentage of your CYA.

What we use

LevelFormulaAt CYA 40Meaning
Minimum FC7.5% × CYA3 ppmBare floor — below this, algae can establish.
Target FC (chlorine pool)10% × CYA4 ppmThe level you actually maintain. A little above the floor for cushion.
Target FC (salt / SWG)6% × CYASalt pools run higher CYA (70–80) but lower FC%, since the cell replenishes continuously.
SLAM / shock40% × CYA16 ppmTemporary level to clear algae (TFP SLAM process).

All four are floored for very low CYA (Target/Min never drop below 2 ppm of sanitizer; SLAM never below 10) and snapped to the nearest 0.5 ppm so the dial moves in step with each 5‑ppm CYA click.

Is it really linear? (No — but close, on purpose)

The true relationship is nonlinear: CYA can hold one, two or three chlorines per molecule (mono‑, di‑ and tri‑chloroisocyanurate) and has its own pH‑dependent dissociation, so the full free‑HOCl curve bends. We use a fixed percentage because, in normal pool conditions, CYA is in large excess over chlorine — almost all chlorine binds as the mono‑ species, and the system collapses to:

[active HOCl] ≈ K · (FC / CYA)

That's the large‑excess limit of the real equilibrium, not a guess. Across CYA 30→80 at a fixed ratio, true active chlorine drifts only ~±10–15% — smaller than a test kit's resolution (FAS‑DPD reads in 0.5 ppm steps). Modeling the exact curve would be false precision. Where the linear shortcut genuinely fails, we patch it:

  • CYA near 0: the ratio model breaks, so we floor at 2 ppm of sanitizer.
  • CYA above ~90: linear slightly under-recommends; the tools warn you to lower CYA (partial drain) rather than chase ever-higher FC.
  • pH also shifts the HOCl/OCl⁻ split; the chart assumes ~7.5, and pH is handled by its own target.

Chlorine dose

To raise free chlorine, the weight (or volume) of product depends on its available‑chlorine percentage:

amount = (gallons / 10,000) × ΔFC × (133.3 / product%)

The 133.3 constant is the stoichiometric amount of available chlorine to raise 10,000 gal by 1 ppm. Divide by the product's strength to get the real dose — e.g. 12.5% liquid chlorine needs 133.3 / 12.5 ≈ 10.7 fl oz per 10k gal per ppm. Liquids are shown by volume, solids by weight.

Side effects we also report: cal‑hypo adds ~0.71 ppm calcium hardness per ppm FC; dichlor adds ~0.9 ppm CYA per ppm FC; trichlor adds ~0.6 ppm CYA per ppm FC. That's why stabilized chlorine slowly drives CYA up.

pH

Lowering pH — muriatic acid (31.45%)

fl oz = (gallons / 10,000) × (TA / 100) × (ΔpH / 0.1) × 8.0

Acid demand scales with how much buffer (total alkalinity) is in the water, so the dose is multiplied by TA / 100. Weaker acid is scaled up by 31.45 / its%. Because acid also pulls alkalinity down, big moves are staged (drop pH to ~7.2, aerate back up, repeat).

Raising pH — soda ash (sodium carbonate)

oz = (gallons / 10,000) × (ΔpH / 0.2) × 6

~6 oz of soda ash per 10k gal raises pH about 0.2. Soda ash also raises alkalinity, which is the trade-off versus aeration (which raises pH without adding anything).

Total alkalinity (TA)

Raising TA — baking soda (sodium bicarbonate)

lb = (gallons / 10,000) × (ΔTA / 10) × 1.40

Why 1.40: raising TA 10 ppm (as CaCO₃) in 10k gal is 0.834 lb of CaCO₃‑equivalent alkalinity; each pound of NaHCO₃ supplies ~0.595 lb of it (50 g CaCO₃ per 84 g NaHCO₃), so 0.834 ÷ 0.595 = 1.40 lb. (Soda ash would do it in ~0.88 lb but spikes pH, so baking soda is preferred for TA‑only moves.)

Lowering TA — muriatic acid (31.45%)

fl oz (total) = (gallons / 10,000) × (ΔTA / 10) × 25.6

Why 25.6: 10 ppm TA in 10k gal is 7.57 equivalents of alkalinity; 31.45% muriatic supplies ~0.296 equivalents per fl oz, so 7.57 ÷ 0.296 = 25.6 fl oz. This is the total across the acid‑and‑aerate stages — there's no chemical that lowers TA without also dropping pH, so you do it in cycles.

Calcium hardness

lb = (gallons / 10,000) × (ΔCH / 10) × 1.22

Why 1.22: 10 ppm CH (as CaCO₃) is 0.834 lb of calcium‑equivalent; calcium chloride dihydrate (CaCl₂·2H₂O, the common flake product, ~77–80%) supplies it at 100/147 by weight, so 0.834 ÷ 0.68 = 1.22 lb. If your product is anhydrous (94%+), use ~20–25% less. Nothing removes calcium chemically — you lower it by dilution.

CYA / stabilizer

oz = (gallons / 10,000) × (ΔCYA / 10) × 13

13 oz of granular cyanuric acid per 10k gal raises CYA about 10 ppm. CYA dissolves slowly — add it through a sock in the skimmer and re-test in 24–48 h before adding more. Nothing lowers CYA chemically; it breaks down very slowly on its own (~a few percent a month), so you reduce it by partial drain and refill.

Salt

lb = (gallons / 10,000) × (Δppm / 1,000) × 83.4 bags = lb / 40

Why 83.4: 1 ppm = 1 mg/L; 10,000 gal = 37,850 L; raising 1,000 ppm therefore needs 37.85 kg = 83.4 lb of salt — pure unit conversion, exact. Pool salt is ~99%+ pure, so no purity fudge is needed.

Borates

boric acid (lb) = (gallons / 1,000) × Δppm × 0.028

0.028 lb of boric acid per 1,000 gal raises borate 1 ppm. Boric acid barely moves pH. Using 20 Mule Team borax instead takes slightly more (~0.0286 lb) and requires muriatic acid afterward to offset the pH rise the borax causes.

Assumptions & limits

  • Estimates, not lab values. Real results vary with temperature, exact product purity, fill‑water chemistry, and how well things mix. Always test your own water and read product labels before adding chemicals.
  • Product strength matters. The constants assume common strengths (12.5% liquid chlorine, 31.45% muriatic, CaCl₂ dihydrate, etc.). The calculators let you set the actual percentage where it matters.
  • Precision is bounded by your test kit. A drop or strip test is ±0.5–1 ppm; chasing two‑decimal doses is meaningless. We round to what you can actually measure and pour.
  • Add less, re‑test, repeat. It's always easier to add more than to undo an overdose. For big moves, go partway and re‑test.

Sources & further reading

  • Trouble Free Pool — the FC/CYA Chart and "ABCs of Pool Water Chemistry" (the basis for our FC %, SLAM level, and overall approach). troublefreepool.com
  • PoolMath — the dosing conventions our chemical constants match. troublefreepool.com/poolmath
  • Chlorine–cyanurate equilibrium chemistry — J. A. Wojtowicz; O'Brien, Morris & Weil; and later equilibrium modeling (R. Falk). The measured equilibrium constants behind "active chlorine scales with FC/CYA." Journal of the Swimming Pool & Spa Industry ↗
  • CDC / MAHC — public‑pool guidance confirming CYA reduces chlorine's disinfection rate (why CYA is capped in commercial pools). cdc.gov

← Back to the All‑in‑One Pool Calculator

For educational purposes only — full disclaimer ↓ Always test your water and consult product labels before adding chemicals. Results are estimates only. Terms of Service.