CO2 / pH / KH Chart for Planted Tanks
Estimate dissolved CO2 from pH and KH with the classic planted-tank chart. Full table from pH 6.0 to 7.6 and KH 1 to 10, with the 20 to 30 ppm target zone highlighted.
In a high-tech planted tank, dissolved CO2 is the single biggest lever for plant growth and algae control. You cannot test CO2 directly with a standard kit, but you can estimate it from two values you can measure: your stable pH and your carbonate hardness (KH). This is the classic CO2 chart that planted-tank keepers have relied on for years, with the healthy 20 to 30 ppm target zone marked in bold.
Quick answer: Estimate dissolved CO2 with CO2 (ppm) = 3 x KH x 10^(7 - pH), using KH in dKH and your stable pH. The planted-tank target is 20 to 30 ppm (bold cells below). A tank at pH 6.8 with KH 5 sits near 24 ppm, right in range. This chart is an estimate that assumes carbonate-only buffering, so confirm with a drop checker and watch your fish for surface gasping. Dial in injection precisely with our CO2 calculator.
CO2 in ppm by pH and KH
Find your carbonate hardness (KH) in the left column and your stable daytime pH across the top. The cell shows approximate dissolved CO2 in ppm. Bold cells fall in the 20 to 30 ppm target zone for planted tanks.
| KH (dKH) | pH 6.0 | pH 6.2 | pH 6.4 | pH 6.6 | pH 6.8 | pH 7.0 | pH 7.2 | pH 7.4 | pH 7.6 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 30 | 19 | 12 | 7.5 | 4.8 | 3.0 | 1.9 | 1.2 | 0.8 |
| 2 | 60 | 38 | 24 | 15 | 9.5 | 6.0 | 3.8 | 2.4 | 1.5 |
| 3 | 90 | 57 | 36 | 23 | 14 | 9.0 | 5.7 | 3.6 | 2.3 |
| 4 | 120 | 76 | 48 | 30 | 19 | 12 | 7.6 | 4.8 | 3.0 |
| 5 | 150 | 95 | 60 | 38 | 24 | 15 | 9.5 | 6.0 | 3.8 |
| 6 | 180 | 114 | 72 | 45 | 29 | 18 | 11 | 7.2 | 4.5 |
| 7 | 210 | 133 | 84 | 53 | 33 | 21 | 13 | 8.4 | 5.3 |
| 8 | 240 | 151 | 96 | 60 | 38 | 24 | 15 | 9.6 | 6.0 |
| 9 | 270 | 170 | 108 | 68 | 43 | 27 | 17 | 11 | 6.8 |
| 10 | 300 | 189 | 119 | 75 | 48 | 30 | 19 | 12 | 7.5 |
How to read and use the chart
Test your KH with a standard carbonate hardness kit, then measure your tank pH when CO2 has been running for a few hours and has stabilized. Cross-reference the two on the chart to read your approximate CO2. If you land below the bold zone, increase your injection rate or improve circulation so CO2 spreads evenly. If you land above it, back off, because high CO2 stresses fish before it ever helps plants.
Notice the pattern: at a given KH, dropping pH by 0.2 roughly multiplies CO2 by 1.6, and at a given pH, doubling KH doubles CO2. That is why most planted-tank keepers settle a KH of 3 to 6 dKH, where the target zone falls at a comfortable, stable pH around 6.6 to 7.0. Our CO2 calculator runs the same formula for any exact pH and KH so you do not have to interpolate between cells.
CO2 Monitoring Gear
FZONE Aquatic CO2 Glass Drop Checker with 4dKH Solution
$12.99 on Amazon
Green means you are in the 20 to 30 ppm target zone.
Pawfly Glass CO2 Drop Checker Kit with Solution & Suction Cups
$9.99 on Amazon
Budget glass checker with indicator solution included.
Why this is an estimate, not gospel
The formula assumes carbonates are the only thing affecting pH. In the real world, phosphate buffers, peat, driftwood tannins, almond leaves, and pH-altering additives all shift pH independently of CO2. When they do, the chart reports a CO2 level that is too high or too low, sometimes badly so. If your numbers look great on the chart but plants pearl poorly or fish gasp, trust the fish and a drop checker over the table.
A drop checker sidesteps the problem because it is filled with a known 4 dKH reference solution sealed behind an air gap. It equilibrates only with the CO2 that crosses from your water, so its color reflects true dissolved CO2 regardless of what is buffering the tank. Blue means too little, green means the 20 to 30 ppm sweet spot, and yellow means dangerously high. Give it about an hour to react after any change.
Dialing CO2 in safely
Set injection so the drop checker reads a stable green by mid-photoperiod, then confirm fish are calm and breathing normally. Turn CO2 on an hour or two before lights and off an hour before lights out, using a solenoid on a timer, so plants get carbon when they can use it and CO2 does not build overnight when it cannot. Strong surface agitation at night helps off-gas excess and protects fish.
Never raise CO2 by dosing acids to lower pH. Those products change the very relationship this chart depends on and can crash pH without adding any usable carbon. Increase real CO2 through injection rate, a finer diffuser, and better flow. To match CO2 with the rest of a planted setup, see our fertilizer dosing calculator and lighting calculator, since carbon, nutrients, and light must balance.
More planted-tank references
For the chemistry behind KH and buffering, see our water hardness chart and the GH and KH explained guide. For target water values by species, the water parameters by species chart helps you keep CO2 in range without pushing pH outside your fishes comfort zone. All quick-lookup tables live in the reference charts hub.
Frequently Asked Questions
How does the CO2 pH KH chart work?
It estimates dissolved CO2 from two values you can measure: your stable pH and your carbonate hardness (KH). The formula is CO2 in ppm = 3 x KH x 10 raised to the power of (7 minus pH). Find your KH on the rows and pH on the columns, and the cell shows approximate CO2. The target for planted tanks is 20 to 30 ppm, which is bold in the chart below.
What is the ideal CO2 level for a planted tank?
Aim for 20 to 30 ppm of dissolved CO2 during the photoperiod. That range gives plants plenty of carbon for strong growth without stressing fish. Below about 15 ppm, growth slows and algae often takes over. Above 30 ppm, fish can begin gasping at the surface, and beyond roughly 40 ppm CO2 becomes dangerous. Always watch your livestock, not just the chart, when dialing in injection.
Why is the CO2 chart only an estimate?
The formula assumes carbonates are the only thing buffering your water and that no other acids or bases are present. Phosphate buffers, peat, driftwood tannins, and some pH-altering products throw it off, making the reading too high or too low. Treat the chart as a starting point, then confirm real CO2 with a drop checker filled with 4 dKH reference solution, which responds to actual dissolved CO2.
Can I just lower my pH to add more CO2?
When you inject CO2, pH naturally drops because CO2 forms carbonic acid in water, and that pH drop is how the chart tracks CO2. But you should never chase a CO2 number by dosing pH-down chemicals, because those acids change the chart relationship and can crash pH without adding any carbon. Increase CO2 by raising injection rate and improving distribution, then let pH settle where it lands.
What KH is best for a CO2 injected planted tank?
A KH of 3 to 6 dKH is a comfortable range for most planted tanks. It gives enough buffering to keep pH stable as CO2 fluctuates through the day, while still letting CO2 swing pH enough that a drop checker reads clearly. Very low KH under 2 makes pH twitchy and risks crashes, while very high KH needs much more CO2 to hit the target zone.
How do I confirm CO2 without relying on the chart?
Use a glass drop checker filled with the included 4 dKH reference solution and a bromothymol blue indicator. Air gap and all, it equilibrates with tank CO2 over about an hour and changes color: blue means too little CO2, green means the 20 to 30 ppm target, and yellow means too much. Because it uses a fixed reference KH, it sidesteps the buffering errors that fool the pH-KH chart.
Planning or running a tank?
Use our free calculators and guides to get every number right.
Aquarium Planner: $39