Blue-and-white banded frontosa cichlid swimming over dark rockwork

GH vs KH is where most water-chemistry confusion starts. Both are called "hardness," both are often reported in the same units, and both show up on the same test-kit card. They measure different things, though, and they do different jobs in your tank. GH tells you how much calcium and magnesium the water carries. KH tells you how well the water holds its pH steady. pH is the result you actually see, and KH largely decides whether it stays put.

This guide covers what each number means, how to convert between the units you'll see, how to raise or lower each one, and how to bring fish from very different water into your tank without shocking them.

pH: what the number means

pH measures how acidic or basic water is. Technically, it's the negative logarithm of the hydrogen ion concentration (SRAC 464). Below 7 is acidic and above 7 is basic. You may have read that "pH" stands for "potential of hydrogen." The origin of the abbreviation is actually disputed, and it doesn't matter for fishkeeping. What does matter is the scale.

Because pH is logarithmic, each whole unit is a tenfold change in hydrogen ions. Water at pH 6 is ten times more acidic than water at pH 7 and a hundred times more acidic than water at pH 8. A "small" drift from 7.6 to 6.6 is a big chemical change for a fish.

pH also changes how toxic ammonia is. The higher the pH, the more of the ammonia in your tank is in its toxic, un-ionized form. At 79°F, moving from pH 7.0 to pH 8.0 raises that toxic share about tenfold (UF/IFAS FA-16). Hard, alkaline tanks have less margin for error with ammonia. The ammonia guide has the full table.

GH vs KH: the short version

GH (general hardness) KH (carbonate hardness)
What it measures Dissolved calcium and magnesium Carbonate and bicarbonate (buffering capacity)
Also called Total hardness Alkalinity
What it does for fish Supplies minerals for bones, scales and gill function Keeps pH from swinging
What changes it Calcium and magnesium salts, RO water, softeners Baking soda, crushed coral, RO water, nitrification, acids
Effect on pH Little direct effect Strong. Low KH means pH can swing.

The confusion comes from the units. Both GH and KH are reported "as calcium carbonate" (mg/L CaCO₃), even when the water contains no calcium carbonate at all. In limestone country, where both come from dissolved rock, the two numbers are often similar. But they don't have to be. Water treated with sodium bicarbonate can have high alkalinity and low hardness (SRAC 464). Water that runs through a home softener can have the reverse problem, as covered below.

GH: general hardness

GH is the concentration of divalent ions, mostly calcium and magnesium (SRAC 464). Fish take calcium and magnesium directly from the water for bone and scale formation, blood clotting and other basic functions. Water with almost no GH, like pure RO water, isn't a healthy place for any fish to live long term.

The U.S. Geological Survey classes water hardness like this (USGS):

  • Soft: 0 to 60 mg/L as CaCO₃ (0 to about 3.4 dGH)
  • Moderately hard: 61 to 120 mg/L (about 3.4 to 6.7 dGH)
  • Hard: 121 to 180 mg/L (about 6.8 to 10 dGH)
  • Very hard: over 180 mg/L (over about 10 dGH)

KH: carbonate hardness and buffering

KH is the hobby name for alkalinity, the water's capacity to absorb acid before its pH drops. In most fresh water, that capacity comes from carbonate and bicarbonate (SRAC 451). Think of KH as a sponge for acid. A tank with plenty of KH can absorb the acids that fish, food and bacteria produce every day and barely move. A tank with almost none can drop a full pH unit between water changes.

Your tank makes acid constantly. Nitrification, the bacterial process that turns ammonia into nitrate, consumes alkalinity and pushes pH down. Nitrifier activity slows when pH falls below about 7 (SRAC 451). That's the classic "pH crash" in a soft-water tank that skips water changes. KH runs out, pH falls, and the biofilter slows down along with it. pH can look steady for weeks while KH quietly drains, then fall quickly once the buffer is nearly gone. That's why a falling KH reading is the earlier warning. See The Aquarium Nitrogen Cycle for that side of the story.

Carbon dioxide and daily pH swings

Dissolved CO₂ forms carbonic acid, so pH falls as CO₂ rises and climbs as it's driven off. In ponds, pH typically rises during the day as plants and algae use up CO₂ and falls at night as everything respires (SRAC 464). Heavily planted tanks and tanks with CO₂ injection do the same thing on a smaller scale. KH dampens the swing. If your pH readings bounce around, test at the same time of day before you start adjusting anything.

The same chemistry explains why tap water straight from the faucet can read a different pH than the same water after a day of aeration. If you're checking your source water, let a glass sit or aerate for several hours and test again. The tap water guide covers what else to look for in your utility's numbers.

Units: dGH, dKH, ppm and grains per gallon

Unit Equals
1 dGH or 1 dKH (German degree) 17.85 mg/L (ppm) as CaCO₃
1 grain per gallon (gpg) 17.1 mg/L as CaCO₃
1 mg/L as CaCO₃ 0.056 degrees
1 dKH 0.357 meq/L, about 21.8 mg/L as bicarbonate (HCO₃⁻)

A German degree is defined as 10 mg/L of calcium oxide, which works out to 17.85 mg/L as calcium carbonate. Grains per gallon are close to degrees, but not identical. Water utilities and softener companies tend to use gpg, while hobby test kits use degrees or ppm. Many hobby titration kits are scaled so that one drop equals one degree, but read your kit's instructions to be sure.

Example: San Antonio Water System reports a typical hardness of 15 to 20 gpg (SAWS). That's about 257 to 342 mg/L, or roughly 14 to 19 dGH: very hard water by the USGS scale.

How to raise or lower GH and KH

Raising KH

Sodium bicarbonate (baking soda) raises KH without adding any GH. Here's the math for one gram dissolved in 100 liters (about 26 gallons):

  • 1 g of NaHCO₃ is 11.9 millimoles of bicarbonate.
  • Spread through 100 L, that's 0.119 millimoles per liter.
  • Each millimole of bicarbonate per liter is 50 mg/L of alkalinity as CaCO₃, so you've added about 6 mg/L.
  • 6 mg/L ÷ 17.85 = about 0.33 dKH per gram per 100 liters.

The same gram adds about 2.7 mg/L of sodium. Weigh it on a kitchen scale instead of measuring by the spoon, dissolve it in a cup of tank water first, and add it over a day or two. Raise KH by a degree or two at a time, not all at once. Crushed coral or aragonite in the filter also raises KH and GH slowly. It works faster in acidic water and slows as the pH rises. Extension guidance says agricultural limestone won't dissolve at all at pH 8.3 or above (SRAC 464), so crushed coral is largely self-limiting.

Raising GH

Calcium and magnesium salts raise GH. Most keepers use a commercial remineralizer made for RO water, which is the simplest way to get the ratio right. Follow the label, and test GH and KH after each change, since some products add both.

Lowering GH and KH

You can't chemically remove hardness from tank water in any practical way. The workable approach is dilution. Mix your tap water with reverse osmosis (RO) or distilled water. A 50/50 blend roughly halves both GH and KH. Remember that RO alone doesn't remove chloramine, so the prefilter needs to be rated for it. The chloramine guide explains why.

Peat and botanicals like leaves and cones release tannins and humic acids that soften the look of the water and can lower pH a little in low-KH water. They don't do much in hard, well-buffered water. Acid buffers sold to "lock" pH in hard water work by turning bicarbonate (your KH) into CO₂. Part of the pH drop comes from that CO₂, so the pH creeps back up as it gasses off, while the KH you spent is gone for good. Chasing it with more acid strips the buffer and makes overshoots more likely. In hard water, blending with RO is more predictable than chasing pH with chemicals.

Don't use softened water

A household water softener doesn't make soft water in the aquarium sense. It swaps calcium and magnesium for sodium, adding about 8 mg/L of sodium for every grain of hardness removed (NDSU Extension). GH drops, but KH (the bicarbonate) stays, total dissolved solids don't go down, and sodium climbs. Softening San Antonio's 15 to 20 gpg water would add roughly 120 to 160 mg/L of sodium. If your house has a softener, fill the tank from a line that bypasses it, often an outdoor spigot or the cold kitchen tap.

Matching water for wild fish

Fish come from very different water. The blackwater rivers of the Amazon basin, such as the Rio Negro, are acidic (pH 3.0 to 5.5) and so low in minerals (calcium under about 2 mg/L, so GH and KH are essentially zero) that one researcher described them as "slightly contaminated distilled water" (Duarte et al. 2016, Scientific Reports). Yet the Rio Negro basin alone holds about 1,165 known fish species (Beltrão et al. 2019, ZooKeys), roughly 3% of the world's fishes and about 6% of its freshwater species. At the other end, the big East African rift lakes are alkaline and heavily buffered. Lake Tanganyika runs about pH 8.7 to 9.1, with roughly 17 to 19 dKH and 10 to 12 dGH, so it's the genuinely hard one. Lake Malawi is about pH 8.5, with roughly 7 dKH but only 3 to 5 dGH, which is only moderately hard (Talling & Talling 1965). Most freshwater aquarium fish in the general trade are captive-bred (about 90%, by one industry estimate), and they usually adapt well to moderate water (King 2019, Journal of Fish Biology). Many rare and exotic species in the hobby, though, are wild-caught, so check whether a fish was wild-caught or captive-bred before you buy. Wild-caught fish and some sensitive groups, such as soft-water discus or the rift-lake cichlids of Tanganyika and Malawi, do better near their native range.

A few rules hold for all of them:

  • Stability beats a perfect number. A steady pH of 7.2 is better than a pH that swings between 6.4 and 7.0 as you keep adjusting it.
  • Move slowly. If you're shifting an established tank toward softer or harder water, do it over several weeks with water changes of pre-blended water, not with chemicals added directly to the tank.
  • Test your source water first. Know your tap's GH, KH and pH before you buy fish that need something different. Your utility's annual water quality report lists hardness and pH.
  • Mind ammonia when pH rises. Raising pH in a tank with any ammonia makes that ammonia more toxic.

When new fish arrive

Shipped fish sit overnight in water whose pH has dropped as CO₂ builds up in the bag. That lower pH keeps the ammonia in the bag mostly in its less toxic form. When you open the bag, CO₂ escapes, pH rises and more of that ammonia becomes toxic. So the order matters: float the sealed bag until the temperatures match (about 15 to 30 minutes), dose an ammonia binder the moment it's open, and only then start a measured flow of tank water, which takes about 2 to 3 hours to bring pH and hardness across. The shipping article walks through each step and the chemistry behind it.

FAQ

What is the difference between GH and KH?

GH measures calcium and magnesium, the minerals fish need. KH measures carbonate and bicarbonate, which buffer pH. You can have high GH with low KH, or the reverse.

What KH should I keep in my aquarium?

Enough to keep pH stable between water changes. For most community and captive-bred fish, a common target is about 3 to 6 dKH (roughly 55 to 105 mg/L). Try not to let any tank fall below about 1 dKH (20 mg/L), where pH stops being stable (SRAC 464). Very soft-water setups can run lower, but they need more frequent testing and water changes to avoid a pH crash.

Does KH affect pH?

Yes. KH is what holds pH steady. With very low KH, pH drifts downward as the tank produces acid. With high KH, pH tends to sit in the high 7s or above and resists change.

Can I use baking soda to raise pH?

Baking soda raises KH, and pH usually rises with it. About 1 gram per 100 liters raises KH by about 0.33 dKH. Add it gradually and test before adding more.

Is softened water safe for fish?

It's not a good choice. A water softener replaces calcium and magnesium with sodium and leaves the KH in place. Use unsoftened tap water, blended with RO if you need softer water.

Cover photo (cropped): Bruno Peixoto / iNaturalist, CC BY 4.0

Spot something wrong?

If something here looks wrong, tell us what's off, and if you can, where you found the right answer.

In-Stock Livestock

View all
Save $10.00
Silver Arowana / Osteoglossum Bicirrhosum Live Freshwater Tropical Fish for Sale Online
2-3” 4-5” Wild Caught
Silver Arowana / Osteoglossum bicirrhosum
$39.99 $29.99 From $29.99 to $99.99
5 left in stock
Save $50.00
Tiger Moray Eel / Gymnothorax Polyuranodon (true Freshwater Moray) Live Freshwater Tropical Fish for Sale Online
7-9” Wild Caught
Tiger Moray Eel / Gymnothorax polyuranodon (True Freshwater Moray)
$129.99 $79.99 From $79.99 to $99.99
Only 2 left
Save $200.00
Australian Lungfish / Neoceratodus Forsteri Live Freshwater Tropical Fish for Sale Online
3-6” Captive Bred
Australian Lungfish / Neoceratodus forsteri (Pre-Order)
$1,799.99 $1,599.99 From $1,599.99 to $3,599.99
9 left in stock
Azul Peacock Bass / Cichla Piquiti Live Freshwater Tropical Fish for Sale Online
4-5” Wild Caught
Azul Peacock Bass / Cichla piquiti
$89.99 From $49.99 to $89.99
Only 1 left