Pool Saturation Index Calculator

The saturation index is a sum of five terms, and every one of them is a number you bring: four from your own test results and a constant from whichever index table your testing programme uses. Programmes differ on the constant, on the temperature factor table and on what band they consider acceptable, so this page asks for all of them rather than picking. What it adds is the part people skip — the arithmetic showing how far each individual reading would have to move to land the index where you want it.

Your own kit. The index moves one for one with pH, so it is the term the whole sum is most sensitive to.
The factor for your water temperature, from the table your testing programme publishes. Tables differ between programmes, so this page asks for the value rather than assuming one.
Your own kit, reported as calcium carbonate. The factor is log base 10 of this minus 0.4.
Your own kit. The index uses the carbonate part, which is this minus whatever your programme subtracts for stabiliser.
Leave at zero to use total alkalinity unchanged. Enter your reading to apply the correction below.
The fraction your testing programme subtracts from total alkalinity at your pH. Programmes differ and it varies with pH, so the number comes from yours.
The constant your programme subtracts, which embeds an assumption about dissolved solids. Commonly 12.1 or 12.3 depending on the version. Yours, not this page.
From your own testing programme, or from the health authority for a commercial pool. This page holds no band of its own.
Same source. The page reports where your sum sits against these two numbers and nothing more.
Pool Saturation Index Calculator From Your Own ReadingsBuildFigure

Five numbers added together

The saturation index is a sum, and its unfamiliarity is entirely in the way two of the terms are built. Written out: index equals pH, plus a temperature factor, plus a calcium factor, plus an alkalinity factor, minus a constant. The calcium factor is the base 10 logarithm of the calcium hardness minus 0.4. The alkalinity factor is the base 10 logarithm of the carbonate alkalinity. Everything else is straight addition.

With pH 7.5, a temperature factor of 0.6, 300 ppm calcium hardness and 100 ppm carbonate alkalinity against a constant of 12.1, the terms are 7.5, 0.6, 2.077, 2.000 and minus 12.1. They come to plus 0.077.

Every one of those five is a field on this page rather than something the page assumes, and that is deliberate. Testing programmes differ on the temperature factor table, on whether the constant is 12.1 or 12.3, on how much of a cyanuric acid reading to subtract from total alkalinity and at what pH, and on the band they treat as acceptable. A page that quietly picked one set would be telling you a standard as though it were arithmetic.

Why pH dominates and calcium does not

pH enters the sum with a coefficient of one. A pH reading 0.3 higher raises the index by exactly 0.3. The two chemistry terms enter through logarithms, and a logarithm flattens things: to move a term by 0.3 you have to double the reading, and to move it by 0.6 you have to double it again.

ReadingChangeEffect on the index
pH+0.3+0.30
Calcium hardness200 to 400 ppm+0.30
Carbonate alkalinity80 to 160 ppm+0.30
Calcium hardness200 to 800 ppm+0.60
Temperature factor+0.1 on the table+0.10

That table explains the shape of most real balancing work. pH is the cheap lever and it is also the one that drifts on its own. Calcium and alkalinity are slow, expensive and, in the case of calcium, effectively one way in a pool with no drain-and-refill programme, because nothing in normal operation removes calcium except taking water out. The page prints the same comparison for your own readings rather than for these ones.

The stabiliser correction

Cyanuric acid contributes to a total alkalinity titration without being carbonate alkalinity, so an index built on the raw total alkalinity reading counts something that does not belong in it. Testing programmes handle this by subtracting a share of the cyanuric acid reading, and the share they use varies — it depends on pH, and different programmes model it differently.

The size of the correction is not trivial. A pool reading 100 ppm total alkalinity with 60 ppm cyanuric acid, at a programme that subtracts a third, uses 80 ppm carbonate alkalinity instead of 100. That is a factor of 0.8, which is a change of 0.097 on the index. Not enormous, but comparable to the width of some bands, and it is a systematic error in one direction rather than noise.

What the index is and is not

It is one number describing one aspect of water chemistry, the tendency of the water with respect to calcium carbonate. It says nothing about sanitation, nothing about whether anything in the water has been killed, and nothing about whether the pool is fit for anybody to be in. A pool can sit anywhere in any band and still be unsafe to swim in for reasons the index has no visibility of.

It is also a model. It treats water as an equilibrium system described by five terms, and real pool water has more going on than that. Which is why the useful output of this page is not the number but the sensitivity block: knowing that your particular water needs 0.14 of pH, or a doubling of alkalinity, or a 40 percent increase in calcium, tells you something about the shape of the problem that the index value alone does not.

Questions people ask

How is the saturation index calculated?

It is the sum of five terms: pH, plus a temperature factor read off a table, plus the base 10 logarithm of calcium hardness minus 0.4, plus the base 10 logarithm of carbonate alkalinity, minus a constant. For pH 7.5, factor 0.6, 300 ppm calcium and 100 ppm carbonate alkalinity against a constant of 12.1, that is 7.5 + 0.6 + 2.077 + 2.000 − 12.1 = +0.077. The two logarithmic terms are what makes it look complicated, and they are also why calcium and alkalinity are such blunt instruments compared with pH.

Which constant should I use, 12.1 or 12.3?

Whichever your testing programme uses, and the page will not choose for you. The constant embeds an assumption about total dissolved solids, and different published versions of the index handle that differently, so a number worked out with one constant is not comparable with a number worked out with the other. The difference is 0.2 on the index, which is the width of a good part of most bands, so it matters more than it looks. Find out which version your programme is quoting before comparing your figure with anybody else.

Do I have to subtract cyanuric acid from the alkalinity?

That depends on the programme you follow, which is why both the reading and the share to subtract are fields. The reasoning behind the correction is that cyanuric acid registers in a total alkalinity titration without being carbonate alkalinity, so leaving it in overstates the alkalinity term. Programmes differ on the share and on whether it varies with pH. On a pool reading 100 ppm alkalinity with 60 ppm cyanuric acid, subtracting a third moves the index by about 0.10, so it is not noise.

Why does the calculator not tell me whether my water is balanced?

Because that is a judgement against a band, and the band belongs to your testing programme or, for a commercial or public pool, to the health authority with jurisdiction. Those differ and they change. What the page does is report where your sum sits relative to a band you enter, which is the same arithmetic without pretending to an authority it does not have. It also does not say anything about whether the water is safe to swim in, which the index has no bearing on at all.

Which reading should I change to move the index?

The page shows you what each one would have to be on its own, which is the useful form of the question, and it does not recommend one. pH moves the index one for one, so a small pH change does what a large calcium or alkalinity change does. But pH is also tied to comfort, to equipment and to how the sanitiser behaves, so it is not a free variable, and calcium in a pool is close to one way without replacing water. What to actually change is a decision for whoever runs your testing programme, with your full results in front of them.

Related