How the math works
Most pool apps hand you a number and ask you to trust it. We'd rather show the work. Everything below is the actual model DoseMyPool runs — the same engine that powers the free calculators on this site.
1. From ppm to a scoop: the core identity
A “part per million” is just a mass ratio: 1 ppm means 1 gram of chemical in a million grams (one cubic metre) of water. A US gallon of water weighs 3,785.41 g, so raising one gallon by 1 ppm takes 0.00378541 g of pure active ingredient. Every dry dose starts from:
grams of active = 0.00378541 × ppm change × gallons
Then we divide by the product's real strength. A worked example: raising free chlorine by 2 ppm in a 15,000-gallon pool needs 0.00378541 × 2 × 15,000 ≈ 114 g of available chlorine. Liquid chlorinating solution at 12.5% carries about 125 g of available chlorine per litre, so the dose is 114 ÷ 125 ≈ 0.91 L ≈ 3.8 cups (31 fl oz). Run the chlorine calculator with these exact numbers — you'll get the same answer, because it is the same code.
2. Product strengths are not marketing labels
“Shock” is not a chemical; it's a bag with a percentage on it. The engine models each product by its actual available-chlorine fraction or acid equivalents:
| Product | Modeled strength | Side effects the engine tracks |
|---|---|---|
| Liquid chlorine 12.5% / 10% | 125 / 100 g available Cl₂ per litre | — |
| Household bleach 8.25% | 90.2 g/L | — |
| Cal-hypo 73% / 65% | 73% / 65% by mass | Adds calcium hardness |
| Dichlor 56% | 56% by mass | Adds ~0.9 ppm CYA per 1 ppm FC |
| Muriatic acid 31.45% / 14.5% | 10.0 / 4.25 acid equivalents per litre | Lowers TA too |
| Dry acid (sodium bisulfate) | 93.2% pure, by molar mass | Adds sulfates |
That's why dichlor is a fine startup sanitizer but a bad habit: the engine shows you the CYA it silently adds with every dose, which is exactly how stabilizer “creep” happens.
3. Why chlorine targets scale with CYA
Cyanuric acid protects chlorine from sunlight by binding most of it in reserve — but bound chlorine sanitizes far more slowly. The practical consequence, long established in the industry and by the trouble-free-pool community: the free chlorine you need is a percentage of your CYA, not a fixed number. DoseMyPool keeps maintenance FC in the ~7.5–10% band of CYA and computes shock level at roughly 40% of CYA — the same rule the shock calculator uses. An app that says “2 ppm is fine” without asking your CYA is guessing.
4. pH and alkalinity: a real equilibrium model, not a lookup table
pH dosing is where most calculators cut corners, because pH isn't linear — it's buffered by the carbonate system. DoseMyPool solves the actual chemistry:
- Your measured total alkalinity is corrected for the cyanurate contribution (CYA is itself a weak acid that inflates the TA reading, pH-dependently).
- The remaining carbonate alkalinity plus your current pH fixes the water's total dissolved carbonate via the carbonic-acid dissociation constants (pK₁ 6.35, pK₂ 10.33).
- Lowering pH: the engine computes the exact strong-acid equivalents needed to move the carbonate system from your pH to the target — and reports the TA drop that comes with it, because every acid dose lowers both.
- Raising pH: it numerically solves the soda-ash addition that lands on the target pH, reporting the TA rise — and will suggest aeration instead when that's the better tool.
Because pH and TA are solved together, the recommendations can't fight each other — no more “add acid, then add baking soda, then add acid again” oscillation.
5. Water balance (LSI)
Beyond sanitation, water either dissolves things (etching plaster, corroding heaters) or deposits them (scale). The Langelier Saturation Index combines pH, temperature, calcium hardness, carbonate alkalinity, and TDS into one number; the app computes it with every test and nudges you when your water trends corrosive or scale-forming — before it costs you equipment.
6. The safety layer on top of the math
A correct number delivered dangerously is still a bad recommendation. Every dose passes through rules the math alone doesn't know:
- Order of addition — one chemical at a time, with circulation time between; acid and chlorine never together.
- Never-mix warnings — cal-hypo and trichlor, acid into chlorine, calcium chloride with soda ash.
- Plausibility checks — readings that imply an implausibly large dose get flagged for a re-test instead of a blind mega-dose.
- Practical handling — acid diluted and added to the deep end, pre-dissolving dry chemicals, swim-wait guidance.
7. Accuracy, honestly stated
The engine is validated against published reference doses and industry target ranges (PHTA/APSP guidance for residential pools and spas). Estimates are still estimates: test kits have tolerances, pools have dead spots, and product labels are the final word. That disclaimer is on every calculator — because a chemistry tool that pretends to be infallible shouldn't be trusted with your pool.
Keep going
Get exact doses, saved and on schedule
DoseMyPool remembers your pool, gives the safe order to add things, and reminds you to test. Free on the App Store.
Coming soon to the App Store