Pool pH and Alkalinity Calculator
Updated
Ranges and labels checked on ; next check .
Runs in your browser; nothing is sent to us. Copy link puts your numbers in the address.
In short: Lowering a 15,000-gallon pool's total alkalinity from 140 to 100 ppm takes 153.4 fl oz of 31.45% muriatic acid. At pH 7.8 with 40 ppm CYA, carbonate alkalinity is 126.0 ppm. The calculator gives no pH dose: test and adjust in small steps.
Handling pool chemicals safely
In the words of the public-health agencies:
Chemicals shall be added to water when diluting as opposed to adding water to a concentrated chemical.
(MAHC 2024, 5.9.3.4.2.2 (a public-pool code) (PDF, opens in a new tab))Two or more chemicals shall never be mixed in the same dilution water.
(MAHC 2024, 5.9.3.4.2.3.1 (a public-pool code) (PDF, opens in a new tab))If label directs pre-dissolving, add the pool chemical to water. NEVER add water to the pool chemical because a violent (potentially explosive) reaction can occur.
(CDC, Use Pool Chemicals Safely (PDF, opens in a new tab))Store each pool chemical separately in a dedicated location.
(CDC, Pool Chemical Safety (opens in a new tab))Do not mix old chemicals with fresh chemical, even if they are the same type
(EPA 550-F-01-003 (PDF, opens in a new tab))Never mix:
(CDC, Use Pool Chemicals Safely (PDF, opens in a new tab))Chlorine products with acid; this could create toxic gases.
Different pool chemicals (for example, different types of chlorine products) with each other or with any other substance.
Get an email when the Pool Chemistry Log & Dosing Chart Pack goes on sale
Leave your email and we'll send one message when the Pool Chemistry Log & Dosing Chart Pack is on sale, and occasional updates about it.
Total alkalinity is the reading to settle before pH, because alkalinity is what decides how far any acid or base will shift the pH at all. Enter your readings and this calculator sizes the dose that takes total alkalinity to your target — muriatic acid or dry acid to bring it down, baking soda or soda ash to bring it up. It also works out your carbonate alkalinity once cyanuric acid has been taken back out of the reading, and it puts your pH and your alkalinity beside the published ranges. What it will not do is print a pH dose; the section on that below sets out why. Doses are sized from the number of gallons you are treating, and the pool volume calculator turns tape-measure figures into that number.
Worked example: lowering alkalinity with muriatic acid
The readings here are the ones the calculator opens with, and the output is its own. A 15,000-gallon pool tests at pH 7.8, 140 ppm total alkalinity and 40 ppm cyanuric acid, and the alkalinity target is 100 ppm. The acid is muriatic at 31.45% hydrogen chloride with a specific gravity of 1.16.
- Alkalinity has to come down 40.0 ppm, which takes 153.4 fl oz (1.20 gal) of muriatic acid.
- Carbonate alkalinity is 126.0 ppm: the 140 ppm on the test kit, less 40 ppm of cyanuric acid multiplied by 0.35, which is PHTA's correction factor at pH 7.8.
- The two range rows report pH 7.8 as inside CDC's 7.0–7.8, and 140 ppm as inside the 60 to 180 ppm band of MAHC 2024, a public-pool code. Neither row is a dose.
Worked example: raising alkalinity with baking soda
The other direction, in the same 15,000-gallon pool: pH 7.2, total alkalinity 60 ppm, no cyanuric acid in the water at all, and a target of 80 ppm.
- Alkalinity has to rise 20.0 ppm. Baking soda at 100% sodium bicarbonate, the assay on HASA's Alkalinity Up sheet, does it in 67.2 oz (4.20 lb).
- There is no cyanuric acid to correct for, so carbonate alkalinity is simply the reading, 60.0 ppm, and the row labels itself that way rather than printing a factor.
- Soda ash would move the same 20 ppm for less weight — the table under the calculator gives both products at 10 ppm in 10,000 gallons — but soda ash is also what Lucas County's sheet reaches for to raise pH, so it moves two readings at once where baking soda mostly moves one.
Neither example is a recommendation for anyone's pool. Each is what the calculator prints for one set of readings, written out here so the arithmetic can be followed.
Carbonate alkalinity and CYA
Cyanuric acid shows up on an alkalinity test, but it does not buffer the water the way carbonate does, so the number on your kit overstates the part of the alkalinity that matters for balance. PHTA's alkalinity fact sheet gives the arithmetic for taking it back out: "Formula: Measured TA – (CYA x Cyanuric Acid Correction Factor) = Carbonate Alkalinity". That correction factor is not one number. PHTA's Table 1 carries one for each pH step from 7.0 to 8.0, climbing from 0.23 at the bottom to 0.36 at the top, because how much of the cyanurate counts as alkaline depends on the pH it is sitting in.
The calculator reads the row of that table closest to your pH, and a pH exactly halfway between two rows takes the higher row — this site's own convention, used the same way wherever it looks a reading up in a published table. Below pH 7.0 or above 8.0 the table has run out; the end row is used instead, and the result row says so in its label rather than quietly pretending the table reaches that far.
Two rougher rules exist for the same job, and the calculator uses neither. PHTA's own sheet notes that carbonate alkalinity is often worked out by subtracting a third of the cyanuric acid reading outright. The MAHC Annex, guidance for public pools, recommends deducting 30% of the CYA reading from the alkalinity test result for an outdoor venue running on stabilized chlorine. Both are flat fractions; PHTA's table is not, and following the table means the correction tracks your pH instead of ignoring it.
Two alkalinity ideals
PHTA's fact sheet puts the ideal alkalinity where it depends on what you chlorinate with. "Ideally, total alkalinity should be maintained between 80 and 100 ppm as CaCO3 where electrolytic chlorine generators, calcium hypochlorite, lithium hypochlorite, and sodium hypochlorite are used", because that group tends to push pH up. "Where sodium dichlor, trichlor, chlorine gas and bromine are used, the ideal range is between 100 and 120 ppm as CaCO3", because that group pulls it down. A salt pool and a tablet-fed pool therefore have different ideal targets, which is why the target is a field you set rather than a figure the calculator picks for you. This calculator doses no chlorine at all — the sentences are quoted for the alkalinity bands in them.
The band the calculator actually checks your reading against is the wider one: 60 to 180 ppm, from MAHC 2024, a public-pool code, which is the most specific published figure this site could check. It checks your target against that band too, and the warning it raises names the direction you were heading: a target under 60 ppm asks you to check the target before adding acid, and a target over 180 ppm to check it before adding a base. Either way the row is there before anything is poured, because a target typed as 20 or 200 ppm is far more likely to be a slip of the finger than a plan.
Why there's no pH dose
Alkalinity and pH are not the same kind of problem. Weighed-out baking soda raises alkalinity by an amount the chemistry of the compound settles on its own. The acid or base it takes to move pH depends on how hard the water pushes back, and pushing back is exactly what the alkalinity in it does — cyanurate included.
Two of the sheets saved for this site publish a rule of thumb for pH anyway, and the two do not agree. The Toledo-Lucas County Health Department's sheet, working per 0.2 pH units in 10,000 gallons, says to "add 6oz of Sodium Carbonate (Soda Ash)" to raise pH, or to "add 12 oz Muriatic Acid or 1.0 lb Sodium Bisulfate (dry acid)" to lower it. The Michigan State University Extension manual measures the same soda ash against 0.3 units instead: one pound "per 10,000 gallons will raise the pH 0.3." Scaled down to Lucas County's 0.2 units, that pound works out at 10.7 oz — about 1.8 times as much soda ash for the identical move in an identical pool.
Neither rule takes any account of the alkalinity buffering the water, or of cyanuric acid. Lucas County's own line ties its figure to a test rather than to arithmetic: the sheet gives it as "based on upon BASE demand test". So the calculator prints a pH dose row with no number in it, and the honest instruction is the slow one. Run the acid or base demand test in your drop kit, add a small dose of what it calls for, let the pump circulate, then test again. Get alkalinity where you want it first, since alkalinity is what sets how far each of those doses will carry.
The MAHC Annex, guidance for public pools, adds the other half of the picture: "Lowering the total alkalinity will usually lower the pH as well." Acid poured to bring alkalinity down takes pH down with it, which is one more reason to work in small steps and retest instead of chasing both readings in one afternoon.
pH ranges
CDC's page on home pools gives the range your pH is judged against here, with CDC's reasons for it: "Keeping the pH in the 7.0–7.8 range best balances killing germs to prevent swimming-related illness, the lifespan of the pipes, and swimmers' comfort." A reading inside it is reported as inside; outside it, the row names the end it missed.
Further out sit two figures the calculator raises as warnings rather than verdicts. MAHC 2024, a public-pool code, counts pH below 6.5 and pH above 8.0 among its imminent health hazards — the conditions that shut a public pool until they are put right. Nobody inspects a back-garden pool against that code, but a reading past either end still adds its own warning row, quoting the code, because the water does not know whose pool it is in.
One more warning comes from the cyanuric acid box rather than from the pH. That field accepts up to 300 ppm, and a reading of 300 or more adds a row headed CYA at 300 ppm or higher, which quotes section 5.7.3.1.3.3 of the same public-pool code: a venue there stays shut until the level has been dealt with. Nothing the calculator doses will bring cyanuric acid down, and the Toledo-Lucas County sheet's remedy for a high reading is to drain part or all of the pool and refill it — so that row is a prompt to change water, not to add anything.
Product strengths
Every dose depends on what is actually in the container, so each product has a % on your label field of its own, shown only while that product is the one selected.
- Muriatic acid starts at 31.45% hydrogen chloride with a specific gravity of 1.16, both from HASA's safety data sheet for it. A liquid needs both: the percentage says how much acid the bottle holds by weight, and the gravity turns that weight into the volume you pour.
- Type any other strength — even 31.4% — and the calculator has no gravity it can stand behind, because no sheet saved for this site gives one for 20% or 25% acid. So it prints no dose at all until you enter the specific gravity from your own SDS and tick The specific gravity above is from my acid's SDS. The tick is a separate box because the number by itself cannot tell a default nobody touched from an SDS that happens to say 1.16 too.
- Dry acid starts at 93% sodium bisulfate, and baking soda and soda ash at 100%, each from HASA's sheet for that product. All three are solids, so no gravity comes into it.
There is one rule about acids that no arithmetic on this page can stand in for, and the Indiana Department of Health's sheet puts it in five words: "Add acids to water, NEVER water to acid." The handling notes printed under the calculator carry the rest.
Reference table
| Product | Direction | Label strength | Amount |
|---|---|---|---|
| Baking soda (sodium bicarbonate) | Raises | 100% | 22.4 oz (1.40 lb) |
| Soda ash (sodium carbonate) | Raises | 100% | 14.1 oz |
| Muriatic acid (hydrochloric acid) | Lowers | 31.45% | 25.6 fl oz |
| Dry acid (sodium bisulfate) | Lowers | 93% | 34.4 oz (2.15 lb) |
Sources (11)
- PHTA, Alkalinity fact sheet (2021) phta.org
- CDC, Home Pool and Hot Tub Water Treatment and Testing cdc.gov
- CDC, Model Aquatic Health Code, 2024 (5th edition): Code, a public-pool code cdc.gov
- CDC, Model Aquatic Health Code, 2024 (5th edition): Annex, guidance for public pools cdc.gov
- Michigan State University Extension, Swimming Pool Pest Management, Category 5A manual canr.msu.edu
- Toledo-Lucas County Health Department, Adjusting Pool Water Chemistry lucascountyhealth.com
- Indiana Department of Health, Adjusting Chemical Levels in a Swimming Pool in.gov
- HASA, Muriatic Acid SDS (2026) hasa.com
- HASA, Dry Acid SDS (2026) hasa.com
- HASA, Alkalinity Up SDS (2026) hasa.com
- HASA, Soda Ash SDS (2026) hasa.com