Open methodology

Every result should be explainable.

The calculation engine uses canonical metric base units and exact decimal arithmetic. Conversion happens only at input and display boundaries.

A water sample, testing comparator, and notebook beside clear pool and spa water

Canonical units and precision

Water volume is liters, liquid product volume is milliliters, dry mass is grams, and concentration is milligrams per liter (ppm for these dilute aqueous calculations). Decimal.js is configured to 30 significant digits with half-up display rounding. Results avoid false precision by using measurement-appropriate display increments.

Volume

Rectangle: length × width × average depth. Circle: π × radius² × average depth. Oval: π × length × width ÷ 4 × average depth. Average depth is (shallow + deep) ÷ 2. The kidney method uses 0.45 × length × width and is labeled an estimate. Spa geometry can subtract a visible seat/shell displacement factor; manufacturer-stated or metered fill volume receives higher confidence.

Concentration and active mass

A 1 ppm change means 1 mg/L. Active mass in grams = pool or spa liters × desired ppm change ÷ 1,000. Dry product mass divides active mass by decimal purity. Liquid product volume divides active mass by decimal available-chlorine strength and product density in g/mL.

Chlorine

The calculator supports user-entered liquid available-chlorine strength and density. It does not infer a label maximum. A site-defined 50% staged planning amount is shown to reduce overshoot risk; the product label’s dose, application method, circulation, re-entry, and maximum limits control.

Salt

Salt mass uses the same active-mass equation and divides by package purity. The target is not supplied by this site: it must come from the installed salt chlorine generator’s manual. When current salt is above target, dilution—not negative addition—is the path.

Cyanuric acid

Pure CYA addition uses active-mass balance and product purity. The calculator is pool-only. CDC recommends not using CYA or stabilized chlorine products in hot tubs.

Dilution

Single-exchange fraction = (current − target) ÷ (current − refill), assuming perfect mixing. A non-zero refill concentration is supported. If refill water is already at or above the desired target, the selected target cannot be reached by that one-water-source exchange.

Alkalinity, calcium hardness, and LSI

Total-alkalinity additions are calculated as calcium-carbonate-equivalent demand and converted to sodium bicarbonate by molecular equivalent mass (factor 1.6787), then divided by product purity. Calcium-hardness additions are converted for either anhydrous calcium chloride (factor 1.1088) or calcium chloride dihydrate (factor 1.4689), then divided by purity. Both tools show a site-defined 50% staged amount.

The Langelier Saturation Index is pH + calcium factor + corrected-alkalinity factor + temperature factor − TDS constant. Calcium factor is log10(calcium hardness) − 0.4. Alkalinity factor is log10(carbonate alkalinity). Measured total alkalinity is corrected for CYA with PHTA’s pH-specific factors, and temperature is interpolated between published table points. Revised TDS constants are 12.1 below 800 ppm, 12.2 from 800–1,499, 12.3 from 1,500–2,899, 12.4 from 2,900–5,499, and 12.5 at 5,500 ppm or more. The displayed PHTA balance range is −0.3 to +0.5. LSI describes saturation tendency only; it is never a sanitation or safe-to-swim score.

Staging and uncertainty

Water volume, test precision, product age, strength tolerance, mixing, and refill-water chemistry all affect real response. The platform never automatically recalibrates a pool or spa from one chemical response. Measure, stage, circulate, and retest.