This is for the guys (like me) that ask why, in these days of multiple cores in multiple processors doing everything in 64 bits, we are using approximate bicarbonate and carbonate calculations suitable for slide rules from the 1950's. It's not hard to calculate bicarbonate and carbonate quite accurately from pH and alkalinity.
But before launching off into that let's ask why we care about bicarbonate and carbonate content in our brewing water. In fact we don't really other than because we are nerdy sorts. When we are finished making beer all the carbonate and nearly all the bicarbonate have been converted to gas (CO2) and driven off. There is more bicarbonate in finished beer from the CO2 we apply to carbonate it than there is from the water we brewed it with. What we are concerned with is how much acid we must add to get the pH low enough to convert all the carbo (bicarbonate and carbonate) to to carbonic (CO2) and the alkalinity measurement tells us that. Alkalinity is, arguably, the most important parameter in describing water intended for brewing. In other contexts carbonate and bicarbonate content are of little import as well. This is why one rarely finds them listed in water reports.
Alkalinity is simply the number of milliequivalents of acid that are required to decrease the pH of a liter of a water sample from whatever pH it has when it is given to you to a standard reference pH. This varies from 4.5 in the ISO method to 4.4 in Ward Labs tests to whatever you like as long as you report it per Standard Methods for the Analysis of Water and Waste Water. Because it is true that if 100 mg of calcium carbonate is placed in a liter of water and if that calcium carbonate is dissolved by bubbling CO2 through the water until its pH reaches 8.3 that it will take approximately 2 mEq of acid to reduce the pH of that mix from 8.3 to around pH 4.3 water chemists in North America often multiply the acid mEq by 50 and represent alkalinity as 50*mEq 'ppm as CaCO3' on the basis that the water we just described got its alkalinity from 100 mg/L calcium carbonate. The number of milliequivalents of EDTA required to chelate the calcium in this liter is also 2 and so, multiplying that number by 50 we get 100 'ppm as CaCO3' hardness as well. Very handy, when talking about natural waters. If we have alkalinity of around 70 and hardness about the same we know that mother nature has dissolved about 70 mg of limestone into each liter of water.
There are a couple of problems with this. First is that if we are not talking about natural waters the system is thrown off. If we put 100 mg of limestone is a beaker, add a liter of water and then add enough hydrochloric acid to dissolve it and bring the pH to 8.3 the alkalinity of that water is 1 mEq/L or 50 ppm as CaCO3 though the hardness is still 100. This is not really a problem for us as home brewers. What is really a problem is that people not familiar with the system get horribly confused. How often have I seen "Here's my water report, sodium 23 mg/L, Calcium Carbonate 75..." The guy doesn't have any calcium carbonate. He has 'alkalinity as Calcium Carbonate'.
What's worse is that the confusion is not limited to neophytes. This post was really motivated by 3 recent discoveries:
1. Ward Labs has been computing carbonate and bicarbonate incorrectly for years (status: they have been made aware of this but I haven't verified that they have fixed it)
2. LaMotte was instructing users to compute bicarbonate using a multiplier that was off by a factor of 2. (status: the instructions have been fixed).
3. Bru'n water takes the 'as CaCO3' thing a step further and reports alkalinity 'as Bicarbonate' except that they don't call it 'alkalinity as bicarbonate' they call it 'bicarbonate'. Thus we find a fellow that adds lime (which contains no bicarbonate) to DI water (which contains no bicarbonate) now has mix which has appreciable bicarbonate it it.
All this would have been avoided had people stuck with specifying alkalinity in mEq/L.
LaMotte has fixed the problem. Ward Labs is aware of the problem and either has, or, presuming they research it further, will fix the problem. Martin may yet be convinced but 'ppm as CaCO3' in the US isn't going away. It's been standard practice for too long. So if you see 'as CaCO3' just divide by 50, preferably without even thinking about it, and go ahead. When measuring alkalinity, unless you are using a drop count kit, you will be measuring out mEq/L anyway. Mutiply by 50 and write that down but try to think in terms of the mEq/L.
If you still want to know bicarbonate and carbonate ion concentrations after all that you can calculate them accurately as follows:
You must know:
1. The pH of the sample, pHs
2. The end point pH of the titration used to determine the alkalinity (usually around 4.4 - that's what Ward Labs uses), pHe
3. The alkalinity in mEq/L (divide ppm as CaCO3 by 50), alk
Most will obtain the alkalinity number from a lab or water authority report many of whom do not calculate bicarbonate and carbonate (because they really aren't that important). If they do they don't always do it right and you can use this method to check. Others will measure alkalinity themselves. For instructions and further insight check http://wetnewf.org/pdfs/measuring-alkalinity.html.
Here's what you do:
1. Subtract 1000*(10^-pHe - 10^-pHs) from the alkalinity
2. Subtract 1000*( 10^(pHs-14) - 10^(pHe - 14) ) from the adjusted alkalinity from Step 1.
3. Compute r1 = 10^(pHs - 6.38)
4. Compute r2 = 10^(pHs - 10.38)
5. Compute f0 = 1/(1 + r1 + r1*r2)
6. Compute f1 = f0*r1
7. Compute f2 = f1*r2
8. Compute Q(pHs) = -f1 -2*f2
9. Repeat steps 3 - 8 for pHe to compute Q(pHe). Obviously you only need to do this the first time assuming that you always process data with the same pHe.
10. Compute C = alk/( Q(pHe) - Q(pHs) ) using the adjusted alkalinity from Step 2.
11. Bicarbonate = 61*f1*C mg/L; Carbonate = 60*f2*C mg/L using the f's calculated for pHs
I won't get into the why's here. That can be done in discussion if there is interest. I will point out that phosphate, borate, and silicate are possible sources of error (as they are for the approximate calculation too) but we can correct for them using this method. See below for phosphate correction.
In the approximate method, two titrations are done. The first to 8.3 and the second to 4.4. The first gives the P alkalinity and the second the M. Carbonate is taken to be 60*2*P and Bicarbonate to be 61*(M - 2*P) where both M and P are in mEq/L. To quote Standard Methods for the Examination of Water and Wastewater: "...ion concentrations in the strictest sense are not represented in the results,..." Problems arise when P is measured as bigger than it should be. P=0 for any pH < 8.38 but some water reports show finite carbonate content when the pH is less than this. This leads to under reporting of bicarbonate.
All this is sort of moot because you don't really need to know bicarbonate and carbonate. It is sufficient to know C (the total carbon content) of the water and the f's (which are a function of pH). The only thing bicarbonate and carbonate are needed for is computation of sample ion balance. The anion charge contribution of bicarbonate and carbonate is simply -C*(f1 + 2*f2).
Correction for Phosphate (Added 5/6/14)
The same symbols, r's, f's and Q's are used here as above but these are for this separate calculation. They do not replace any of the r's, f's or Q's used above.
1a. Compute r1 = 10^(pHs - 2.12)
2a. Compute r2 = 10^(pHs - 7.21)
3a. Compute r3 = 10^(pHs - 12.44)
4a. Compute f0 = 1/(1 + r1 + r1*r2 + r1*r2*r3)
5a. Compute f1 = f0*r1
6a. Compute f2 = f1*r2
7a. Compute f3 = f2*r3
8a. Compute Q(pHs) = -f1 -2*f2 - 3*f3
9a. Repeat steps 1 - 8 for pHe to compute Q(pHe). Obviously you only need to do this the first time assuming that you always process data with the same pHe.
10a. Compute P*( Q(pHe) - Q(pHs) ) where P is the total moles of Phosphorous or Phosphate from your water report. Divide mg/L phosphorous by 30.974. Divide mg/L phosphate by 95.
11a. Subtract this from the alkalinity before doing any of the other steps in the carbonate/bicarbonate calculation.
Similar corrections can be calculated for borate and silicate but they are too small to be bothered with.
But before launching off into that let's ask why we care about bicarbonate and carbonate content in our brewing water. In fact we don't really other than because we are nerdy sorts. When we are finished making beer all the carbonate and nearly all the bicarbonate have been converted to gas (CO2) and driven off. There is more bicarbonate in finished beer from the CO2 we apply to carbonate it than there is from the water we brewed it with. What we are concerned with is how much acid we must add to get the pH low enough to convert all the carbo (bicarbonate and carbonate) to to carbonic (CO2) and the alkalinity measurement tells us that. Alkalinity is, arguably, the most important parameter in describing water intended for brewing. In other contexts carbonate and bicarbonate content are of little import as well. This is why one rarely finds them listed in water reports.
Alkalinity is simply the number of milliequivalents of acid that are required to decrease the pH of a liter of a water sample from whatever pH it has when it is given to you to a standard reference pH. This varies from 4.5 in the ISO method to 4.4 in Ward Labs tests to whatever you like as long as you report it per Standard Methods for the Analysis of Water and Waste Water. Because it is true that if 100 mg of calcium carbonate is placed in a liter of water and if that calcium carbonate is dissolved by bubbling CO2 through the water until its pH reaches 8.3 that it will take approximately 2 mEq of acid to reduce the pH of that mix from 8.3 to around pH 4.3 water chemists in North America often multiply the acid mEq by 50 and represent alkalinity as 50*mEq 'ppm as CaCO3' on the basis that the water we just described got its alkalinity from 100 mg/L calcium carbonate. The number of milliequivalents of EDTA required to chelate the calcium in this liter is also 2 and so, multiplying that number by 50 we get 100 'ppm as CaCO3' hardness as well. Very handy, when talking about natural waters. If we have alkalinity of around 70 and hardness about the same we know that mother nature has dissolved about 70 mg of limestone into each liter of water.
There are a couple of problems with this. First is that if we are not talking about natural waters the system is thrown off. If we put 100 mg of limestone is a beaker, add a liter of water and then add enough hydrochloric acid to dissolve it and bring the pH to 8.3 the alkalinity of that water is 1 mEq/L or 50 ppm as CaCO3 though the hardness is still 100. This is not really a problem for us as home brewers. What is really a problem is that people not familiar with the system get horribly confused. How often have I seen "Here's my water report, sodium 23 mg/L, Calcium Carbonate 75..." The guy doesn't have any calcium carbonate. He has 'alkalinity as Calcium Carbonate'.
What's worse is that the confusion is not limited to neophytes. This post was really motivated by 3 recent discoveries:
1. Ward Labs has been computing carbonate and bicarbonate incorrectly for years (status: they have been made aware of this but I haven't verified that they have fixed it)
2. LaMotte was instructing users to compute bicarbonate using a multiplier that was off by a factor of 2. (status: the instructions have been fixed).
3. Bru'n water takes the 'as CaCO3' thing a step further and reports alkalinity 'as Bicarbonate' except that they don't call it 'alkalinity as bicarbonate' they call it 'bicarbonate'. Thus we find a fellow that adds lime (which contains no bicarbonate) to DI water (which contains no bicarbonate) now has mix which has appreciable bicarbonate it it.
All this would have been avoided had people stuck with specifying alkalinity in mEq/L.
LaMotte has fixed the problem. Ward Labs is aware of the problem and either has, or, presuming they research it further, will fix the problem. Martin may yet be convinced but 'ppm as CaCO3' in the US isn't going away. It's been standard practice for too long. So if you see 'as CaCO3' just divide by 50, preferably without even thinking about it, and go ahead. When measuring alkalinity, unless you are using a drop count kit, you will be measuring out mEq/L anyway. Mutiply by 50 and write that down but try to think in terms of the mEq/L.
If you still want to know bicarbonate and carbonate ion concentrations after all that you can calculate them accurately as follows:
You must know:
1. The pH of the sample, pHs
2. The end point pH of the titration used to determine the alkalinity (usually around 4.4 - that's what Ward Labs uses), pHe
3. The alkalinity in mEq/L (divide ppm as CaCO3 by 50), alk
Most will obtain the alkalinity number from a lab or water authority report many of whom do not calculate bicarbonate and carbonate (because they really aren't that important). If they do they don't always do it right and you can use this method to check. Others will measure alkalinity themselves. For instructions and further insight check http://wetnewf.org/pdfs/measuring-alkalinity.html.
Here's what you do:
1. Subtract 1000*(10^-pHe - 10^-pHs) from the alkalinity
2. Subtract 1000*( 10^(pHs-14) - 10^(pHe - 14) ) from the adjusted alkalinity from Step 1.
3. Compute r1 = 10^(pHs - 6.38)
4. Compute r2 = 10^(pHs - 10.38)
5. Compute f0 = 1/(1 + r1 + r1*r2)
6. Compute f1 = f0*r1
7. Compute f2 = f1*r2
8. Compute Q(pHs) = -f1 -2*f2
9. Repeat steps 3 - 8 for pHe to compute Q(pHe). Obviously you only need to do this the first time assuming that you always process data with the same pHe.
10. Compute C = alk/( Q(pHe) - Q(pHs) ) using the adjusted alkalinity from Step 2.
11. Bicarbonate = 61*f1*C mg/L; Carbonate = 60*f2*C mg/L using the f's calculated for pHs
I won't get into the why's here. That can be done in discussion if there is interest. I will point out that phosphate, borate, and silicate are possible sources of error (as they are for the approximate calculation too) but we can correct for them using this method. See below for phosphate correction.
In the approximate method, two titrations are done. The first to 8.3 and the second to 4.4. The first gives the P alkalinity and the second the M. Carbonate is taken to be 60*2*P and Bicarbonate to be 61*(M - 2*P) where both M and P are in mEq/L. To quote Standard Methods for the Examination of Water and Wastewater: "...ion concentrations in the strictest sense are not represented in the results,..." Problems arise when P is measured as bigger than it should be. P=0 for any pH < 8.38 but some water reports show finite carbonate content when the pH is less than this. This leads to under reporting of bicarbonate.
All this is sort of moot because you don't really need to know bicarbonate and carbonate. It is sufficient to know C (the total carbon content) of the water and the f's (which are a function of pH). The only thing bicarbonate and carbonate are needed for is computation of sample ion balance. The anion charge contribution of bicarbonate and carbonate is simply -C*(f1 + 2*f2).
Correction for Phosphate (Added 5/6/14)
The same symbols, r's, f's and Q's are used here as above but these are for this separate calculation. They do not replace any of the r's, f's or Q's used above.
1a. Compute r1 = 10^(pHs - 2.12)
2a. Compute r2 = 10^(pHs - 7.21)
3a. Compute r3 = 10^(pHs - 12.44)
4a. Compute f0 = 1/(1 + r1 + r1*r2 + r1*r2*r3)
5a. Compute f1 = f0*r1
6a. Compute f2 = f1*r2
7a. Compute f3 = f2*r3
8a. Compute Q(pHs) = -f1 -2*f2 - 3*f3
9a. Repeat steps 1 - 8 for pHe to compute Q(pHe). Obviously you only need to do this the first time assuming that you always process data with the same pHe.
10a. Compute P*( Q(pHe) - Q(pHs) ) where P is the total moles of Phosphorous or Phosphate from your water report. Divide mg/L phosphorous by 30.974. Divide mg/L phosphate by 95.
11a. Subtract this from the alkalinity before doing any of the other steps in the carbonate/bicarbonate calculation.
Similar corrections can be calculated for borate and silicate but they are too small to be bothered with.