Aquarium CO2 Calculator (pH & KH)

Estimate how much dissolved CO2 is in your planted tank from a pH and KH test. You get the classic chart value, a temperature-corrected value, and a quick check against the safe range.

Your test results

Test with CO2 running, at the same time each day
—
—Temperature-corrected
—KH in dKH
—pKa at your temperature

How to use this calculator

  1. Test pH while CO2 is on, ideally in the middle of the lighting period when CO2 has had time to build up. Use a low-range pH kit or a calibrated pH pen.
  2. Test KH (carbonate hardness, sometimes labelled "alkalinity"). Enter it in degrees, ppm or meq/L.
  3. Enter the water temperature. It only affects the temperature-corrected value.
  4. Compare the chart value with the target ranges below. The 30 ppm hobby target and the standard drop checker are both based on the chart formula, so the chart value is the one to compare.
Safety first: CO2 overdose is one of the most common causes of sudden fish deaths in planted tanks. If fish gasp at the surface, turn the CO2 off and add strong surface movement or an air stone straight away, whatever the calculator says.

How much CO2 is right?

Chart CO2What it means
Below 10 ppmLittle or no injected CO2. Normal for tanks without a CO2 system.
10–20 ppmModerate. About 15 ppm is plenty for low-light planted tanks and is gentler on fish.
20–30 ppmTypical range for high-light planted tanks. 30 ppm is the usual target.
31–40 ppmAbove the 30 ppm level most guides treat as the safe ceiling. Watch fish closely.
40 ppm and upToo high for most fish and shrimp. Reduce CO2 now.

These bands summarise guidance from Practical Fishkeeping and CO2Art, which both put the target and the safe upper limit at about 30 ppm, and about 15 ppm for low-energy tanks.

The formula

The hobby calculation that most charts use is:

CO2 (ppm) = 3 × KH (dKH) × 10(7 − pH)

It comes from the carbonate equilibrium. Carbonate hardness tells you how much bicarbonate is in the water, and pH tells you the ratio between bicarbonate and dissolved CO2:

CO2 (mg/L) = 15.70 × KH (dKH) × 10(pKa − pH)

Here 15.70 is the CO2 (in mg/L) that pairs with 1 dKH of bicarbonate when pH equals pKa: 1 dKH = 17.848 mg/L CaCO3 = 0.3566 mmol/L bicarbonate, multiplied by 44.01 mg/mmol for CO2. pKa is the first dissociation constant of carbonic acid. It changes with temperature: about 6.38 at 20 °C (68 °F) and 6.35 at 25 °C (77 °F), using the equation of Plummer and Busenberg (1982).

The classic factor of 3 corresponds to a pKa of about 6.28, so the chart reads about 15 to 20% lower than the temperature-corrected value. The chart has become the hobby standard, and the "30 ppm" target and 4 dKH drop checker are calibrated to it, so the calculator shows the chart value as the main result.

Worked example

Your tank tests at pH 6.6 and KH 4 dKH, at 77 °F (25 °C).

Chart value: 3 × 4 × 10(7 − 6.6) = 12 × 100.4 = 12 × 2.512 = 30.1 ppm. That is right at the usual high-tech target.

Temperature-corrected: 15.70 × 4 × 10(6.352 − 6.6) = 35.5 ppm.

pH / KH / CO2 chart

CO2 in ppm using the classic formula. The 20–30 ppm band is the usual target for high-light planted tanks.

KH (dKH)pH 6.06.26.46.66.87.07.27.47.6
1301912853211
260382415106422
390573623149642
41207648301912853
515095603824151064
6180114724529181175
82401519660382415106
1030018911975483019128

Why the pH/KH method can be wrong

The formula assumes that carbonic acid is the only thing setting the pH. In a real aquarium that is often not true:

  • Other acids and buffers. Tannins from driftwood, peat, active soils, nitric acid from the nitrogen cycle, phosphate and "pH buffer" products all move pH without changing CO2. Active aqua soils, which buffer pH on their own, make the chart especially unreliable.
  • Test kit error. According to Practical Fishkeeping, an error of just 0.2 pH or 0.5 KH can push the answer well above or below the real value. Because pH is a log scale, each 0.3 drop in pH roughly doubles the calculated CO2.
  • Daily swings. CO2 is lowest before lights-on and highest late in the photoperiod. One test only tells you about that moment.

A more reliable approach is to measure the pH drop: test pH from a glass of tank water that has been left out for 24 hours (CO2 fully gassed off), then test the tank with CO2 running. A drop of about 1.0 pH means the tank has roughly ten times the CO2 of air-equilibrated water. Many planted tank keepers use this along with a drop checker.

Drop checkers

A drop checker holds a small amount of 4 dKH reference water with a pH indicator, separated from the tank by an air gap. Only CO2 crosses the gap, so other acids and buffers in the tank do not affect it. With 4 dKH solution, green means about 30 ppm, blue means low and yellow means too much. CO2Art notes that the color shows what the CO2 was an hour or two ago, so make changes slowly over several days.

Frequently asked questions

How much CO2 should a planted tank have?

Around 30 ppm is the usual target for high-light planted tanks and is treated as the safe ceiling for most fish and shrimp. Low-light tanks do well with about 15 ppm, which carries less risk to livestock.

Is the pH/KH CO2 chart accurate?

Only roughly. The chart assumes carbonate is the only buffer in the water. Driftwood tannins, peat, phosphate, nitric acid and pH buffer products all change pH without changing CO2, so the chart often over- or underestimates. A test error of 0.2 pH or 0.5 KH also shifts the answer a lot.

Why does the temperature-corrected result differ from the chart?

The classic chart uses a fixed factor of 3, which matches a carbonic acid pKa of about 6.28. Measured pKa values are about 6.38 at 20 °C and 6.35 at 25 °C, which gives roughly 15 to 20 percent more CO2 for the same pH and KH. The 30 ppm hobby target and the 4 dKH drop checker are both based on the classic chart, so compare targets against the chart number.

What color should my drop checker be?

With the standard 4 dKH reference solution, green means about 30 ppm, blue means CO2 is low and yellow means too much. Aim for a darker green rather than yellow-green, and remember the color shows what CO2 was one to two hours ago.

How do I convert KH in ppm to dKH?

Divide the KH in ppm (mg/L as CaCO3) by 17.848. For example, 71.4 ppm is 4.0 dKH. To convert dKH to meq/L, multiply by 0.357.

Related calculators

Sources: CO2 targets and chart accuracy from Practical Fishkeeping, "CO2: Striking the balance". Drop checker colors and lag from CO2Art, "7 things you need to know about drop checkers". Carbonic acid pKa vs temperature from Plummer, L.N. & Busenberg, E. (1982), Geochimica et Cosmochimica Acta 46, 1011–1040, as used in the USGS PHREEQC database. Hardness unit definitions (1 °dH = 10 mg/L CaO = 17.848 mg/L CaCO3) from Hardness of water.

Last updated: October 2026