FinsFlora

pH/KH → CO2

Dissolved CO2 sets pH against your carbonate buffer, so if you know pH and KH you can work back to CO2. That's what every CO2 chart does. It's exact chemistry resting on one big assumption — that all your KH is carbonate — and on test kits that are coarser than most people think. This shows the chart number, a temperature-corrected number, and the spread your own measurements allow, so you can see how far to trust it.

Drop-count KH kits step in whole degrees, so ±0.5 is the best they can do; more if the colour change is hard to call.

Chart formula
—
3 × KH × 107−pH
Temperature-corrected
—

The chart

under 15 ppm 15–35 ppm (the usual planted-tank aim) over 35 ppm (watch the fish)

The bands are hobby convention, not a biological line — livestock tolerance varies with oxygen, surface agitation and species.

How this is calculated
CO2 + H2O ⇌ H⁺ + HCO3⁻        K1 = [H⁺][HCO3⁻] / [CO2]
⇒ [CO2] = [HCO3⁻] × 10^(pK1 − pH)

KH counts bicarbonate: 1 °dKH = 0.356652 mmol/L HCO3⁻
CO2 mg/L = 44.009 × 0.356652 × KH × 10^(pK1 − pH)
         = 15.696 × 10^(pK1 − 7) × KH × 10^(7 − pH)

Chart formula: CO2 = 3.0 × KH × 10^(7 − pH)     (equivalent to pK1 = 6.281)
Temperature-corrected: pK1(T) = 3404.71/T + 0.032786·T − 14.8435
  (T in kelvin; Harned & Davis 1943)   20 °C 6.382 · 25 °C 6.351 · 28 °C 6.336

Uncertainty: the formula evaluated at pH ± δ and KH ± δ; the band is
the lowest and highest result.

pH drop: with KH unchanged between the two samples, HCO3⁻ cancels:
  CO2_tank = CO2_degassed × 10^(pH_degassed − pH_tank)
  CO2_degassed = kH(T) × p(CO2, atm) × 44009 mg/mol
  kH(T) = 0.034 × exp(2400 × (1/T − 1/298.15)) mol/(L·atm)

Notes

  1. Low KH is where the chart is weakest. It assumes every unit of KH is bicarbonate. Humic and tannic acids from aquasoil and wood, and to a small degree phosphate, add to the KH test without being carbonate, so the chart reads CO2 high — and the lower your KH, the larger that share is. Kit resolution adds to it: ±0.5 °dKH is ±12% at KH 4 but ±25% at KH 2. Below about 3 °dKH, treat the chart number as a rough guide and use the pH-drop method or a drop checker instead.
  2. Chart constant versus theory. The chart's "3" corresponds to pK1 ≈ 6.28. Pure-water theory at 25 °C gives 6.35 (a constant of about 3.5). The difference is roughly what an ionic-strength (activity) correction for typical tank water would take back: γ for bicarbonate around 0.90–0.95 lowers the corrected figure by 5–10%. Our corrected number accounts for temperature only, not activity. Neither number is "the" answer, which is why both are shown.
  3. pH-drop baseline. Henry's law puts fully degassed water at about 0.6 ppm CO2 against 420 ppm outdoor air. The widespread "1.0 drop = 30 ppm" rule assumes a 3 ppm baseline, about five times higher. Indoor air often runs 600–1,500 ppm CO2, and a cup left out overnight is rarely fully equilibrated, both of which push the real baseline up. The ratio — each 1.0 of drop is 10× the degassed level — holds either way.
  4. Drop checkers run the same chart formula on a sealed reference solution. With the usual 4 °dKH solution, green (about pH 6.6) is 3 × 4 × 100.4 ≈ 30 ppm, and it lags the tank by an hour or two.