CO₂ Level Estimator (pH/KH)

Dissolved CO₂, pH, and carbonate hardness are chemically linked, so a pH and dKH reading gives a rough CO₂ estimate. Most injected planted tanks aim for 10–30 ppm.

30 ppm CO₂
Approaching livestock risk. Above ~30 ppm fish can start to struggle. Watch for gasping or lethargy, and increase surface agitation or dial back injection if you see it.

Uses CO₂ ppm = 3 × dKH × 10^(7 − pH). This assumes carbonates are the only buffer in the water — tannins, accumulated nitrate, or other acids depress pH and inflate the estimate. Treat the number as a ceiling, and trust a drop checker over this math.

Quick reference

pH 6.4 · 2 dKH
24 ppm
pH 6.4 · 4 dKH
48 ppm
pH 6.4 · 8 dKH
96 ppm
pH 6.8 · 2 dKH
10 ppm
pH 6.8 · 4 dKH
19 ppm
pH 6.8 · 8 dKH
38 ppm
pH 7.2 · 2 dKH
4 ppm
pH 7.2 · 4 dKH
8 ppm
pH 7.2 · 8 dKH
15 ppm

Why this is an estimate, not a measurement

The formula assumes your pH is set entirely by the balance between CO₂ and carbonate buffering. Real tanks contain other acids — driftwood tannins, humic substances from botanicals, and accumulated nitrate — that pull pH down without any extra CO₂ present. Every one of those makes this estimate read high, sometimes dramatically so in blackwater or long-neglected tanks. A drop checker filled with 4 dKH reference solution responds only to CO₂ and is the better instrument when the number actually matters.

What the math is genuinely good for is trend and sanity checks. If your degassed morning pH and your lights-on afternoon pH differ by a full point at the same KH, your CO₂ is swinging roughly tenfold across the day, and that instability stresses both plants and fish more than any single reading. Fish behavior is the final arbiter: gasping at the surface or lethargy at lights-on means too much CO₂ regardless of what any formula says.