CO2 from KH and pH: the formula, the chart and where it breaks
Short answer
In water buffered only by carbonate, CO2 (mg/L) = 15.7 × KH (dKH) × 10^(pK1 − pH), with pK1 = 6.35 at 25 °C from the carbonate-equilibrium constants of Plummer and Busenberg (1982) [1]. That is about 3.5 × KH × 10^(7 − pH); most charts use 3. The estimate breaks whenever something else buffers pH, and a 0.1 error in the pH reading moves it by about 25 %. Aquasabi calls CO2 tables 'rather theoretical' for that reason [8].
The chemistry in one line
When CO2 dissolves in water, part of it reacts to form carbonic acid, which gives up a hydrogen ion and becomes bicarbonate. At equilibrium the three are tied together by the first dissociation constant of carbonic acid, K1:
[CO2] = [HCO3⁻] × 10^(pK1 − pH)
If you know how much bicarbonate is in the water and you measure pH, you can solve for CO2. Carbonate hardness (KH) is the bicarbonate measurement: it is a measure of alkalinity, the water’s capacity to neutralize acid, which in most fresh water comes from bicarbonate and carbonate [2].
Turning it into aquarium units
Three conversions get from the equation to the familiar formula:
- KH to bicarbonate. One German degree is 10 mg/L of CaO equivalent, or 17.848 mg/L as CaCO3 [3]. As alkalinity that is 0.35665 mmol/L of bicarbonate per dKH.
- Moles to milligrams. CO2 has a molar mass of 44.009 g/mol [4]; 0.35665 × 44.009 = 15.696.
- The constant. pK1 depends on temperature. Plummer and Busenberg’s 1982 evaluation of the CO2–water system gives a temperature function for it [1]: pK1 = 6.382 at 20 °C, 6.352 at 25 °C and 6.337 at 28 °C.
Put together:
CO2 (mg/L) = 15.696 × KH × 10^(pK1 − pH)
At 25 °C that equals 3.53 × KH × 10^(7 − pH). The charts printed on aquarium test kits and in many books use 3 × KH × 10^(7 − pH), so at the same KH and pH they read about 15 % lower. Both are estimates for an ideal, dilute solution. The CO2 calculator shows the two side by side and the effect of temperature.
A worked example
KH 4 dKH, pH 6.8, 25 °C:
- Temperature-corrected: 15.696 × 4 × 10^(6.352 − 6.8) = 22.4 mg/L
- Chart shortcut: 3 × 4 × 10^(7 − 6.8) = 19.0 mg/L
Turned around, the pH needed for a target at KH 4 and 25 °C is 7.15 for 10 mg/L, 6.85 for 20 mg/L and 6.67 for 30 mg/L. Each 0.1 pH unit is a factor of 1.26 in CO2, and each full unit a factor of 10.
Where the estimate breaks
The formula assumes that bicarbonate is the only thing holding the pH where it is. Anything else that acidifies or buffers the water makes the pH lower than CO2 alone would, and the formula reports the difference as CO2:
- Humic and tannic acids from wood, peat and leaf litter.
- Aqua soils that lower pH; Tropica states its Aquarium Soil does exactly that during the first weeks (root tabs and nutrient substrates).
- Phosphate. EI’s author notes that very high phosphate levels can influence alkalinity [10], and phosphate buffers are sold to fix pH.
- pH products of any kind.
Measurement adds its own error. A pH reading that is 0.1 too low makes the estimate 26 % too high; a liquid color test read in 0.2 steps cannot do better than about ±25 %. CO2 also changes through the day as injection runs and plants photosynthesize, so one reading describes one moment.
These are the reasons Aquasabi’s wiki calls CO2 tables based on pH and KH “rather theoretical” and recommends a permanent test instead [8]. A drop checker sidesteps the tank’s other buffers because its indicator sits in its own reference water and only exchanges gas with the tank [9]; the drop checker guide applies the same formula to it.
Targets
How much CO2 to aim for depends on whom you ask, and even one grower publishes different figures on different pages:
| Source | Lower group | Middle group | Demanding group |
|---|---|---|---|
| Tropica plant pages | low need | medium 6–14 mg/L | high approx. 15–25 mg/L |
| Tropica fertilizer guide | 3–5 mg/L “better than nothing” | Medium about 10–15 mg/L | Advanced 15–30 mg/L |
| Tropica CO2 System Nano page | Easy approx. 3 mg/L | Medium approx. 10 mg/L | Advanced approx. 25 mg/L |
| EI (Tom Barr) | about 30 mg/L suggested |
Sources: [5, 6, 7, 10]. The grower light ratings guide looks at these differences in more detail.
Tropica’s own method is the one this page describes: measure KH, then add CO2 until the pH in its KH/pH table is reached [6]. That works well in water with no other buffers, and the caveats above apply in the same way.
Questions
Why does the chart say my CO2 is very high when I inject very little?
Usually because something other than carbonate is lowering the pH: wood, peat, aqua soil or phosphate buffers. The formula then attributes all the acidity to CO2 and overestimates it. A drop checker, which carries its own reference water, is not affected by the tank's other buffers [9].
How much CO2 do aquarium plants need?
Tropica gives three sets of figures on three pages: a medium need of 6–14 mg/L and a high need of approx. 15–25 mg/L on its plant pages [5]; about 10–15 mg/L for Medium plants and 15–30 mg/L for Advanced plants in its fertilizer guide [6]; and about 3, 10 and 25 mg/L for Easy, Medium and Advanced plants on its CO2 system page [7].
Calculators for this
- CO2 from KH and pHEstimate dissolved CO2 in mg/L from carbonate hardness and pH, with a temperature-corrected constant, the usual chart shortcut, and the pH needed for a target.
- Hardness converterConvert GH and KH between German degrees, mg/L as CaCO3, mmol/L, meq/L, grains per gallon and French or English degrees, with each definition shown.
Related guides
- CO2 & lightHow a drop checker works, and what its green actually meansA drop checker is a small KH/pH test with its own reference water. The indicator chemistry, what green corresponds to in mg/L at 4 dKH, and its limits.
- CO2 & lightHow much CO2 is in aquarium water without injection?Henry's law and today's atmospheric CO2 put water in equilibrium with air at about 0.6–0.7 mg/L. The calculation, the temperature effect and what it means.
- CO2 & lightPressurized CO2 systems: the parts and what each one doesCylinder, regulator, needle valve, solenoid, bubble counter, check valve and diffuser: what each part does, per manufacturers, plus the gas safety basics.
- CO2 & lightSetting CO2 with the pH-drop methodCompare tank water with a degassed sample: each pH unit of difference means ten times the CO2. The arithmetic, what the baseline really is, and its limits.
- CO2 & lightWhat low, medium and high light and CO2 mean in grower plant dataTropica's light and CO2 ratings, the definitions behind them, the three different CO2 bands on its own pages, and how Aquasabi's categories line up.
Sources
- The solubilities of calcite, aragonite and vaterite in CO2-H2O solutions between 0 and 90 °C, and an evaluation of the aqueous model for the system CaCO3-CO2-H2O. Geochimica et Cosmochimica Acta 46: 1011–1040. Plummer, L.N. and Busenberg, E. (1982). Temperature function for the first dissociation constant of carbonic acid. Accessed October 12, 2026.
- Alkalinity and Water. U.S. Geological Survey, Water Science School. Alkalinity is a property set by bicarbonates, carbonates and hydroxides; measured by acid titration. Accessed October 12, 2026.
- Hardness of water: measurement units. Wikipedia. 1 °dH = 10 mg/L CaO = 17.848 ppm as CaCO3. Accessed October 12, 2026.
- Carbon dioxide (CID 280). PubChem, National Library of Medicine. Molecular weight 44.009 g/mol. Accessed October 12, 2026.
- Cryptocoryne wendtii 'Green' (plant details, with the rating definitions). Tropica Aquarium Plants. Medium CO2 need 6–14 mg/L; high approx. 15–25 mg/L. Accessed October 12, 2026.
- Fertiliser and CO2. Tropica Aquarium Plants. Add CO2 until the pH in Tropica's KH/pH table is reached; Medium plants 10–15 mg/L, Advanced 15–30 mg/L; 3–5 mg/L better than nothing. Accessed October 12, 2026.
- CO2 System Nano. Tropica Aquarium Plants. Natural CO2 level 0–0.5 mg/L; approx. 3 mg/L for Easy, 10 mg/L for Medium, 25 mg/L for Advanced plants. Accessed October 12, 2026.
- Measuring the CO2 level. Aquasabi (aquascaping wiki). CO2 tables from pH and KH are 'rather theoretical'; permanent tests with fixed-KH reagents for 20 or 30 mg/L. Accessed October 12, 2026.
- Filling a CO2 drop checker. Aquasabi (aquascaping wiki). Indicator must not touch tank water, whose KH would falsify it; several hours to react. Accessed October 12, 2026.
- The Estimative Index of Dosing, or No Need for Test Kits. Tom Barr, The Barr Report (2005). Suggests about 30 mg/L CO2; PO4 at very high levels can influence alkalinity. Accessed October 12, 2026.