CO2 / pH / KH Calculator

In a planted tank, light and fertiliser can both be right and the plants will still stall if CO2 is wrong. Read dissolved CO2 from your measured pH and KH.

All tools
Calculation method

Calculates CO₂ from measured KH and pH.

Live result19 mg/LOn target
Inputs
4 dKH
6.8 pH

Results

19mg/LDissolved CO2
Optimal — planted tank target band
Drop checker drawing: at 19 mg/L CO2 the indicator liquid reads this colour.
Drop checker

Expected colour with a 4 dKH reference solution.

KH equivalents71.4 ppm CaCO₃1.43 meq/L
Target range and calculation limits

Target band. A planted tank targets 15–30 mg/L. Above 35 mg/L fish begin to show respiratory distress. Start CO2 one to two hours before the lights and cut it an hour before they go off.

Where this calculation stops. The relationship only holds when all of the KH comes from carbonates. Phosphate buffers, peat, wood tannins or commercial pH buffers lower the pH independently of the carbonate equilibrium, and the formula then reports a CO2 level that is not really there. That is precisely why drop checkers exist. If you suspect buffering, use the pH drop method in the third tab.

Stuck setting up your CO2 system?

Diffuser choice, flow distribution and light-to-CO2 timing are where setups most often go wrong. Tell us about your project and we will take a look together.

Get in touch
pH × KH → CO2 chart
Rows are measured pH, columns are carbonate hardness in dKH. Cell values are dissolved CO2 in mg/L. Green cells are the planted-tank target band.
pH \ KH1234568101215
6.0306090120150180240300360450
6.218.937.956.875.794.6114151189227284
6.411.923.935.847.859.771.795.5119143179
6.67.515.122.630.137.745.260.375.490.4113
6.84.89.514.31923.828.53847.557.171.3
7.036912151824303645
7.21.93.85.77.69.511.415.118.922.728.4
7.41.22.43.64.867.29.611.914.317.9
7.60.81.52.333.84.567.5911.3
7.80.511.41.92.42.93.84.85.77.1
8.00.30.60.91.21.51.82.433.64.5
Low (<8)Moderate (8–15)Optimal (15–30)High (30–35)Risky (>35)
How to calculate CO2
  1. Measure KH

    Read carbonate hardness in dKH with a drop test. KH barely moves through the day; once a week is enough.

  2. Measure pH at the right hour

    CO2 swings across the day. Measure two to three hours after the lights come on, once the system has settled. A morning reading comes out misleadingly low.

  3. Enter both values

    The calculator returns dissolved CO2 in mg/L and shows where you sit relative to the target band.

  4. Switch method if buffers are suspected

    With phosphate buffers, peat or wood tannins the absolute pH no longer reflects the carbonate equilibrium. The pH-drop method in the third tab gives the right answer instead.

  5. Adjust gradually

    Never raise CO2 in one step. Add a quarter bubble per second per day and watch the fish; reach the target band over several days.

Frequently asked

How do you calculate CO2 in an aquarium?

Measure carbonate hardness and pH, then apply CO2 (mg/L) = 3 × KH (dKH) × 10^(7 − pH). A tank reading KH 4 and pH 6.8 holds roughly 19 mg/L of dissolved CO2. The relationship is derived from the carbonate equilibrium and every common CO2 chart uses it.

What is the ideal CO2 level for a planted tank?

The target band is 15–30 mg/L. Below it, plants cannot use the light they are given and algae gain the advantage; above 35 mg/L fish start showing respiratory distress. Aim at the lower end in a low-light layout and the upper end in a high-light one.

Why does the CO2 formula sometimes give the wrong answer?

It only holds when all of the KH comes from carbonates. Phosphate buffers, peat, wood tannins or commercial pH buffers lower the pH independently of the carbonate equilibrium, and the formula then reports CO2 that is not really there. That is exactly why drop checkers exist: the 4 dKH reference solution inside them is unaffected by whatever is buffering your tank water.

Why do drop checkers use a 4 dKH reference solution?

In a 4 dKH solution, the point where bromothymol blue turns green corresponds to roughly 30 mg/L of CO2; blue reads low and yellow reads risky. Because the reference is distilled water of known hardness rather than tank water, buffering does not affect it. The trade-off is that gas diffusion is slow, so a drop checker lags by an hour or two.

How do you use the pH-drop method?

Take a glass of tank water and aerate it for 24 hours so its CO2 equilibrates with the air. The difference between that sample's pH and the tank's pH gives your CO2: every 1 unit of drop means ten times the CO2. Degassed water is conventionally taken as 3 mg/L, so a 1 unit drop works out to roughly 30 mg/L.

Will adding CO2 crash the pH if KH is low?

KH is the water's resistance to pH change. At 1–2 dKH, adding CO2 makes the pH swing fast and wide, which stresses fish. In a soft-water layout, raise CO2 in smaller steps or bring KH into the 3–4 dKH band first.