How do I convert dGH to ppm — and ppm back to dGH?
Multiply dGH by 17.8 for ppm (mg/L as CaCO₃); divide ppm by 17.8 for dGH. So 8 dGH is 143 ppm, 4 dGH is 71 ppm, and a strip reading 150 ppm is 8.4 dGH. Grains per gallon and °Clark, the units on utility reports, are 17.1 and 14.3 ppm each. That is the whole converter; the chart below is the same arithmetic laid out for the wall, and the rest of the page is what the number is actually made of.
| dGH | ppm CaCO₃ | meq/L | gpg | °Clark | |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | very soft |
| 1 | 18 | 0.36 | 1 | 1.3 | very soft |
| 2 | 36 | 0.71 | 2.1 | 2.5 | very soft |
| 3 | 54 | 1.07 | 3.1 | 3.8 | very soft |
| 4 | 71 | 1.43 | 4.2 | 5 | very soft |
| 5 | 89 | 1.78 | 5.2 | 6.3 | soft |
| 6 | 107 | 2.14 | 6.3 | 7.5 | soft |
| 7 | 125 | 2.5 | 7.3 | 8.8 | soft |
| 8 | 143 | 2.85 | 8.3 | 10 | soft |
| 9 | 161 | 3.21 | 9.4 | 11.3 | medium |
| 10 | 178 | 3.57 | 10.4 | 12.5 | medium |
| 11 | 196 | 3.92 | 11.5 | 13.8 | medium |
| 12 | 214 | 4.28 | 12.5 | 15 | medium |
| 13 | 232 | 4.64 | 13.6 | 16.3 | fairly hard |
| 14 | 250 | 4.99 | 14.6 | 17.5 | fairly hard |
| 15 | 268 | 5.35 | 15.6 | 18.8 | fairly hard |
| 16 | 286 | 5.71 | 16.7 | 20 | fairly hard |
| 17 | 303 | 6.06 | 17.7 | 21.3 | fairly hard |
| 18 | 321 | 6.42 | 18.8 | 22.5 | fairly hard |
| 19 | 339 | 6.78 | 19.8 | 23.8 | hard |
| 20 | 357 | 7.13 | 20.9 | 25 | hard |
| 25 | 446 | 8.92 | 26.1 | 31.3 | hard |
| 30 | 535 | 10.7 | 31.3 | 37.6 | hard |
1 dGH = 17.848 mg/L as CaCO₃; 1 meq/L = 50.04 ppm; 1 gpg = 17.12 ppm; 1 °Clark = 14.25 ppm. Last column is the aquarium hobby's scale. Kits round 17.85 to 17.9.
A German degree is 10 mg of calcium oxide per liter — the same definition dKH uses, applied to different ions. Express those 10 mg as calcium carbonate instead (CaO is 56.077 g/mol, CaCO₃ is 100.087) and you get 17.848 mg/L. Test kits round it to 17.9; the reef alkalinity convention of 50 ppm per 2.8 dKH rounds it to 17.86. The spread is under 0.3 %, and one drop of an API kit is a whole degree, so any of them is fine — the alkalinity converter walks through the same derivation for KH.
My water report lists calcium and magnesium — what GH is that?
Utility reports almost never say "GH." They list the two ions, in mg/L, and leave the sum to you — and it is not a plain sum, because a milligram of magnesium counts for more hardness than a milligram of calcium (it is lighter, so a milligram is more atoms). Each ion contributes its equivalents: each mg/L of calcium is 2.5 ppm of hardness as CaCO₃, each mg/L of magnesium 4.12. A typical US municipal report of calcium 32 mg/L and magnesium 8 mg/L is 6.3 dGH (113 ppm) — and only 71 % of that hardness is calcium, though calcium is 4× the weight. Switch the tool to calcium + magnesium and type the two lines in.
The other report units convert the same way: a UK company quoting 14 °Clark means 200 ppm, or 11.2 dGH; a softener brochure's "10 grains" is 9.6 dGH. Both are grains of calcium carbonate per gallon — just different gallons.
What is a GH reading made of? (1 dGH is not 7 ppm calcium)
The line you will see repeated is "1 dGH = 7.1 ppm calcium." It is true only for water with no magnesium at all. The same degree can be 4.3 ppm of magnesium and no calcium, or any mixture between — and a GH kit cannot see the difference, because the reagent binds both. That matters to two groups: shrimp keepers, whose animals molt with calcium and use magnesium to metabolize it, and planted-tank keepers dosing to a Ca:Mg ratio. Every remineralizer picks a ratio for you; Seachem publishes Equilibrium's as 8.06 % calcium to 2.41 % magnesium by weight, about 3.3:1, which is why the tool defaults to 3:1.
| GH | If all calcium | If all magnesium | At 3:1 — Ca | At 3:1 — Mg |
|---|---|---|---|---|
| 2 dGH | 14 ppm Ca | 9 ppm Mg | 9 ppm | 3 ppm |
| 4 dGH | 29 ppm Ca | 17 ppm Mg | 18 ppm | 6 ppm |
| 6 dGH | 43 ppm Ca | 26 ppm Mg | 28 ppm | 9 ppm |
| 8 dGH | 57 ppm Ca | 35 ppm Mg | 37 ppm | 12 ppm |
| 10 dGH | 71 ppm Ca | 43 ppm Mg | 46 ppm | 15 ppm |
| 12 dGH | 86 ppm Ca | 52 ppm Mg | 55 ppm | 18 ppm |
| 15 dGH | 107 ppm Ca | 65 ppm Mg | 69 ppm | 23 ppm |
| 20 dGH | 143 ppm Ca | 87 ppm Mg | 92 ppm | 31 ppm |
Computed from molar masses (Ca 7.147 and Mg 4.334 ppm per dGH). The 3:1 columns assume calcium:magnesium by weight; tap water runs anywhere from about 2:1 to 10:1, so a reading tells you the sum, not the split.
So 8 dGH of remineralized RO is about 37 ppm calcium and 12 ppm magnesium — not the 57 ppm calcium the one-line rule gives, and the difference is exactly the magnesium a shrimp needs to finish a molt. If your water really does need a specific ion, the number to trust is the one from a calcium or magnesium test, not a GH kit and a ratio.
GH counts calcium and magnesium. KH counts bicarbonate and carbonate — the buffer that holds pH — and lives on the alkalinity page. They share the German degree and nothing else, and water can have one without the other: RO water built up with a GH booster has hardness and no buffer; tap water through a household ion-exchange softener has its calcium and magnesium swapped for sodium, so GH drops to near zero while KH and TDS barely move. That second case is the one that catches people — softened water reads soft on a GH kit and is still full of dissolved solids. TDS is a third thing again: a conductivity reading with a factor applied, which cannot tell hardness from salt, nitrate or fertilizer.
Is my water soft or hard? Two scales disagree
"Soft" means different things to a geologist and a fishkeeper. The USGS classification, which is what US water-quality reports and most search results quote, puts the top of "soft" at 60 ppm — 3.4 dGH. The aquarium hobby's scale runs "soft" up to 8 dGH. So 7 dGH (125 ppm) is "hard" water to the utility and "soft" water to a tetra keeper — the tool reports both, because you will meet both.
| Scale | Class | dGH | ppm CaCO₃ |
|---|---|---|---|
| Aquarium hobby | Very soft | 0–4 | 0–71 |
| Soft | 4–8 | 71–143 | |
| Medium | 8–12 | 143–214 | |
| Fairly hard | 12–18 | 214–321 | |
| Hard | 18–30 | 321–535 | |
| Very hard | over 30 | over 535 | |
| USGS | Soft | 0–3.4 | 0–60 |
| Moderately hard | 3.4–6.7 | 60–120 | |
| Hard | 6.7–10.1 | 120–180 | |
| Very hard | over 10.1 | over 180 |
Hobby scale as commonly published (in dGH, converted here); USGS Water Science School classes in mg/L as CaCO₃, converted to dGH. Neither is a fish-health threshold — those are below.
"17.8 ppm per dGH" is calcium-carbonate equivalent, not the weight of anything in the water. The calcium in one degree came in with an anion, and if that anion is bicarbonate — the usual case for tap water — one dGH is 28.9 mg/L of actual dissolved ions. So 8 dGH of ordinary tap water is roughly 223 mg/L of solids before a single milligram of anything else, and a TDS meter isn't even weighing that: it measures conductivity and multiplies by a factor (0.5–0.7, chosen by the meter's maker). A TDS reading can tell you that RO water is clean and that something has been added. It cannot tell you what.
What GH do my fish need, in the unit my kit reads?
The ranges below are the same bands the freshwater parameters chart prints, converted so a ppm strip and a dGH drop kit read the same row. Two of them are strict: livebearers and Rift Lake cichlids genuinely need hard water, and Neocaridina shrimp need the calcium in it to molt. The rest are wide, and stability inside the band matters more than the number.
| Tank | dGH | ppm CaCO₃ | gpg |
|---|---|---|---|
| Community tropical | 4–12 | 71–214 | 4.2–12.5 |
| Planted | 3–8 | 54–143 | 3.1–8.3 |
| Soft water / blackwater | 1–5 | 18–89 | 1–5.2 |
| Rift lake cichlid | 10–20 | 178–357 | 10.4–20.9 |
| Livebearer | 10–20 | 178–357 | 10.4–20.9 |
| Neocaridina shrimp | 6–10 | 107–178 | 6.3–10.4 |
| Goldfish / coldwater | 8–20 | 143–357 | 8.3–20.9 |
Bands from the site's parameters module (hobby consensus, cross-checked against native water), so this table and the printable chart can't disagree.
Moving the number is a dosing question — grams of a GH booster or of calcium sulfate and Epsom salt per liter of RO — and belongs to the GH / KH adjustment calculator. Lowering it is not a dosing question at all: nothing you add removes calcium, so soft water comes from RO water, rainwater or a cation resin, blended with tap to the target. Use the calcium + magnesium mode with the blend's proportions to see where a mix lands.
Natural seawater carries 420 ppm calcium and 1,280 ppm magnesium — which is 354 dGH, and 83 % of it magnesium. No drop kit reaches that, and the two ions matter separately there, so reef keepers test each one and skip GH entirely. The calcium + magnesium mode is the same arithmetic run backward; the calcium and magnesium dosing tools take it from there.
Which unit does my GH test kit read?
| Source | Reports in |
|---|---|
| API GH & KH (liquid) | dGH — one drop ≈ 1 dGH ≈ 17.8 ppm |
| Sera GH, JBL GH | °dH (same degree as dGH), one drop per degree |
| Tetra / API test strips | ppm on US packaging, °d on European — read the pad key |
| Salifert, Hanna, Red Sea calcium and magnesium (reef) | ppm of the ion itself — use the calcium + magnesium mode |
| US water-quality report | mg/L as CaCO₃, sometimes grains per gallon (gpg) |
| UK water-company report | °Clark or mg/L as CaCO₃ — occasionally mg/L of calcium alone |
| French / Belgian report | °f (French degrees) |
Typical of current versions — check the box or the report's column header. "Hardness as calcium" (mg/L Ca) on a UK report is the ion, not CaCO₃: enter it in the calcium + magnesium mode.