SettingsSettings for this calculationUS
Water volume, worked out from the pool's dimensions.
The dose is directly proportional to it. pH is quick to overshoot — a small pool with little alkalinity can move a whole unit on a cupful — so an honest volume matters more here than on any other dose.
A fresh reading, taken with the pump running.
Indicator tests can read wrongly where free chlorine is very high, and a colour judged in poor light can be two tenths out. Test the same way each time; a dose worked from a wrong reading moves the pool the wrong distance.
Where you want it. Salt cell makers ask for 7.2 to 7.8.
Both Hayward's and Pentair's salt cell manuals give 7.2 to 7.8. Lower in that range keeps more of the chlorine active and less scale forming; higher is gentler on plaster that the water would otherwise be undersaturated against. The page works the dose and leaves the choice to you.
A titrated reading, as the test kit reports it.
This is the buffer the dose has to push against, and it scales the answer nearly in proportion: the same pH change takes nearly twice the acid at 120 ppm as at 60. The page takes the stabiliser's share out of the reading itself, so enter the kit's figure as it reads.
The stabiliser reading. Zero for an indoor or unstabilised pool.
Stabiliser buffers pH as well as protecting chlorine — on a molar basis more strongly than bicarbonate at pool pH — and it reads as part of the alkalinity. Both effects are in the arithmetic, so a stabilised pool needs a little more acid than its carbonate alone would suggest.
Moves the equilibrium constants; a spa's 38 °C (100 °F) is not a pool's 27 °C (81 °F).
Carbonic acid's ionisation constants change with temperature, following Plummer and Busenberg's equations, so the same readings take a slightly different dose in a heated pool than in a cold one.
Include the salt in a salt-chlorinated pool.
Dissolved solids set the ionic strength, which sets how strongly each ion acts. A salt pool at 3,200 ppm of salt is at 3,500 ppm or more of TDS, and that shifts the dose by a few per cent. A fresh-water pool is usually 500 to 1,500 ppm.
What you have. Two lower pH, one raises it.
Acids lower pH and alkalinity together. Soda ash raises pH and adds alkalinity as well, about 0.94 ppm of alkalinity for every ppm of soda ash. Where pH is low but alkalinity is already where you want it, aeration raises pH with no product at all — the page shows how much carbon dioxide that would have to drive off.
Product to add
0.0938 gal
From pH 7.8 to 7.5: total alkalinity goes from 100 to about 96 ppm.
- The same, to measure out
- 12.01 fl oz
- Total alkalinity afterwards
- 96.44 ppm
- Carbonate alkalinity, stabiliser taken out
- 89.36 ppm
- Dissolved carbon dioxide now
- 2.34 ppm
- Carbon dioxide aeration would drive off instead
- 0 ppm
They open the calculator with your figures already in it
Pool pH Adjustment Calculator (Acid or Soda Ash): 0.0938 gal — shown in imperial, US market. The link sets both, so the result they see is the one on your screen.
Show calculation logicHide calculation logic
How this was calculated
Formula source(s)
- Wojtowicz, J.A., The Carbonate System in Swimming Pool Water, Journal of the Swimming Pool and Spa Industry 4(1) (2001) 54-59: Davies activity coefficients with ionic strength 2.5 x 10^-5 x TDS; Plummer and Busenberg's temperature equations for K1 and K2; carbonate alkalinity CT(a1 + 2a2)
- Wojtowicz, J.A., Swimming Pool Water Balance Part 1: the effect of cyanuric acid and other interferences on carbonate alkalinity measurement, JSPSI 1(1) (1995) 7-13: the first ionisation constant of cyanuric acid, 1.47 x 10^-7 at 80 F and zero TDS; cyanurate is titrated as alkalinity
- Wojtowicz, J.A., Swimming Pool Water Buffer Chemistry, JSPSI 3(2): buffer intensity of 0.002 M bicarbonate and cyanurate at pH 7.5, 80 F and 1,000 ppm TDS is 12.9 and 30.4 ppm as CaCO3 per pH unit — the figures this page's model reproduces
- Doses by equivalents: hydrochloric acid 36.458 g per equivalent, taken as 31.45% HCl at a specific gravity of 1.16; sodium bisulfate 120.06 g per equivalent at 93.2%; sodium carbonate 105.99 g per mole, adding two equivalents of alkalinity and one mole of carbonate
Inputs used
- Pool volume
- 13210 gal
- Current pH
- 7.8
- Target pH
- 7.5
- Total alkalinity (ppm)
- 100
- Cyanuric acid (ppm)
- 30
- Water temperature
- 80.6 °F
- Total dissolved solids (ppm)
- 1000
- Product
- Muriatic acid, 31.45% — lowers pH
Intermediate steps
- The same, to measure out
- 12.01 fl oz
- Total alkalinity afterwards
- 96.44 ppm
- Carbonate alkalinity, stabiliser taken out
- 89.36 ppm
- Dissolved carbon dioxide now
- 2.34 ppm
- Carbon dioxide aeration would drive off instead
- 0 ppm
Confidence note: From pH 7.8 to 7.5: total alkalinity goes from 100 to about 96 ppm.
What this calculation does not cover
- Dose half, circulate a full turnover, and test again. pH is the quickest reading to overshoot and the arithmetic assumes an accurate volume, reading and alkalinity; a second, smaller dose from a fresh reading is always safer than the whole calculated amount at once.
- Acid lowers alkalinity with pH, in fixed proportion, and the page shows where the alkalinity ends up. Where alkalinity is already where you want it, lower pH with acid and then aerate — a fountain, a spa jet, the returns angled up — which lifts pH again by driving off carbon dioxide while leaving the alkalinity alone.
- After an acid dose the pH drifts back up over the following days as the carbon dioxide the acid formed leaves the water. That is the chemistry, not a wrong dose, and it is why a pool that keeps rising is usually one whose alkalinity is too high.
- Borates are not included. A pool treated with a borate product has a third buffer, strongest near pH 9, which makes pH changes above about 7.6 take more acid than this shows.
- Muriatic acid is taken at 31.45% HCl and dry acid at 93.2% sodium bisulfate. A 14.5% bottle takes over twice the volume, and the label is the authority. Add acid to water, never water to acid, with the pump running, away from skimmers and fittings.
- The constant for cyanuric acid is taken at 80 °F (27 °C); the carbonate constants follow the temperature entered. Test kits read pH to a tenth at best, so a target finer than that is not something a dose can hit.
Estimated cost — your price
This site holds no price list for this material — local prices vary too much to publish honestly. Enter your supplier's price and the result is costed with it.
Computed in your browser — nothing you enter is uploaded. Presented in US customary units and US trade terminology. Where a formula follows a published standard, that standard and its edition are cited beside it on this page; where none governs, the page says so. Local amendments override model codes — verify against the code in force where you build.
Sources checked 2026-09-25 · v1.0.0
Regulatory standards & verification citations4
- Wojtowicz, J.A., The Carbonate System in Swimming Pool Water, Journal of the Swimming Pool and Spa Industry 4(1) (2001) 54-59: Davies activity coefficients with ionic strength 2.5 x 10^-5 x TDS; Plummer and Busenberg's temperature equations for K1 and K2; carbonate alkalinity CT(a1 + 2a2)
- Wojtowicz, J.A., Swimming Pool Water Balance Part 1: the effect of cyanuric acid and other interferences on carbonate alkalinity measurement, JSPSI 1(1) (1995) 7-13: the first ionisation constant of cyanuric acid, 1.47 x 10^-7 at 80 F and zero TDS; cyanurate is titrated as alkalinity
- Wojtowicz, J.A., Swimming Pool Water Buffer Chemistry, JSPSI 3(2): buffer intensity of 0.002 M bicarbonate and cyanurate at pH 7.5, 80 F and 1,000 ppm TDS is 12.9 and 30.4 ppm as CaCO3 per pH unit — the figures this page's model reproduces
- Doses by equivalents: hydrochloric acid 36.458 g per equivalent, taken as 31.45% HCl at a specific gravity of 1.16; sodium bisulfate 120.06 g per equivalent at 93.2%; sodium carbonate 105.99 g per mole, adding two equivalents of alkalinity and one mole of carbonate
Cite this page
Your workspace
Most jobs need more than one number. Add the calculators you need next and they open right here, underneath this one — your figures stay on screen and nothing is lost to a page change.