Water chemistry

KH, GH and the CO₂–pH triangle: the carbonate chemistry your aquarium relies on

Three test results — KH, pH, and CO₂ — are linked by a buffering reaction that has been studied in rivers and lakes for decades. Understanding that reaction explains why low KH causes pH crashes, why the CO₂ chart works (and when it doesn't), and why GH is an entirely different measurement that gets confused with KH constantly.

Side-by-side diagram showing how the same CO₂ dose causes a large pH crash in low-KH water and a small pH drop in high-KH water, illustrating carbonate buffering

Every planted tank guide mentions the KH/pH/CO₂ triangle. Most present it as a chart to look up, with little explanation of what it represents or why it sometimes gives the wrong answer. The underlying chemistry comes from aquatic science — the same carbonate buffering system studied in rivers, lakes, and groundwater — and understanding it makes the chart make sense, including its limitations.

Two tests, two different things

GH and KH are not measuring the same thing

GH (general hardness) measures the concentration of calcium (Ca2+) and magnesium (Mg2+) ions dissolved in your water. These are the ions responsible for limescale on heaters and glassware. They matter for fish physiology — many species have evolved in waters of specific GH ranges and struggle to osmoregulate outside them — and they are essential macronutrients for aquatic plants.

KH (carbonate hardness) — also called alkalinity in the scientific literature — measures bicarbonate (HCO3-) and carbonate (CO32-) ions. Despite sharing the word "hardness," KH measures something completely different from GH: the water's capacity to resist pH change. It is KH, not GH, that controls how CO₂ affects your pH.

Both are expressed in degrees of hardness (°dH), which compounds the confusion. A reading of "5 dGH" and "5 dKH" are measuring entirely different ions. A tank can have high GH and low KH, or low GH and high KH — they are independent. Tap water in chalk or limestone areas tends to have both high GH and high KH because the same rock dissolution that releases calcium also releases bicarbonate. But this is a geological coincidence, not a chemical rule.

The practical distinction
GH matters for fish welfare and plant nutrition. KH matters for pH stability and CO₂ injection. When hobbyists talk about "the CO₂ triangle," they always mean KH — not GH. Testing both is worthwhile, but they answer different questions.

The chemistry behind KH

The carbonate buffering reaction

The science of how KH controls pH is described in Werner Stumm and James Morgan's Aquatic Chemistry: Chemical Equilibria and Rates in Natural Waters (3rd ed., Wiley, 1996) — the standard graduate-level reference on natural water chemistry, cited across the aquatic science literature. More recent freshwater-specific research by Stets et al. (2017, Global Biogeochemical Cycles) and Shangguan et al. (2025, Limnology and Oceanography Letters) confirms the same mechanisms in rivers and streams.

When carbon dioxide dissolves in water, it reacts with water molecules and undergoes a reversible dissociation:

The core reaction:
CO2(aq) + H2O  ⇌  H+ + HCO3-

Dissolved CO₂ reacts with water to produce hydrogen ions (H+) — which lower pH — and bicarbonate ions (HCO3-). The reaction is reversible and reaches chemical equilibrium.

This reaction is where KH enters. Bicarbonate ions (HCO3-) already present in the water — your KH reading — act as a buffer. When extra CO₂ is added, the reaction shifts right, producing more H+ and more HCO3-. But the H+ ions produced encounter the existing bicarbonate reservoir and are partially absorbed before they can lower pH further. The more bicarbonate already in the water, the more H+ can be absorbed, and the less pH changes.

This is Le Chatelier's principle — a system in equilibrium resists change by shifting in the direction that partially counteracts it. Shangguan et al. (2025) describe this directly: "the addition or removal of CO₂ is nonlinear due to the ionization of CO₂ to H+ + HCO3-... CO₂ concentration can be buffered despite large changes in the DIC pool, and the effect is greatest in high-pH, high-alkalinity waters." Stets et al. (2017) confirmed in US surface water data that the relationship between CO₂ and pH is measurably weakened in high-alkalinity environments — the buffering absorbs the signal.

The same mechanism works in reverse. When plants photosynthesise and consume dissolved CO₂, the equilibrium shifts left — some of the water's bicarbonate converts back into CO₂ to partially replace what was removed. High-KH water resists both the daytime CO₂ drawdown by plants and the overnight CO₂ build-up from respiration. This is exactly why KH matters for CO₂ injection: the buffer works in both directions.

The CO₂/KH/pH chart

Where the chart comes from — and what it assumes

The widely reproduced CO₂/KH/pH triangle chart used in planted tank circles is a tabulation of the carbonate equilibrium equations. For freshwater aquarium purposes, it is commonly expressed as a simplified formula:

The aquarium CO₂ estimation formula:
CO2 (mg/L) ≈ 3.0 × KH (dKH) × 10(7.00 − pH)

This gives an approximate dissolved CO₂ concentration from a KH measurement and a pH reading.

This formula is derived mathematically from the carbonate equilibrium equations in Stumm and Morgan (1996), using the pKa1 value for the CO₂/bicarbonate dissociation (approximately 6.35 at 25°C) and the conversion factor between dKH and milliequivalents of bicarbonate.

What it shows: for the same pH reading, a higher-KH tank contains substantially more dissolved CO₂. To bring a high-KH tank to the same dissolved CO₂ level as a low-KH tank, you need a larger pH drop from baseline.

What the chart assumes — and where it breaks down

The formula works cleanly under specific conditions that do not always apply in a real aquarium:

Assumption 1: Only bicarbonate is buffering pH. In practice, organic acids from driftwood, peat, and botanicals contribute H+ ions independently of CO₂. This makes pH lower than the formula predicts for a given CO₂ level — the chart will underestimate CO₂ in heavily tannic water. Similarly, phosphate buffers (from some fertilisers) interfere with the simple bicarbonate model.

Assumption 2: Temperature is close to 25°C. The pKa values for the carbonate dissociation are temperature-dependent. At 20°C vs 28°C, the equilibrium shifts measurably. The formula is calibrated for approximately 25°C; in cold or very warm tanks, the calculated CO₂ will be off.

Assumption 3: KH consists primarily of bicarbonate. At aquarium pH (6.5–8.0), this is largely true — carbonate ions (CO32-) dominate only above pH 10.3, and bicarbonate dominates in the typical aquarium range. But at very low KH with high organic acid content, the assumption weakens.

An important note on the chart's scientific status
No peer-reviewed aquarium study has directly validated the KH/pH/CO₂ chart in a closed CO₂-injected system. The formula is mathematically derived from well-established carbonate chemistry — the underlying equilibrium equations are not in dispute. But the chart is a model, not a direct measurement. In tanks with significant organic acid buffering (blackwater, heavily planted with driftwood), or at temperatures well above or below 25°C, the model is less accurate. Direct CO₂ measurement via a calibrated drop checker, inline probe, or gas analyser is always more reliable than inferring CO₂ from pH and KH alone.

"The KH/pH/CO₂ chart is derived from aquatic chemistry equations established in peer-reviewed science. What is missing is a peer-reviewed aquarium study directly validating those equations in a closed injected-CO₂ system. The chart is a model — useful, mathematically grounded, but not infallible."

Low KH and pH crashes

Why very low KH causes pH crashes

At KH below 1–2 dKH, the water contains almost no bicarbonate reserve. The buffering mechanism described above cannot operate at any meaningful scale — there is insufficient HCO3- to absorb incoming H+ ions. Any CO₂ addition (from injection, fish respiration, microbial decomposition) causes a rapid pH drop. Any CO₂ removal (plant photosynthesis, strong surface agitation) causes a rapid pH rise.

This is why ultra-soft water aquariums — blackwater biotopes, breeding tanks for soft-water species — can experience diurnal pH swings of 1.5–2.0 units or more without any CO₂ injection. Plants consuming CO₂ during the photoperiod can raise pH from 6.2 to 7.8; overnight respiration drives it back down. Both swings can stress fish.

With CO₂ injection, the crash risk is acute. If CO₂ continues to run overnight and KH is very low, pH can fall to 5.5–6.0 or below within hours — values that cause physiological stress or death in most community fish. The overnight CO₂ shutdown that experienced planted tank keepers treat as non-negotiable exists precisely because of this relationship. The dissolved oxygen guide covers the parallel overnight DO drop that CO₂ injection also causes — the two effects compound each other.

The pH drop method and why KH must be known

A common approach to managing CO₂ in planted tanks is the "pH drop method": measure your baseline pH without CO₂ injection (morning, before lights on), then target a drop of a specific number of pH units with CO₂ on. A 1.0 unit drop is a common target.

This method only gives useful CO₂ information if KH is known and stable. A 1.0 pH unit drop in a KH 2 tank represents approximately 6 mg/L CO₂. The same 1.0 pH unit drop in a KH 5 tank represents approximately 15 mg/L CO₂. The pH drop alone tells you nothing about actual CO₂ concentration without the KH anchor.

KH can also drift. Water changes with tap water of different KH — or with RO water — shift the baseline. Certain substrates and rocks (limestone, coral sand, some lava rocks) continuously raise KH by releasing carbonates into the water. If KH changes between tests, the same pH reading means a different CO₂ level. Testing KH regularly, especially after water changes or when CO₂ behaviour seems to have shifted, is important for CO₂ management through the pH monitor method.

CO₂ injection in practice

What your KH means for CO₂ dosing

Three KH scenarios, based on hobbyist experience and the carbonate chemistry — note that specific CO₂ recommendations per KH range are practical consensus in the planted tank community, not independently verified in peer-reviewed aquarium literature:

Very low KH (0–2 dKH): pH responds sharply to small CO₂ changes — easy to overshoot a safe CO₂ level, and the organic acid interference means the chart is least reliable here. A pH crash overnight is a real risk with injection. Some hobbyists deliberately maintain very low KH for soft-water species (discus, Altum angels, cardinal tetras) and accept the instability, compensating with conservative CO₂ dosing and a reliable solenoid. The formula is informative but should not be trusted as precisely as in harder water.

Moderate KH (3–6 dKH): The most commonly cited "sweet spot" for planted CO₂ tanks. The bicarbonate buffer provides meaningful stability without requiring excessive CO₂ injection to produce a working pH drop. The chart formula performs reasonably well in this range at typical temperatures. This recommendation is based on practical experience in the hobby rather than a published study.

High KH (7+ dKH): Hard tap water. Significant CO₂ injection is required to produce a meaningful pH drop because the large bicarbonate reservoir absorbs much of the added CO₂ before pH responds. The tank is very stable — low crash risk — but CO₂ efficiency is lower. Hobbyists in hard-water areas often partially soften with RO water (mixed via the RO Mixer) to bring KH down to a more workable range before injecting CO₂. See the CO₂ stability guide for how this affects the whole CO₂ injection strategy.

GH — the other measurement

What GH actually does

General hardness — calcium and magnesium — plays an entirely separate role from pH buffering. Fish species have evolved in waters of specific GH ranges, and osmoregulation — the process by which fish maintain correct internal ion concentrations — depends on the ion balance between body fluids and surrounding water. Rift lake cichlids (Malawi, Tanganyika) require high GH, typically 10–20 dGH; soft-water species from Amazonian blackwater rivers (cardinal tetras, Altum angelfish, apistogramma) require very low GH, often below 4 dGH. Most common community fish from rivers with moderate hardness tolerate a wide range.

For aquatic plants, calcium and magnesium are essential macronutrients taken up directly by roots and leaves. Calcium deficiency produces distorted, curling new growth; magnesium deficiency produces interveinal chlorosis on older leaves. Most tap water supplies adequate GH for plants. RO water — which strips both GH and KH — must be remineralised before use in a planted tank. When remineralising, the target GH and KH are set independently depending on species requirements; raising one does not automatically raise the other unless the remineralisation product contains carbonates alongside calcium and magnesium.

GH and the scientific literature
The relationship between GH and fish physiology is well established in fish biology and aquaculture research. However, specific peer-reviewed studies validating optimal GH ranges for hobbyist planted aquariums are limited — the GH guidance commonly given in the hobby is derived from species ecology surveys and general mineral nutrition principles rather than controlled aquarium experiments.

How everything connects

KH, CO₂, and your pH Monitor reading

If you are using the AquaCalc pH Monitor to log CO₂ sessions, KH is the essential companion measurement. The pH curve the monitor records — the rise at lights-on as plants consume CO₂, the drop as CO₂ injection begins, the overnight drift — is shaped entirely by your KH. Two tanks injecting the same CO₂ volume can show completely different pH curves if their KH values differ.

A KH test takes two minutes and costs pence per test. Running it monthly, and after any significant water change with different source water, gives you the anchor value that makes your pH readings meaningful. Without it, pH alone tells you the water is acidic or alkaline; with it, pH tells you your CO₂ concentration.

For the biological context — what CO₂ and pH together mean for fish physiology, how the overnight CO₂ build-up interacts with dissolved oxygen — see the dissolved oxygen guide and the CO₂ stability explainer. For how water changes interact with KH, see the water changes guide.

Quick reference

Quick reference

GH vs KH at a glance

TestWhat it measuresPrimary relevance
GHCa2+ + Mg2+ (calcium + magnesium)Fish osmoregulation; plant mineral nutrition
KHHCO3- + CO32- (bicarbonate + carbonate)pH buffering capacity; CO₂/pH relationship
pHH+ concentrationFish health; CO₂ estimation (combined with KH)

KH range and CO₂ behaviour*

KH (dKH)Buffer descriptionCO₂ injection behaviour
0–1Almost no bufferSharp pH response; crash risk; chart unreliable
2–3Light bufferModerate stability; chart less accurate with organics
4–6Good buffer*Stable dosing; chart works reasonably well
7–10Strong bufferHigh CO₂ demand to produce pH drop; very stable
10+Very strong bufferCO₂ injection becomes impractical; consider RO blending

* "Good buffer" range is hobbyist consensus based on practical experience, not a peer-reviewed aquarium study.

CO₂ estimation formula (from carbonate equilibrium chemistry)
CO2 (mg/L) ≈ 3.0 × KH (dKH) × 10(7.00 − pH)

Derived from Stumm & Morgan (1996) carbonate equilibrium equations. Assumes a pure bicarbonate system at ~25°C. Less accurate in: blackwater tanks with organic acids, temperatures below 18°C or above 28°C, tanks with phosphate additives, or KH below 2 dKH.

Sources
The carbonate buffering mechanism described in this article is drawn from:
— Stumm, W. & Morgan, J.J. (1996). Aquatic Chemistry: Chemical Equilibria and Rates in Natural Waters, 3rd ed. Wiley. The foundational reference for carbonate equilibrium in natural water chemistry.
— Stets, E.G. et al. (2017). Carbonate buffering and metabolic controls on carbon dioxide in rivers. Global Biogeochemical Cycles, 31(4), 663–677. DOI: 10.1002/2016GB005578.
— Shangguan, Q. et al. (2025). Freshwater carbonate buffering revisited. Limnology and Oceanography Letters, 10(5), 619–635. DOI: 10.1002/lol2.70047.

The CO₂/KH/pH chart and KH range recommendations are hobbyist conventions derived from carbonate equilibrium mathematics. No peer-reviewed aquarium study has independently validated these in a closed CO₂-injected system.

Newsletter

New articles to your inbox

Science-backed guides delivered when there is something worth reading. No spam. Unsubscribe any time.

More articles

View all →
Dissolved oxygen in aquariums: what the thresholds mean and what low levels do to fish
11 min read
UV sterilisers: what they actually kill — and what they don't
9 min read
UV dose: why flow rate matters more than watt rating
8 min read