How CO2, pH and KH are linked
CO2 dissolved in water makes a weak acid. The more CO2 there is, the lower the pH. Carbonate hardness (KH) pushes the other way: it buffers the water, so the same CO2 lowers the pH less.
That means the three numbers are tied together. If you know two of them, you can work out the third. Planted-tank keepers use this to estimate CO2 from two cheap tests.
Worked example. KH is 4 dKH and pH is 6.6.
3 × 4 × 10(7 − 6.6) = 12 × 2.51 = 30 ppm
Two things follow from the formula:
- Each full pH point is ten times the CO2. If adding CO2 takes your water from pH 7.6 to 6.6, the CO2 has gone up tenfold.
- Double the KH, double the CO2 at the same pH. A pH reading on its own tells you nothing about CO2.
pH, KH and CO2 chart
Dissolved CO2 in ppm (mg per liter). Find your KH on the left and your pH along the top.
| KH | pH 6.2 | pH 6.4 | pH 6.6 | pH 6.8 | pH 7.0 | pH 7.2 | pH 7.4 |
|---|---|---|---|---|---|---|---|
| 1 dKH | 19 | 12 | 7.5 | 4.8 | 3.0 | 1.9 | 1.2 |
| 2 dKH | 38 | 24 | 15 | 9.5 | 6.0 | 3.8 | 2.4 |
| 3 dKH | 57 | 36 | 23 | 14 | 9.0 | 5.7 | 3.6 |
| 4 dKH | 76 | 48 | 30 | 19 | 12 | 7.6 | 4.8 |
| 5 dKH | 95 | 60 | 38 | 24 | 15 | 9.5 | 6.0 |
| 6 dKH | 114 | 72 | 45 | 29 | 18 | 11 | 7.2 |
| 8 dKH | 151 | 96 | 60 | 38 | 24 | 15 | 9.6 |
| 10 dKH | 189 | 119 | 75 | 48 | 30 | 19 | 12 |
| 12 dKH | 227 | 143 | 90 | 57 | 36 | 23 | 14 |
About 15 to 30 ppm is the range makers such as JBL advise for a planted tank with added CO2. Easy plants grow with much less. A tank with no added CO2 usually holds only a few ppm.
How much CO2 do plants and fish want?
| CO2 | What it means |
|---|---|
| Under 5 ppm | A tank with no added CO2 |
| 5 to 15 ppm | Enough for easy and many medium plants |
| 15 to 30 ppm | The usual target with a CO2 system |
| Over 30 ppm | Above the usual target. Watch the fish closely |
Fish show too much CO2 by breathing fast and gathering at the surface. If you see that, turn the CO2 down and get the surface moving. How much they can take depends on oxygen: water with plenty of oxygen is more forgiving.
When this method is wrong
The formula assumes that carbonate is the only thing buffering your water, and that CO2 is the only acid in it. In many tanks that is not true:
- Driftwood, peat, leaf litter and active plant soils release acids. They lower the pH with no extra CO2, so the chart reads too high.
- pH-down and "pH 7.0" buffer products often contain phosphate. Phosphate shows up in a KH test, so the chart reads too high.
- Test kits are coarse. A pH reading that is off by 0.2 changes the answer by more than a third.
If the calculator shows 60, 100 or more ppm and your fish look normal, the reading is wrong, not the fish.
A more reliable way to use the same idea is the pH drop. Take a glass of tank water, let it stand for a day so the CO2 escapes, and measure its pH. Then measure the tank with the CO2 running. A drop of 1 full point means ten times the CO2 of the water that stood in the open. A drop of about one point is a common target among planted-tank keepers.
A drop checker gets round the problem in another way: it holds its own clean 4 dKH water, so nothing in your tank can upset it. It is slow, though. It shows the CO2 of an hour or two ago.
Why some charts show slightly different numbers
The "3" in the formula is a rounded figure that the whole hobby uses, and every printed chart and drop checker is built on it. Worked out from the lab constant for carbonic acid at 25 °C (pK 6.35), the figure is about 3.5, which gives results 17% higher. The calculator shows both. The gap is much smaller than the error of a home pH test, so treat any result as "about", not exact.
Common mistakes
- Reading CO2 from pH alone. Without the KH, a pH number says nothing about CO2.
- Trusting the chart in a tank with driftwood, peat or active soil. Other acids lower the pH and the chart reads far too high.
- Using GH instead of KH. General hardness (GH) is a different test and has no place in this sum.
- Measuring before the lights come on. CO2 is lowest then. Test a few hours into the light period.
- Raising CO2 in big steps to hit a number. Go slowly and watch the fish, not the chart.
Questions and answers
How do I calculate CO2 in my aquarium?
Measure KH in degrees and pH, then use CO2 = 3 × KH × 10^(7 − pH). With KH 4 and pH 6.6 that gives about 30 ppm. The result is an estimate and is only right when carbonate is the only buffer in the water.
What should the CO2 level be in a planted tank?
About 15 to 30 ppm with a CO2 system, which is the range JBL advises. Easy plants grow with far less, and a tank with no added CO2 holds only a few ppm.
What pH gives 30 ppm of CO2?
It depends on your KH. At 2 dKH it is about pH 6.3, at 4 dKH about 6.6, at 6 dKH about 6.8 and at 10 dKH about 7.0. The calculator gives the figure for your own KH.
Why does the calculator show a very high CO2 level?
Usually because something other than CO2 is lowering the pH, such as driftwood, peat or active soil, or because a phosphate buffer is raising the KH reading. The chart cannot tell these apart from CO2.
How much CO2 is too much for fish?
There is no single limit, because it depends on how much oxygen is in the water. Around 30 ppm is treated as safe for most fish. Fast breathing or fish gathering at the surface means there is too much: turn the CO2 down.
Numbers for standard tanks
Have a standard tank? Its size, weight, heater and stocking are already worked out.
- 10 gallon tank
- 20 gallon long tank
- 29 gallon tank
- 40 gallon breeder tank
- 55 gallon tank
- 75 gallon tank
- 125 gallon tank
- All tank sizes
Sources
- JBL, CO2 in the aquarium: aim for 15 to 30 mg/L; example of KH 6 and pH 7.4 giving 7 mg/L
- Tropica, Fertiliser and CO2: CO2 needs of Easy, Medium and Advanced plants
- Practical Fishkeeping, "CO2: Striking the balance" (30 ppm and the 4 dKH drop checker at pH 6.6)
- Carbonic acid, first dissociation: pK 6.35 at 25 °C in fresh water (Harned & Davis, J. Am. Chem. Soc. 65, 1943)
- 1 dKH = 17.848 mg/L as CaCO₃ = 0.357 meq/L of bicarbonate; CO2 = 44.01 g/mol