# Is the PH-KH-CO2 equation completely wrong?



## Rolo (May 12, 2004)

THIS POST IS LONG. BUT PLEASE, ALL CHEM BUFFS, STICK TO IT. 
Four days ago I sat down to figure out the equation that governs all pH-KH-CO2 tables. I feel pretty comfortable with chemistry, so it seemed like a relatively simple task. But thats one nothing started to make sense. Since then, I've been searching, reading, searching...and more reading...and think I have come to a conclusion. Except, my conclusion is so outrageous I believe I must have messed up somewhere! To all other chem buffs, tell me if I'm right or wrong.

First I'm going to leave out all the chemical equations, gas and solubility laws, equilibrium constants/equations...everything that explains why we can find CO2 from KH and pH. If you understand what I'm going to go through then you you know about all that. I'll begin with the current origins of the equation we use to calculate CO2, the Henderson-Hasselbach equation.

pH = pKa + log([A-]/[HA]) 
Knowing the pKa of a certain weak acid, and the molar concentrations of the weak acid and its conjugate base (a buffer exists), we can find pH. In our case, A- is HCO3 and HA is H2CO3. H2CO3 by convention can be replaced by CO2. the pKa of H2CO3 is 6.37. So equation becomes (first line) and can be rearranged to find [CO2]:

pH = 6.37 + log([HCO3]/[CO2]) 
pH = 6.37 + log[HCO3] - log[CO2] 
log[CO2] = log[HCO3] + 6.37 - pH 
[CO2] = [HCO3]*10^(6.37-pH)

The last equation to calculate [CO2] is 100% correct. We could use this for our purposes, but it's impractical for the average aquarist to use foreign molar concentration written in scientific notation. It's better to just plug in our well known unit of dKH and get our answer. Thats what this link written by George Booth on APD provides for us, and is the current equation that we are using now.

THIS IS WHERE THE ASSUMED ERROR BEGINS 
To make the equation aquarist-friendly, we need to first find a conversion factor that interchanges dKH to molarity HCO3. According to the website 1 dKH = 2.92E-4M HCO3*. The author did as so:

dKH*17.8 = 'HCO3'mg/L 
'HCO3'mg/L * (mol/61020mg) = *2.92E-4M HCO3*

This is NOT correct. The author uses the common 17.8 factor to change dKH into mg/L, but doesn't realize that he has mg/L CaCO3. He assumes the units are mg/L HCO3 so proceeds in converting the mg into mol, by the molar mass of HCO3. Obviously as you know, using the molar mass of HCO3 is not going to convert mg/L CaCO3 into molarity HCO3. First we need to change mg/L CaCO3 into mg/L HCO3, then proceed into molarity. Before making the correction, I will continue the author's process:

[CO2] = [HCO3]*10^(6.37-pH) 
[CO2] = 2.92E-4*dKH*10^(6.37-pH)

Right now the answer is [CO2]. We need mg/L CO2.

[CO2]*44010(**) = 2.92E-4*dKH*10^(6.37-pH) 
*CO2 mg/L = 12.838*dKH*10^(6.37-pH)*

This is the current equation that we use for our CO2 charts. However, there was an error in finding it. So it must be wrong. THIS IS WHERE I NEED SOMEONE TO TELL ME THERE WAS NO ERROR AND I WAS WRONG. . I'll go ahead and show how to find the 'assumed' correct equation.

dKH*17.8 = CaCO3 mg/L 
CaCO3 mg/L * (2*61.02/100.09) = HCO3 mg/L 
HCO3 mg/L * (mol/61020) = *3.56E-4M HCO3*

Therefore the only difference between my equation and the current one: 1dKH = 1.78E-4M HCO3 instead of 1dKH = 2.92E-4M HCO3. Completing the new equation...

[CO2] = [HCO3]*10^(6.37-pH) 
[CO2] = 3.56E-4*dKH*10^(6.37-pH) 
[CO2]*44010 = 3.56E-4*dKH*10^(6.37-pH) 
*CO2 mg/L = 15.65*dKH*10^(6.37-pH) *

Comparing and testing (KH=5, pH=6.8 ) both equations side-by-side:

Original - CO2 mg/L = 12.838*dKH*10^(6.37-pH) 
Correct? - CO2 mg/L = 15.65*dKH*10^(6.37-pH) 
Original - CO2 = 23.85 mg/L 
Correct? - CO2 = 29.10 mg/L

Just this example shows an 18% error. So now comes the scary part, am I wrong????. I believe I'm going to find out very fast I am because saying the current, long used CO2 charts are completely wrong is outrageous. At the same time, the author of the current equation made a very obvious error, so I do not know which equation to trust!

*Corrected. The author should have used 61020 mg/mol, not 61. This isn't the source of error however. 
**Corrected. The author should have used 44010 mg/mol, not 44. This isn't the source of error however.


----------



## MarcinB (Apr 16, 2004)

I think You're right. I suspected it for some time. I found the same equation as Your on the APD: http://fins.actwin.com/aquatic-plants/month.200207/msg00173.html but I wasn't sure where the source of the different results is. Good job Chris.


----------



## Rolo (May 12, 2004)

Thank you for this link MarcinB. This is just what I've been searching for! I knew I could not have been the only person to uncover the correct equation, and this was just the confirmation I need.

http://fins.actwin.com/aquatic-plants/month.9707/msg00211.html Here is how the current equation is derived. There is a lot of math left out, so its confusing until you can fill in the holes. But the error in short was dividing the 17.8 mg/L by 61. It should have been divided by 100.09, then multiplied by 61.02*2, then divided by 61020.

Just a note on the pKa values in the awesome link provided. They are little incorrect, cause I know for certain the pKa of H2CO3 at 25C is 6.37. Most of us keep our aquariums at 25C (78F) anyway, so 6.37 should work just fine. Using 6.38 (20C) or 6.33 (30C) will only correct CO2 for only about 0.5 mg/L. The error here is very minimal.

All in all, its good to actually have the equation where all the math agrees. There is already so many sources of error in our test kits that having anymore practically makes the pH-KH-CO2 relationship worthless.

So the final equation to find CO2 is:

CO2 = 15.65*dKH*10^(6.37-pH)

I will try to contact Chuck (make of the popular calculator) and see if he would update to the new equation.


----------



## MarcinB (Apr 16, 2004)

To be correct, the pKa of carbonic acid at 25C (in deionized water) is 6,35. Other pKa values are OK. Chris You'd be definitely interested in  this article about factors affecting the pKa of carbonic acid. Temperature isn't the only thing that matters, water salinity is also important. I made an excel sheet with all the calculations (see the attached file). Salinity of water in our tanks can vary form about 0,2 to about 1 (200 to 1000 mg/l) depending on GH, KH and fertilization. It can alter the calculated CO2 concentration by few mg/l.


----------



## Rolo (May 12, 2004)

Thanks for the pKa correction. So the new equation becomes:

CO2 = 15.65*dKH*10^(6.35-pH)

I see how it is calculated - by using a salinity of zero in those sets of equations it give you a pka of "6.351...". This also means that the %error between the new equation and currently used on is reduced to 14%. The CO2 of "Chris Rolson's equation" in the excel download is then 27.83, not 29.07ppm.

How do you calculate salinity? I saw you got 0.4 from I assume a KH of 5.


----------



## MarcinB (Apr 16, 2004)

I know the amount of HCO3, Ca, Mg, K and Cl in my tap water. The sum of all these ions is 380mg/l. Total salinity should be a bit higher (ther's also some SO4, NO3, PO4, Na and SiO2), I think it's 400-450mg/l. The KH of my tapwater is 11 and GH=15.


----------



## Rolo (May 12, 2004)

It would be safe to say the current CO2 charts are o.k. to use. There is a maximum error of 14%. This amount is pretty negligible.

When pH = 6.8 and dKH = 5 CO2 is...
Corrected - 27.8ppm
"Classic" - 23.8ppm

((27.8-23.8 )/27.7) x 100 = ~14%

Between 20 - 30 ppm of CO2 (where most of us keep our levels) the current charts underestimate by a maximum of 3-4ppm. When you consider salinity and temperature the % error drops. GENERALLY, the more ionic solutes and harder your water is, the more accurate the current chart is. However, for the current chart to be 100% accurate your water needs to as saline as saltwater.

So basically, just keep in mind the current charts underestimate our actually CO2 by about 3ppm at the 20-30 ppm range.


----------



## plantbrain (Jan 23, 2004)

I suggest you look at the Bjerrum plot, there's considerable work done on gas and salinity levels, this relates directly to the sea's ability to absorb atmospheric CO2 and upwelling/downwelling regions.

There's also the Boric acid buffer system in salt water that causes some influence.

Temp effects all waters, the higher the temp, the less the 100% saturation point and the liquid will be able to hold in solution.

This is true for all gases, CO2, O2, N2 etc

You'll note my advice on CO2 tends to error on the higher side, when you add common measurement errors, most error on too little, so 15ppm is not even close for many if there's a +, - deveation of say 5-8ppm.

Generally not more than that using the charts. Error greatly decreases with a pH probe and a good alk test kit.

You can dose acid tritrations also and determine it and most research also uses different units and are more rigorous about it and it's also more time consuming etc.

Regards, 
Tom Barr


----------

