CO2 from KH and pH calculator, temperature-corrected
Short answer
CO2 (mg/L) ≈ 15.7 × KH (dKH) × 10^(pK1 − pH), where pK1 is the first dissociation constant of carbonic acid: 6.35 at 25 °C [1]. That works out to about 3.5 × KH × 10^(7 − pH), a little above the 3 × KH × 10^(7 − pH) shortcut used on most charts. Both assume carbonate is the only buffer in the water; anything else that buffers pH makes the result read high.
How the estimate works
Dissolved CO2 and bicarbonate are linked by the first dissociation of carbonic acid. In water where carbonate is the only significant buffer, the balance can be written as
[CO2] = [HCO3⁻] × 10^(pK1 − pH)
Carbonate hardness (KH) is a measure of alkalinity, the water’s acid-neutralizing capacity, which comes from bicarbonates, carbonates and hydroxides [2]. One German degree is defined as 10 mg/L of calcium oxide equivalent, or 17.848 mg/L as CaCO3 [3], which corresponds to 0.35665 mmol/L of bicarbonate alkalinity. Seachem’s product directions use the same relationship rounded: 1 meq/L is about 2.8 dKH [4]. Multiplying by the molar mass of CO2, 44.009 g/mol [5], gives
CO2 (mg/L) = 15.696 × KH (dKH) × 10^(pK1 − pH)
pK1 depends on temperature. The calculator uses the temperature function published by Plummer and Busenberg (1982) for the CO2–water system [1]; it gives pK1 = 6.382 at 20 °C, 6.352 at 25 °C and 6.337 at 28 °C. Warmer water therefore holds slightly less CO2 at the same KH and pH reading.
The chart shortcut
Most aquarium CO2 charts use CO2 ≈ 3 × KH × 10^(7 − pH). At 25 °C the equilibrium above works out to 3.53 × KH × 10^(7 − pH), so the chart figure is about 15 % lower than the temperature-corrected estimate. Neither is “the” right value: the chart’s factor of 3 corresponds to a pK1 of about 6.28, below the 6.33–6.38 this temperature function gives between 20 and 30 °C, and both treat the water as an ideal dilute solution. The calculator prints both so you can compare a reading with a chart you already use.
Reference table at 25 °C
CO2 in mg/L from the temperature-corrected formula (pK1 = 6.352):
| KH (dKH) | pH 6.4 | pH 6.6 | pH 6.8 | pH 7.0 | pH 7.2 | pH 7.4 |
|---|---|---|---|---|---|---|
| 2 | 28 | 18 | 11 | 7 | 4 | 3 |
| 3 | 42 | 27 | 17 | 11 | 7 | 4 |
| 4 | 56 | 35 | 22 | 14 | 9 | 6 |
| 6 | 84 | 53 | 34 | 21 | 13 | 8 |
| 8 | 112 | 71 | 45 | 28 | 18 | 11 |
Each 0.2 pH step changes CO2 by a factor of 1.58, and each full pH unit by a factor of 10. That is why the calculator also shows the result for a pH reading 0.1 higher and lower: a 0.1 error in pH alone moves the estimate by +26 % or −21 %.
Where it breaks
The formula assumes that bicarbonate is the only thing holding the pH up. When something else buffers the water, the measured pH no longer reflects CO2 alone:
- Other buffers. Phosphate buffers, humic and tannic acids from wood, peat and leaves, and many nutrient-rich aqua soils all shift pH without changing CO2.
- pH products. Commercial pH-adjusting buffers do the same by design.
- Measurement. Liquid pH tests are read by eye in steps of 0.2 or more; a calibrated meter is far better, but the 0.1 sensitivity above still applies.
- Timing. CO2 rises after injection starts and falls when plants photosynthesize and the gas escapes at the surface, so a single reading describes one moment.
For water with other buffers, a drop checker isolates a sample of known KH from the tank water and avoids most of these problems; the drop checker guide shows the same arithmetic applied there.
Targets in grower data
Tropica rates plants by CO2 need and defines the ratings on every plant page: a medium need is 6–14 mg/L and a high need approximately 15–25 mg/L [6]. Its fertilizer guide gives slightly different bands, about 10–15 mg/L for plants marked “Medium” and 15–30 mg/L for “Advanced”, and recommends adding CO2 until the pH in its KH/pH table is reached [7]. The calculator’s lower table shows the pH that corresponds to 10, 20 and 30 mg/L at your KH and temperature.
Questions
Why does my chart give a lower number than this calculator?
Charts use the factor 3 in 3 × KH × 10^(7 − pH). With the 25 °C constant from Plummer and Busenberg (1982) the factor is about 3.5, so the calculator's main figure is roughly 18 % higher at the same KH and pH [1]. The calculator shows both.
My tank has aqua soil or driftwood. Can I use this?
Only with caution. Humic substances, phosphate and many aqua soils buffer pH by themselves, so pH no longer tracks CO2 alone and the estimate reads high. A drop checker with its own 4 dKH reference solution avoids that problem; see how a drop checker works.
Other calculators
- Water-change dilutionWhat a water change does to nitrate, phosphate, TDS or any dissolved level, the change needed to hit a target, and where weekly dosing settles.
- 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.
Background reading
- CO2 & lightCO2 from KH and pH: the formula, the chart and where it breaksWhere the KH/pH/CO2 chart comes from, why its factor of 3 differs from the temperature-corrected 3.5, and the conditions under which both estimates fail.
- 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 & 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.
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 (K1) used by the calculator. Accessed October 12, 2026.
- Alkalinity and Water. U.S. Geological Survey, Water Science School. Alkalinity is the acid-neutralizing (buffering) capacity of water, set by bicarbonates, carbonates and hydroxides. Accessed October 12, 2026.
- Hardness of water: measurement units. Wikipedia. 1 German degree = 10 mg/L CaO = 17.848 mg/L as CaCO3. Accessed October 12, 2026.
- Alkaline Buffer. Seachem Laboratories. Conversion used in the product's directions: 1 meq/L of alkalinity is about 2.8 dKH. 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. Help text: a medium CO2 need is 6–14 mg/L; a high need approx. 15–25 mg/L. Accessed October 12, 2026.
- Fertiliser and CO2. Tropica Aquarium Plants. CO2 is added until the pH in Tropica's KH/pH table is reached; Medium plants about 10–15 mg/L, Advanced 15–30 mg/L. Accessed October 12, 2026.