CO2 Calculator

    Aquarium CO2 Calculator

    Dial in CO2 for a thriving planted tank — convert KH and pH to dissolved CO2 ppm, read the drop checker chart, and get a safe starting bubble rate for your tank size.

    Reviewed by the AquariumStocking teamUpdated

    CO2 calculators

    CO2 from KH & pH

    Enter your carbonate hardness (dKH) and current tank pH.

    Typical: 2–8 dKH

    Measured during photoperiod

    Dissolved CO2
    19.0 ppm
    Ideal
    015304560+ ppm

    Sweet spot for planted tanks. Fish are safe and plants photosynthesize well.

    Formula assumes the pH shift comes purely from CO2. Phosphate buffers, driftwood tannins, and peat make the number read artificially high — see the accuracy note below.

    Starting Bubble Rate

    Conservative starting point in bubbles per second, based on tank volume and light level.

    Recommended starting range
    2.03.3bubbles / sec
    120200 bubbles per minute
    • Start at the low end, increase 1 bps every 24 hours.
    • Turn CO2 on 1–2 hours before lights, off 1 hour before lights out.
    • Always confirm with a drop checker — bubble counters drift.

    CO2 / KH / pH chart

    The classic aquarium CO2 chart. Rows are carbonate hardness (dKH), columns are pH. Cells are colored by fish-safety range and the cell matching your inputs above is highlighted.

    < 15 ppm — too low 20–30 ppm — ideal 30–40 ppm — high > 40 ppm — danger
    KH \ pH6.06.26.46.66.87.07.27.47.6
    0.51596422110
    1301912853211
    260382415106422
    390573623149642
    41207648301912853
    51509560382415964
    6180114724529181175
    7210133845333211385
    82401519660382415106
    1030018911975483019128
    1236022714390573623149
    154502841791137145281811

    Values shown in ppm. Formula: CO2 (ppm) = 3 × KH(dKH) × 10(7 − pH).

    How KH, pH and CO2 are linked

    When CO2 dissolves in water it forms carbonic acid (H₂CO₃), which releases H⁺ and pulls pH down. Carbonate hardness (KH) is the water's buffering capacity — it neutralizes that acid. The three values are mathematically tied together, which is why measuring any two lets you calculate the third.

    In a stable aquarium a 1.0 pH drop from injecting CO2 corresponds to roughly 30 ppm dissolved CO2, regardless of the starting KH. That's the "1 pH drop" method planted-tank keepers use to dial in injection.

    Accuracy caveat — read this

    The KH/pH/CO2 formula assumes CO2 is the only acid affecting pH. That's often false in real aquariums:

    • Driftwood and botanicals release tannins that lower pH.
    • Buffering substrates like aquasoil, and additives like peat, actively pull pH down.
    • Organic acids from decaying matter shift pH independently.

    When any of these are present the calculator (and the chart above) will read artificially high. If the calculated CO2 and your drop checker disagree, trust the drop checker.

    Signs of too much CO2 in fish: gasping at the surface, rapid gill movement, lethargy, loss of color. If you see any of these, cut CO2 immediately and add surface agitation.

    Drop checker color chart

    A drop checker filled with 4 dKH reference solution gives you an at-a-glance readout of CO2 concentration with a 1–2 hour lag. It's the single most trustworthy indicator you can add to a planted tank.

    Blue
    < 15 ppm

    Too little CO2. Plants pearl weakly and algae gains an edge. Increase injection.

    Green
    20–30 ppm

    Ideal. Plants photosynthesize actively and fish stay safe. Hold steady.

    Yellow
    > 40 ppm

    Danger. Fish gasp at surface — reduce injection immediately and add surface agitation.

    Target CO2 → target pH

    Enter the CO2 level you want and your KH — see the pH your tank should drop to.

    Target pH during photoperiod
    6.60

    Measure your morning (lights-off) pH first, then inject CO2 until the pH settles at this value.

    Cylinder duration estimate

    Rough time a CO2 cylinder lasts at your injection rate.

    Estimated cylinder life
    43.8months

    Ballpark only — actual life depends on diffuser efficiency, working pressure, and cylinder fill quality.

    Safety rules

    • • Never inject CO2 without a solenoid on a timer.
    • • Add surface agitation at night to off-gas CO2.
    • • Stop dosing if fish gather at the surface or breathe rapidly.
    • • Test KH and pH weekly for the first month.
    • • Keep a spare regulator diaphragm — end-of-tank dumps happen.

    How the math works

    Dissolved CO2 is derived from the carbonic acid equilibrium: as CO2 dissolves it forms H₂CO₃, which lowers pH proportionally to KH.

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

    The equation is only reliable when the pH drop is caused by CO2. Water with phosphate buffers, tannins, or organic acids reads high.

    Frequently asked questions

    How do I calculate CO2 from pH and KH?

    Use CO2 (ppm) = 3 × KH(dKH) × 10^(7 − pH). Measure KH with a titration test kit and pH during the photoperiod. The calculator above and the chart on this page both use that formula.

    What CO2 level is safe for fish and best for plants?

    20 to 30 ppm is the planted-tank sweet spot. Plants photosynthesize efficiently at that range and fish stay safe. Above 40 ppm CO2 becomes toxic to most freshwater fish.

    What do drop checker colors mean?

    A drop checker filled with 4 dKH reference solution reads blue below ~15 ppm (too low), green at 20–30 ppm (ideal), and yellow above ~40 ppm (dangerous). The color lags actual tank CO2 by roughly 1–2 hours.

    Why does my calculated CO2 not match my drop checker?

    The KH/pH/CO2 formula assumes CO2 is the only acid affecting pH. Tannins from driftwood, buffering substrates like aquasoil, peat, and organic acids all lower pH independently and make the calculator read falsely high. Trust the drop checker.

    How many bubbles per second should I start with?

    A medium-light 40 gallon planted tank typically starts around 2–3 bubbles per second. Always tune to a drop checker rather than a fixed number — diffuser efficiency, surface agitation, and photoperiod all change the target.

    How do I raise CO2 safely without gassing my fish?

    Increase injection by about 1 bubble per second every 24 hours while watching fish behavior. Turn CO2 on 1–2 hours before lights, off 1 hour before lights out. Add surface agitation at night. If fish gasp at the surface or breathe rapidly, cut CO2 immediately.

    Running CO2? Dial in your ferts

    High CO2 without matched macros and micros just grows algae. Use the dosing calculator to balance nitrogen, phosphorus, and potassium for your tank size and light.