Water Hardness Converter (ppm, gpg, °dH, °fH, °e)
Water Hardness Converter (ppm, gpg, °dH, °fH, °e)
Every water hardness unit against every other — mg/L as CaCO3, grains per gallon, German, French and Clark degrees, mmol/L and meq/L — with the factors computed from the grain and the molar masses, and the WHO, British and German classification bands side by side, because they disagree.
Water hardness, in every unit
160 mg/L as CaCO3, judged on the WHO and USGS scale
One number, written eight ways
- as CaCO3
- the convention that makes all of this work: the total divalent cation concentration written as the equivalent concentration of calcium carbonate
- gpg
- grains per US gallon: 64.798 91 mg ÷ 3.785 411 784 L
- °dH
- German degree: 10 mg/L of CaO, restated as CaCO3 through the molar masses 56.077 and 100.086
- °e
- English or Clark degree: a grain per IMPERIAL gallon of 4.546 09 L
- meq/L
- milliequivalents per litre, also mval/L. Half a millimole, because Ca and Mg are divalent
Worked example
160 mg/L as CaCO3, judged on the WHO and USGS scale
160 ÷ 17.11806 = 9.35 grains per US gallon — the figure an American softener asks for
160 ÷ 17.84796 = 8.96 °dH, and 160 ÷ 10 = 16.0 °fH. Note the factor of 1.78 between those two, which is 100.086/56.077 — the carbonate against the oxide
160 ÷ 100.086 = 1.599 mmol/L, which is 3.197 meq/L, twice as many because calcium is divalent
If it were all calcium that would be 64.1 mg/L of Ca2+; if it were all magnesium, 38.9 mg/L of Mg2+. Real water is a mix, which is exactly why the “as CaCO3” convention exists
The verdict is where it gets interesting. WHO and USGS both call 120 to 180 mg/L hard. The British DWI calls 150 to 200 only moderately hard. Germany calls anything below 250.2 mg/L mittel. Three authorities, three answers, one water
Every hardness unit, and what one of it is worth
| Unit | mg/L as CaCO3 in one of these | Of these in 1 mg/L | Your 160 mg/L default | What it actually counts |
|---|---|---|---|---|
| mg/L, ppm or American degrees, as CaCO3 | 1.000000 | 1.000000 | 160.000 | the same unit under three names, and the US and laboratory baseline |
| grains per US gallon (gpg) | 17.118061 | 0.058418 | 9.347 | US softener ratings |
| German degrees, °dH | 17.847959 | 0.056029 | 8.965 | 10 mg/L CaO |
| French degrees, °fH | 10.000000 | 0.100000 | 16.000 | 10 mg/L CaCO3 |
| English or Clark degrees, °e | 14.253768 | 0.070157 | 11.225 | grains per imperial gallon |
| mmol/L of CaCO3 (the German legal unit) | 100.086000 | 0.009991 | 1.599 | |
| meq/L, also written mval/L | 50.043000 | 0.019983 | 3.197 | |
| mg/L of calcium ion, Ca2+ | 2.497280 | 0.400436 | 64.070 | |
| mg/L as CaO | 1.784796 | 0.560288 | 89.646 |
The same water, classified by three authorities
| mg/L as CaCO3 | gpg | °dH | mmol/L | WHO and USGS | UK (DWI) | Germany (WRMG) |
|---|---|---|---|---|---|---|
| 30 | 1.75 | 1.68 | 0.300 | Soft | Soft | Weich (soft) |
| 60 | 3.51 | 3.36 | 0.599 | Moderately hard | Soft | Weich (soft) |
| 80 | 4.67 | 4.48 | 0.799 | Moderately hard | Soft | Weich (soft) |
| 100 | 5.84 | 5.60 | 0.999 | Moderately hard | Slightly hard | Weich (soft) |
| 120 | 7.01 | 6.72 | 1.199 | Hard | Slightly hard | Weich (soft) |
| 150 | 8.76 | 8.40 | 1.499 | Hard | Moderately hard | Weich (soft) |
| 160 | 9.35 | 8.96 | 1.599 | Hard | Moderately hard | Mittel (medium) |
| 180 | 10.52 | 10.09 | 1.798 | Very hard | Moderately hard | Mittel (medium) |
| 200 | 11.68 | 11.21 | 1.998 | Very hard | Hard | Mittel (medium) |
| 250 | 14.60 | 14.01 | 2.498 | Very hard | Hard | Mittel (medium) |
| 300 | 17.53 | 16.81 | 2.997 | Very hard | Very hard | Hart (hard) |
| 400 | 23.37 | 22.41 | 3.997 | Very hard | Very hard | Hart (hard) |
What “as CaCO3” means, and why the conversions are exact
| Ion | Molar mass, g/mol | Charge | mg/L as CaCO3 per mg/L of the ion | Note |
|---|---|---|---|---|
| Ca2+ | 40.078 | 2+ | 2.4973 | The main contributor in most waters. 40 mg/L of calcium is 100 mg/L of hardness |
| Mg2+ | 24.305 | 2+ | 4.1179 | Lighter, so the same mass counts for more: 24.3 mg/L of magnesium is also 100 mg/L of hardness |
| CaCO3 (the yardstick) | 100.086 | — | 1.0000 | Not present in the water in this form. It is the unit of account |
| CaO | 56.077 | — | 1.7848 | What a German degree counts 10 mg/L of. Also not present in the water |
| Sr2+ | 87.62 | 2+ | 1.1423 | Counts towards hardness in principle and is negligible in practice |
| Fe2+ | 55.845 | 2+ | 1.7922 | Contributes where iron is high, which is its own water problem |
| Na+ | 22.99 | 1+ | 0 | Does NOT count. Monovalent, so it does not cause hardness — which is exactly why an ion-exchange softener swaps calcium for sodium |
Seven units, three verdicts, one number
Hardness units are national conventions, and that is the whole reason this page can answer something a search engine cannot. Not one of them is a unit of a physical quantity. They are seven or eight different ways of writing down the same agreed number, each invented in a different country for a different trade, and converting between them is exact once you know which one you are holding.
What the number actually is. Hardness is the total concentration of divalent metal cations in the water — in practice calcium and magnesium, with traces of strontium and iron. Those two have different molar masses, 40.078 and 24.305, so adding up their masses would mean nothing; what matters is how many of them there are. So every hardness unit in the world expresses the total as the concentration of calcium carbonate that would carry the same number of equivalents. Your water contains no calcium carbonate in that form — if it did it would be scale, not water — and the convention is none the worse for that. It is a unit of account, and it is what makes 40 mg/L of calcium and 24.3 mg/L of magnesium both count as 100 mg/L of hardness.
Then each country picked a different way of writing it. The United States uses mg/L as CaCO3, identical to ppm, and softener ratings in grains per US gallon — one grain of 64.798 91 mg in 3.785 411 784 L, which is 17.118 mg/L. Britain used the Clark degree, a grain in an imperial gallon, 14.254 mg/L. France counts tens of milligrams of the carbonate: one °fH is 10 mg/L. Germany counts tens of milligrams of the OXIDE, so one °dH is 10 mg/L of CaO, which as CaCO3 is 17.848 mg/L. Chemists use mmol/L, and older European work mval/L, which is the milliequivalent under another name: half a millimole, because calcium is divalent. Every factor on this page was computed from the grain, the gallon and the IUPAC atomic weights rather than copied off a chart, and each agrees with the published cross-conversion tables to better than a tenth of a per cent.
And then — this is the part that surprised us — they picked different boundaries too. The WHO and the US Geological Survey publish identical bands: soft below 60 mg/L, moderately hard 60 to 120, hard 120 to 180, very hard above 180. Britain’s Drinking Water Inspectorate publishes soft up to 100, slightly hard 100 to 150, moderately hard 150 to 200, hard 200 to 300, very hard above 300. Germany’s legal bands, set by the Wasch- und Reinigungsmittelgesetz and republished annually by every water supplier, are weich below 1.5 mmol/L, mittel 1.5 to 2.5, hart above 2.5 — which in mg/L is 150.1 and 250.2. So water at 200 mg/L is VERY HARD to the WHO, HARD in London and MEDIUM in Berlin, with nothing about the water having changed. The classification dropdown above exists because of that, and the third table lays all three side by side.
What the number is good for. Setting a dishwasher or a softener, which is the commonest reason anybody looks this up, and the unit the appliance asks for depends on where it was designed — °dH or mmol/L in Germany, °fH in France, grains per gallon in the United States. Mixing up °dH and °fH is a factor of 1.78 in the direction of under-dosing. Beyond that: hardness is what scales a kettle and an immersion heater, what stops soap lathering (the calcium precipitates it as scum), and what a softener is sized against. It is worth knowing that the WHO sets no health-based guideline value for hardness at all — its background document says there are insufficient data to suggest either a minimum or a maximum — so these bands describe nuisance rather than safety, and soft water carries its own separate concern about dissolving plumbing metals.
The other page in this section, the gas concentration converter, has the same structure: a conversion that is exact once you have supplied the one thing only you know.
Frequently asked questions
How many mg/L is one grain per gallon?
17.1181 mg/L as CaCO3, and the usual shorthand 17.1 is within a tenth of a per cent. It is exact arithmetic rather than a measurement: a grain is 64.798 91 mg by the definition of the pound and a US gallon is 3.785 411 784 L by the definition of the inch, so the factor is one divided by the other. Watch out for the imperial gallon: a grain in one of those is the Clark or English degree, 14.2538 mg/L, which is 17% smaller.
What is a German degree of hardness?
One °dH is 10 mg/L of calcium oxide, which expressed as calcium carbonate is 10 × 100.086 ÷ 56.077 = 17.8480 mg/L. The awkwardness is historical: German practice counted the oxide, French practice counted the carbonate, and so a French degree is 10 mg/L as CaCO3 and a German one is 17.85. German water suppliers have to publish a legal hardness band as well, and that one is in millimoles per litre.
Why is hardness expressed “as CaCO3” when the water contains no calcium carbonate?
Because hardness is a sum of different ions and you have to add them up in some common currency. Calcium and magnesium have different molar masses — 40.078 and 24.305 — so adding their masses tells you nothing; what matters is how many divalent ions there are. Every hardness unit therefore states the total as the concentration of calcium carbonate that would carry the same number of equivalents. That is why the conversions between the units are exact even though the water is a mixture: they convert between ways of writing one already-agreed number.
Is 160 mg/L hard water?
It depends who is asking. To the WHO and the US Geological Survey, which publish identical bands, 160 mg/L is HARD — they put hard at 120 to 180. To the British Drinking Water Inspectorate it is only MODERATELY HARD, since their hard band starts at 200. In Germany it is MITTEL, medium, because the legal boundary to hart is 2.5 mmol/L, which is 250 mg/L. Same water, three verdicts. Pick the scale that belongs to whoever gave you the number.
What should I set my dishwasher or water softener to?
To your water’s hardness in whatever unit the appliance asks for, which is why the results above give all of them. German and most European appliances want °dH or mmol/L, French ones °fH, American ones grains per gallon. Get the unit wrong between °dH and °fH and you are out by a factor of 1.78 in the direction of under-dosing. Your supplier publishes the figure; in Germany they are obliged to.
Does a water softener remove the minerals?
An ion-exchange softener does not remove them, it exchanges them: two sodium ions go into the water for each calcium or magnesium ion that comes out. Hardness falls to near zero because sodium is monovalent and monovalent ions do not cause hardness, but the total dissolved solids barely change and the sodium content rises — by about 46 mg/L of sodium for every 100 mg/L of hardness removed. Reverse osmosis genuinely removes them, and so does distillation.
Is hard water bad for you?
The World Health Organization sets no health-based guideline value for hardness, and says in terms that there are insufficient data to suggest either a minimum or a maximum concentration. The soft/hard bands on this page describe nuisance — scale, soap, appliance settings — rather than safety. Softness has its own practical consequence in the other direction: soft water is more aggressive to plumbing metals, which matters where there is lead or copper pipe.
Related calculators
References
- U.S. Geological Survey. Hardness of Water, Water Science School, usgs.gov. Soft 0–60 mg/L as calcium carbonate, moderately hard 61–120, hard 121–180, very hard more than 180. A work of the United States Government.
- World Health Organization. Hardness in Drinking-water, background document for development of WHO Guidelines for Drinking-water Quality, WHO/HSE/WSH/10.01/10/Rev/1. Publishes the same four bands as USGS — soft below 60 mg/L, moderately hard 60–120, hard 120–180, very hard above 180 — and sets NO health-based guideline value for hardness: “there are insufficient data to suggest either minimum or maximum concentrations of minerals at this time”.
- Drinking Water Inspectorate (England and Wales). Water Hardness / Hard Water, dwi.gov.uk. The British bands, in mg/L as calcium carbonate: soft up to 100, slightly hard 100–150, moderately hard 150–200, hard 200–300, very hard more than 300. These are not the WHO bands and not the USGS ones.
- Deutscher Verein des Gas- und Wasserfaches. Härtebereiche für Trinkwasser, dvgw.de, setting out the ranges in the German Wasch- und Reinigungsmittelgesetz (WRMG): weich below 1.5 mmol/L of calcium carbonate, mittel 1.5–2.5, hart above 2.5. Suppliers must tell customers which band their water is in at least once a year.
- Commission on Isotopic Abundances and Atomic Weights (IUPAC). Abridged Standard Atomic Weights, ciaaw.org. Every molar mass on this page is computed from this table — H 1.0080, C 12.011, N 14.007, O 15.999, F 18.998, S 32.06, Cl 35.45, Ca 40.078 — and none is copied from a conversion chart.
- National Institute of Standards and Technology. NIST Handbook 44, Appendix C, General Tables of Units of Measurement. The international foot is 0.3048 m exactly, the US liquid gallon is 231 cubic inches exactly, the imperial gallon is 4.546 09 L exactly and the grain is 64.798 91 mg exactly. Every foot-, gallon- and grain-based factor on this page descends from those four.
- Hard water, Wikipedia, and the unit cross-conversion table in it. Used only as an independent check: every factor this page computes from the grain, the gallon and the molar masses agrees with that table to better than 0.12%, which is the table’s own rounding. Where the two differ the computed value is the one used.
