Thanks for the great writeup on TA and the carbonate buffering system. In my trying to simplify the equations for eventual use in The Pool Calculator, I found that essentially the carbonate ion can be ignored and that dissolved carbon dioxide is the dominant species over carbonic acid. The relative amounts of each species are as follows at varying pH and normal pool water TDS (the first set of numbers are relative ratio amounts while the second set are percentages of the total):
[CO2(aq)] : [H2CO3] : [HCO3-] : [CO32-]
at pH 7.0 .... 650 : 1 : 3379 : 2 .... 16.1% 0.025% 83.8% 0.05%
at pH 7.5 .... 650 : 1 : 10677 : 23 .... 5.7% 0.009% 94.1% 0.20%
at pH 8.0 .... 650 : 1 : 33772 : 226 .... 1.9% 0.003% 97.3% 0.65%
Only the last two species above count towards Total Alkalinity (TA) and the last species (carbonate ion) counts twice as much as it can accept two hydrogen ions, but even so you can see that it is much smaller in concentration than the bicarbonate ion. So for practical purposes the primary equation that does the pH buffering near pool water pH is the following:
CO2(aq) + H2O <---> HCO3- + H+
Aqueous Carbon Dioxide + Water <---> Bicarbonate Ion + Hydrogen Ion
where at a pH of 7.5, 94.1% is Bicarbonate Ion and 5.7% is Aqueous Carbon Dioxide. A similar analysis for the Cyanuric Acid buffering system shows that the following equation is the primary one:
H3CY <---> H2CY- + H+
Cyanuric Acid <---> Cyanurate Ion + Hydrogen Ion
where at a pH of 7.5, 82% is Cyanurate Ion and 18% is Cyanuric Acid. Cyanurate Ion also counts toward Total Alkalinity which is why it is adjusted in the calculations for the saturation index because what is needed for that formula is the carbonate alkalinity (carbonate hardness).
If there are Borates in the water, then the following equation is the primary one:
B(OH)3 + H2O <---> B(OH)4- + H+
Boric Acid + Water <---> Borate Ion + Hydrogen Ion
where at a pH of 7.5, 97.6% is Boric Acid while only 2.4% is Borate Ion which is why this has a negligible effect on TA. At 50 ppm Borates, the TA is only increased by around 5 ppm at a pH of 7.5.
One misconception is that TA is a direct measure of pH buffering. This is not true. Total Alkalinity (TA) is only a measure of pH buffering CAPACITY and even then, only in one direction, specifically against a lowering of pH. A different measure known as Total Acidity measures the pH buffering capacity against a rise in pH. The borates do not count much towards Total Alkalinity, but they count a lot towards Total Acidity meaning that they have a greater capacity against a rise in pH than a drop in pH. That doesn't mean they don't resist a drop in pH, but rather they don't have as much capacity and will "run out" sooner after which the carbonate buffer system is effectively the only one left.
All of the above is the theory, but what is really important is what happens in practice. The following shows the effect on pH when adding 2 cups of 31.45% Muriatic Acid in 10,000 gallons:
TA 50, CYA 0, Borates 0: pH 7.5 --> 6.96
TA 150, CYA 0, Borates 0: pH 7.5 --> 7.26
TA 100, CYA 0, Borates 0: pH 7.5 --> 7.17
TA 100, CYA 80, Borates 0: pH 7.5 --> 7.26
TA 100, CYA 0, Borates 50: pH 7.5 --> 7.26
TA 100, CYA 80, Borates 80: pH 7.5 --> 7.31
This shows that having 50 ppm more TA or 80 ppm CYA or 50 ppm Borates are roughly equivalent in terms of resisting a drop in pH. Now let's look at what happens when we add 7 ounces weight of lye (sodium hydroxide) which is a pure base roughly equivalent to 17.6 ounces weight of soda ash / pH Up (sodium carbonate) or 35.1 ounces weight of Borax though these latter two have other side effects on TA.
TA 50, CYA 0, Borates 0: pH 7.5 --> 8.58
TA 150, CYA 0, Borates 0: pH 7.5 --> 7.88
TA 100, CYA 0, Borates 0: pH 7.5 --> 8.10
TA 100, CYA 80, Borates 0: pH 7.5 --> 7.90
TA 100, CYA 0, Borates 50: pH 7.5 --> 7.74
TA 100, CYA 80, Borates 80: pH 7.5 --> 7.70
From the above, you can see that Borates are a significant pH buffer resisting a rise in pH much more effectively than a lowering in pH and much more powerfully than the carbonate or cyanurate buffer systems. Here, having 50 ppm more TA is slightly better than 80 ppm CYA but 50 ppm Borates is even better at resisting a pH rise.
Another way to look at these buffer systems is their change in resistance to pH at various pH. The following shows the amount of acid it takes to go from one pH to another using only the carbonate buffer system, so TA 100, CYA 0, Borates 0:
pH 8.0 --> 7.9 ..... 2.3 fluid ounces
pH 7.9 --> 7.8 ..... 2.4 fluid ounces
pH 7.8 --> 7.7 ..... 2.6 fluid ounces
pH 7.7 --> 7.6 ..... 2.9 fluid ounces
pH 7.6 --> 7.5 ..... 3.4 fluid ounces
pH 7.5 --> 7.4 ..... 4.0 fluid ounces
pH 7.4 --> 7.3 ..... 4.8 fluid ounces
pH 7.3 --> 7.2 ..... 5.8 fluid ounces
pH 7.2 --> 7.1 ..... 7.0 fluid ounces
pH 7.1 --> 7.0 ..... 8.4 fluid ounces
You can see very clearly how the carbonate buffer system gets stronger at resisting changes in pH as the pH gets lower. Adding 80 ppm CYA to the system so we have TA 100, CYA 80, Borates 0 gives us the following where I just show a few of the points:
pH 8.0 --> 7.9 ..... 2.8 fluid ounces
pH 7.5 --> 7.4 ..... 5.9 fluid ounces
pH 7.1 --> 7.0 ..... 11.1 fluid ounces
The cyanurate buffer system adds some buffering in an uneven way (when combined with the carbonate buffer system) as a function of pH. If we had borates instead of CYA so we have TA 100, CYA 0, Borates 50, then this gives us the following:
pH 8.0 --> 7.9 ..... 9.8 fluid ounces
pH 7.5 --> 7.4 ..... 6.5 fluid ounces
pH 7.1 --> 7.0 ..... 9.3 fluid ounces
Here you can see that the borate buffer system is stronger at higher pH. Having both CYA and Borates so TA 100, CYA 80, Borates 50 gives us:
pH 8.0 --> 7.9 ..... 10.4 fluid ounces
pH 7.5 --> 7.4 ..... 8.3 fluid ounces
pH 7.1 --> 7.0 ..... 11.9 fluid ounces
The above gives you some sense for why the calculations predicting changes in pH at various TA, CYA and Borate levels are not trivial nor easily estimated. Nevertheless, I'm working on using the simplified dominant equations to come up with something that could be used in The Pool Calculator (someday).
Richard