GH and KH explained without the chemistry degree
GH is dissolved minerals. KH is buffering capacity. One affects what fish you can keep, the other determines whether your pH stays stable overnight.
GH and KH are measured in the same units (degrees, dGH/dKH), reported on the same test kits, and both involve dissolved minerals in your water. People confuse them constantly. They do different things.
GH: what minerals are in the water
GH stands for general hardness. It measures the total concentration of dissolved calcium and magnesium ions. That white crusty buildup on the rim of your tank and around the waterline is calcium carbonate deposited from evaporation. That is GH made visible.
One degree of GH (1 dGH) is about 17.85 milligrams of calcium carbonate equivalent in each litre. Soft water is 0-4 dGH. Moderate is 4-8. Hard is 8-12. Very hard is 12+.
Why it matters: some fish need specific mineral concentrations. Rift Lake cichlids evolved in water with 12-20+ dGH and do poorly in soft water. Crystal red shrimp need very soft water (4-6 dGH) to molt properly; hard water causes molting failures. Most common tropical community fish tolerate anything from 4-15 dGH without issues.
GH also affects plants. Calcium is a structural component of cell walls. Magnesium is the central atom in chlorophyll. Plants in very soft water (under 3 dGH) can show stunted growth and pale leaves from mineral deficiency.
For the vast majority of fishkeeping, GH matters at the extremes and not much in the middle. If your tap water is between 4 and 12 dGH, most freshwater species are fine without adjustment.
KH: whether your pH stays put
KH stands for carbonate hardness. It measures the concentration of bicarbonate and carbonate ions in the water. These ions act as a chemical buffer: they neutralize acids before those acids can change the pH.
Think of KH as the water's resistance to pH changes. High KH means pH is stable and hard to shift. Low KH means pH can swing fast.
This matters because aquariums constantly produce acid. The nitrogen cycle generates hydrogen ions as bacteria oxidize ammonia. CO2 from fish respiration dissolves into carbonic acid. Decomposing organic matter releases acids. In a tank with adequate KH (4+ dKH), these acids get absorbed by the carbonate buffer and pH barely moves. In a tank with low KH (under 2 dKH), those same acids accumulate and pH drops. If it drops fast enough, fish go into shock.
The classic pH crash happens at night. During the day, plants absorb CO2 for photosynthesis, keeping pH stable or even raising it slightly. At night, photosynthesis stops but fish keep respiring and producing CO2. In a tank with low KH, the overnight CO2 accumulation can push pH down by a full point or more. Fish that went to sleep at pH 7.2 wake up at pH 6.0. That kind of swing is physiologically brutal.
KH and CO2 injection
If you inject CO2 into a planted tank, KH becomes directly relevant. The amount of dissolved CO2 in the water is a function of pH and KH. The CO2 calculator uses this relationship: at a given KH, the pH reading tells you exactly how much CO2 is in the water.
Low KH with CO2 injection is risky. A small increase in CO2 flow produces a large pH drop because there is less buffer to absorb the carbonic acid. High KH with CO2 injection is safer but requires more CO2 to reach the same dissolved concentration, which uses gas faster.
Most planted tank guides recommend 3-5 dKH as a workable range for CO2-injected tanks. Enough buffering to prevent crashes, not so much that you burn through a CO2 cylinder every two weeks.
How they relate (and don't)
GH and KH are measured independently and can be high, low, or mismatched. Water from a limestone aquifer tends to be high in both because limestone is calcium carbonate, which contributes calcium to GH and carbonate to KH. But water can have high GH and low KH (hard water with poor buffering, common with well water that passes through gypsum rather than limestone), or low GH and moderate KH (soft water with baking soda added for buffering).
Changing one does not automatically change the other. Adding calcium chloride raises GH without touching KH. Adding baking soda (sodium bicarbonate) raises KH without touching GH. Adding crushed coral or limestone raises both because it dissolves calcium and carbonate together.
Adjusting them
Raising GH: Seachem Equilibrium, Salty Shrimp GH+, or calcium chloride + magnesium sulfate. The remineralizer calculator gives dosing amounts for a target GH.
Raising KH: Baking soda (sodium bicarbonate). A small spoonful of baking soda (around 5 g) per 75 litres raises KH by roughly 2-3 dKH. Dissolve it in a cup of tank water first; don't dump powder into the tank. Crushed coral in the filter provides a slower, more stable increase.
Lowering both: Mix tap water with RO (reverse osmosis) or distilled water. A 50/50 mix cuts GH and KH roughly in half. RO water has near-zero minerals and needs to be remineralized before use.
The easy path: test your tap water once. If GH is 4-12 and KH is 3-8, stock fish that match it and stop worrying. Adjusting water chemistry is labor-intensive, error-prone, and usually unnecessary unless you are keeping species with strict requirements.
Why GH and KH matter for fish health
GH (calcium and magnesium): Fish use dissolved calcium and magnesium for bone growth, scale formation, and cellular function. Some species evolved in very soft water (GH below 4 dGH) and others in very hard water (GH above 15 dGH). Keeping fish in water that matches their natural hardness range reduces chronic stress and improves breeding success.
Shrimp are particularly sensitive to GH. Neocaridina shrimp need GH 6-8 for healthy molting. Below GH 4, molting failures (white ring of death) become common because the shrimp can't extract enough calcium from the water to harden their new exoskeleton.
KH (carbonate buffering): KH doesn't affect fish directly, but it prevents pH crashes that kill fish. Carbonates and bicarbonates in the water neutralize acid as it's produced (from nitrification, organic decomposition, and CO2 respiration). When KH drops to zero, there's no buffer left, and the next acid input causes pH to plummet. A pH crash from 7.0 to 5.5 overnight kills most tropical fish.
Think of KH as a shock absorber for pH. The higher the KH, the more acid the system can absorb before pH moves. For most community tanks, KH 4-8 dKH provides adequate buffering. Planted tanks with CO2 injection consume KH faster (CO2 forms carbonic acid) and may need supplementation.
Adjusting GH and KH independently
GH and KH can be raised independently because different mineral salts affect each one.
To raise GH only: Add calcium sulfate (gypsum) or magnesium sulfate (Epsom salt). These add calcium or magnesium without affecting KH or pH.
To raise KH only: Add sodium bicarbonate (baking soda) or potassium bicarbonate. These add carbonate buffer without affecting GH.
To raise both: Use crushed coral, aragonite, or calcium carbonate. These dissolve slowly and raise both GH and KH while also raising pH.
The water change calculator factors in your source water's GH and KH when calculating dilution effects.