KH

Carbonate hardness (KH)

How much acid your water can absorb before pH crashes. The carbonate buffer that holds pH steady — and the one that lies about CO₂ when it's wrong.

Ideal rangeVaries by tank — see body

KH (carbonate hardness) is the water's buffer against pH swings — the reserve of bicarbonate that absorbs acid before it can move the pH. For a typical community tank, 3–8 °dKH is a comfortable band; below 1 °dKH the buffer is effectively spent and the pH can crash overnight. One degree, 1 °dKH, equals 17.86 ppm CaCO₃ (0.357 meq/L).

What is carbonate hardness (KH)?

Carbonate hardness measures the concentration of bicarbonate (HCO₃⁻) and carbonate (CO₃²⁻) ions in the water — the substances that absorb hydrogen ions and stop pH from swinging. It's measured in degrees German carbonate hardness (°dKH); 1 °dKH ≈ 17.86 ppm CaCO₃ ≈ 0.357 meq/L. KH and GH are often confused but measure different things — the GH vs KH guide untangles them.

The direction of travel matters more than the definition. A running tank is a net acid producer: fish respire CO₂, nitrifying bacteria release hydrogen ions turning ammonia into nitrate, wood and botanicals leach organic acids — and every one of those withdrawals spends buffer. Nothing in a normal freshwater tank puts carbonate back on its own, so KH only ever drifts downwards between water changes. The why KH drops guide traces each drain — nitrification alone burns roughly 7.1 g of CaCO₃-equivalent buffer per gram of ammonia-nitrogen processed.

What KH should you aim for?

For a typical community tank, 3–8 °dKH — enough buffer to flatten the daily CO₂ swing, not so much that the pH locks alkaline. Beyond that there is no universal ideal — KH is the one hardness number you set to match your livestock and CO₂ regime, not a target every tank should hit. A discus or wild-caught soft-water tank wants 1–3 °dKH; a planted Iwagumi running CO₂ is comfortable at 4–6; a Tanganyika or Malawi cichlid tank wants 12–18. Below 1 °dKH the buffer is effectively gone and pH swings turn dangerous — that's the one hard floor every tank shares.

Tank type KH target
Community tank 3–8 °dKH
Planted tank with CO₂ injection 4–6 °dKH
Discus, wild-caught soft-water species 1–3 °dKH
Caridina (bee and crystal shrimp) 0–2 °dKH
Neocaridina (cherry shrimp) 2–8 °dKH
Malawi / Tanganyika cichlids 12–18 °dKH

The two shrimp rows are where beginners get caught — caridina tanks run the buffer deliberately near zero and let an active soil hold the pH instead; the shrimp-safe parameters guide explains the split.

Why KH matters

KH is the buffer that keeps pH stable through the daily CO₂ cycle, fish respiration, and bacterial activity. Too low and pH crashes overnight — a common cause of mysterious morning fish deaths in soft-water tanks running CO₂. Too high and pH locks above 8, which most planted-tank species and Amazon-region fish don't like.

KH also enters every CO₂ calculation: the pH + KH method for measuring dissolved CO₂ assumes the only acid pulling pH down is carbonic acid, which is only true when KH is the dominant buffer.

Signs KH is too low — or too high

Below 1 °dKH: the buffer is gone, pH swings become dangerous, and morning fish losses follow. Above 18 °dKH: the water locks alkaline, tannin-loving and soft-water species struggle, and pH is hard to bring down even with CO₂.

The early warning usually shows in the pH log before anything looks wrong in the glass: readings that used to sit flat start wobbling from test to test. Fish gasping at first light is the late warning — pH bottoms out at the end of the night, after a whole dark period of respired CO₂ has stacked onto a buffer that's no longer there. And below roughly pH 6 nitrification itself slows down, so a long-cycled tank can suddenly show ammonium again: a KH problem wearing an ammonia costume.

Too high reads more quietly. The pH sits pinned above 8 no matter what you do, CO₂ injection needs implausible bubble rates to move it, and fast growers that can split bicarbonate for carbon — Vallisneria, Egeria — coat their older leaves in a rough white crust of calcium carbonate. That crust (biogenic decalcification) is harmless in itself, but it's a clear sign the tank is running on bicarbonate instead of CO₂.

How to test KH

Drop tests (JBL KH, Tetra KH, Salifert) — count drops until the colour changes. Strip tests work but lose resolution below 3 °dKH. Test once a week; KH barely moves day to day unless something is actively consuming it.

Two habits make the number more useful. Double the water sample and keep dosing drops: with twice the volume, each drop counts 0.5 °dKH instead of 1, which matters when you're steering a 2 °dKH shrimp tank. And test just before the weekly water change rather than after — the pre-change trough is the number that predicts a crash. Logged weekly, the steady drain makes a downward slide visible weeks before it becomes a pH problem.

How to raise KH

Dose sodium bicarbonate (baking soda) for fish-only tanks — 1 g per 30 L raises KH by roughly 1 °dKH — or potassium bicarbonate (KHCO₃) for planted tanks where you want to avoid adding sodium; it's a little heavier per degree, about 3.6 g per 100 L for 1 °dKH. Either way, go gradually — a degree per day at most, dissolved in a cup of tank water before it goes in. Crushed coral or aragonite in the filter raises KH slowly and self-limits as the pH stabilises, which makes it a good passive floor under a tank that keeps eating its buffer.

How to lower KH

Dilute with RO or peat-filtered water; peat itself slowly lowers KH by releasing humic acids. As with GH, switching the source water is cleaner than fighting a high KH downstream. The arithmetic is linear — a 50:50 RO/tap mix halves the tap's KH — and the water-change impact tool shows how far a given change moves the tank before you commit to it. What doesn't work is acid: pH-minus products lower pH by burning through KH, which holds right up until the buffer is spent and then hands you the crash you were trying to avoid.

Stormy

Stormy watches this number over time and tells you before it drifts. Inside the app, on every tank you keep.

Open a free reefnotes account →