Water hardness unit converter: gpg, mg/L, ppm, dH, fH, Clark and mmol/L
1 gpg = 17.118 mg/L as CaCO3, 1 dH = 17.848, 1 fH = 10, 1 Clark = 14.254, 1 mmol/L = 100.09. Convert any hardness unit to the others and read the USGS band.
- Verified
- Updated
- 6 min read
- 4 sources

Shop links on this page are affiliate links: a purchase may earn us a commission at no extra cost to you. Disclosure
Short answer
Water hardness converts between units through milligrams per litre as calcium carbonate (mg/L as CaCO3, the same figure as ppm): multiply the reading by its unit’s factor to get mg/L, then divide by the factor of the unit you want. The factors are 1 grain per gallon (gpg) = 17.118 mg/L, 1 German degree (dH) = 17.848 mg/L, 1 French degree (fH) = 10 mg/L, 1 Clark or English degree = 14.254 mg/L and 1 mmol/L = 100.09 mg/L, widely used industry conversions rather than a regulator or standards-body figure; the Water Quality Association glossary states the gpg factor as 17.1. A test strip reading 12 gpg is 12 x 17.118 = 205.4 mg/L, which is 11.51 dH, 20.54 fH, 14.41 Clark and 2.052 mmol/L. USGS classes 0 to 60 mg/L as soft, 61 to 120 moderately hard, 121 to 180 hard and over 180 very hard, so 205.4 mg/L is very hard water.
The German degree is the unit that looks like a trap and is not: 1 dH is 17.848 mg/L, within 4.3 percent of a US grain, so a European label read as gpg still sizes a softener correctly, while a French degree read as gpg overstates hardness by 71 percent.
Convert a hardness reading to every unit
Factors: 1 gpg = 17.118 mg/L, 1 dH = 17.848, 1 fH = 10, 1 Clark = 14.254, 1 mmol/L = 100.09 (all as CaCO3). Bands are the USGS Water Science School classes.
What is the formula?
mg/L as CaCO3 = reading x factor of its unit. Result in any unit = mg/L as CaCO3 divided by that unit’s factor.
Hardness is the calcium and magnesium in water, expressed in every unit below as the equivalent mass of calcium carbonate (CaCO3). The gpg value is confirmed by the Water Quality Association glossary (17.1) and Penn State Extension (about 17). The dH, fH, Clark and mmol/L factors have no regulator or standards-body page stating them; they are widely used industry conversions taken from a secondary compilation (Wikipedia’s water hardness article), not a standards-body figure.
| Unit | Defined as | 1 unit in mg/L as CaCO3 | 1 unit in gpg | 1 unit in mmol/L |
|---|---|---|---|---|
| Grain per gallon (gpg) | 1 grain (64.8 mg) of CaCO3 per US gallon (3.785 L) | 17.118 | 1 | 0.171 |
| mg/L, ppm | 1 mg of CaCO3 per litre | 1 | 0.0584 | 0.00999 |
| German degree (dH) | 10 mg/L of calcium oxide (CaO) | 17.848 | 1.0426 | 0.1783 |
| French degree (fH) | 10 mg/L of CaCO3 | 10 | 0.5842 | 0.0999 |
| Clark or English degree | 1 grain (64.8 mg) of CaCO3 per Imperial gallon (4.546 L) | 14.254 | 0.8327 | 0.1424 |
| mmol/L | 1 millimole of CaCO3 (molar mass 100.09 g/mol) per litre | 100.09 | 5.847 | 1 |
The gpg and mmol/L columns are the mg/L factor divided by 17.118 and by 100.09; they are arithmetic on the definitions, not separately published figures. Every dH, fH, Clark and mmol/L figure in this table is an industry conversion constant, not a regulator or standards-body number.
USGS publishes its classes in mg/L as CaCO3 only. The gpg, dH and mmol/L columns below are those limits divided by the factors above, rounded to one decimal, so read them as this page’s conversion, not a USGS figure.
| USGS class | mg/L as CaCO3 (USGS) | gpg (derived) | dH (derived) | mmol/L (derived) |
|---|---|---|---|---|
| Soft | 0 to 60 | up to 3.5 | up to 3.4 | up to 0.60 |
| Moderately hard | 61 to 120 | 3.6 to 7.0 | 3.4 to 6.7 | 0.61 to 1.20 |
| Hard | 121 to 180 | 7.1 to 10.5 | 6.8 to 10.1 | 1.21 to 1.80 |
| Very hard | over 180 | over 10.5 | over 10.1 | over 1.80 |
The USGS bands describe raw water. A softener is judged against a different line: the NSF/ANSI 44 and NSF/ANSI 330 standards define soft water as less than 1 grain per gallon, about 17.1 mg/L, the outlet reading a certified unit is tested to. The hard water and white scale guide covers what each band looks like at the tap.
What does a worked example look like?
A hardness strip reads 12 gpg. The same inputs as the quick answer, one step per unit:
- To mg/L: 12 x 17.118 = 205.4 mg/L as CaCO3 (205.4 ppm).
- To German degrees: 205.4 / 17.848 = 11.51 dH.
- To French degrees: 205.4 / 10 = 20.54 fH.
- To Clark degrees: 205.4 / 14.254 = 14.41 Clark.
- To mmol/L: 205.4 / 100.09 = 2.052 mmol/L.
- Band: 205.4 mg/L is over 180, so USGS classes it very hard.
Going the other way, a European appliance manual that says “above 14 dH” is asking about 14 x 17.848 = 249.9 mg/L, or 14.6 gpg.
Where do the numbers come from?
| Figure | Source |
|---|---|
| Soft, moderately hard, hard and very hard bands (0 to 60, 61 to 120, 121 to 180, over 180 mg/L) | USGS Water Science School, Hardness of Water |
| 1 gpg = 17.1 mg/L (ppm), hardness stated as mg/L or ppm CaCO3 equivalents | Water Quality Association, Glossary of Terms |
| 1 gpg is about 17 mg/L (ppm) as CaCO3 | Penn State Extension, How to Interpret a Water Analysis Report |
| Soft water is less than 1 gpg (about 17.1 mg/L) | The NSF/ANSI 44 and NSF/ANSI 330 standards, by name and number |
| 17.118, 17.848, 10, 14.254 and 100.09 mg/L; the grain, gallon and molar-mass definitions behind them (industry conversions, not a standards-body figure) | Wikipedia, Water hardness |
One caution on the non-US units. No regulator or standards-body page states the dH, fH, Clark or mmol/L factors; they are widely used industry conversions from a secondary compilation, consistent with the WQA and Penn State figures for the one unit those bodies do cover, and treated on this page as convention rather than fact. The gpg factor rounds three ways in print (17, 17.1, 17.118): on a 25 gpg well the difference between 17 and 17.118 is 3 mg/L, which changes no softener size.
Convert a number you have measured, not one you assume
This page only converts. It cannot tell you whether the 12 gpg default is your water, and the softener size calculator multiplies whatever hardness you type into it, so a guessed figure buys the wrong tank. A strip kit such as the WeAQUA DoubleCheck hardness test kit, 200 strips, 0 to 25 gpg / 0 to 425 ppm prints both units on its own chart, which makes it a quick check of this converter as well as of your tap.
A strip reads to the nearest colour block, not the nearest grain, and its range stops at 25 gpg. Skip the strips if you already hold a lab report with a hardness line: that number is better than anything a colour pad gives, and it is the one to type above.
Frequently asked questions
How do I convert water hardness from mg/L to grains per gallon?
Divide milligrams per litre as calcium carbonate by 17.118. One grain per gallon is one grain (64.8 mg) of calcium carbonate in one US gallon (3.785 L), which works out to 17.118 mg/L; the Water Quality Association glossary rounds the divisor to 17.1 and Penn State Extension to 17. A lab report of 171 mg/L is 10 gpg either way.
Is ppm the same as mg/L for water hardness?
Yes, for a hardness report. The Water Quality Association glossary states hardness as mg/L or ppm calcium carbonate equivalents, and Penn State Extension writes the unit as mg/L (ppm). A report of 205 ppm as CaCO3 and one of 205 mg/L as CaCO3 describe the same water, 12 gpg once divided by 17.118.
What is a German degree of hardness (dH) in grains per gallon?
One German degree is defined as 10 mg/L of calcium oxide, which works out to 17.848 mg/L as calcium carbonate, so 1 dH is 1.0426 gpg (17.848 divided by 17.118). That factor is a widely used industry conversion, not a regulator or standards-body figure. The two units sit within 4.3 percent of each other, so a European label in dH reads as gpg with almost no sizing error.
What hardness counts as soft water?
It depends on who is classifying. USGS calls 0 to 60 mg/L as calcium carbonate soft, 61 to 120 moderately hard, 121 to 180 hard and anything over 180 very hard. The NSF/ANSI 44 and NSF/ANSI 330 softener standards separately define soft water as less than 1 grain per gallon, about 17.1 mg/L, the number a softener outlet has to hit.
Why is hardness reported as CaCO3 when the minerals are calcium and magnesium?
Every unit on this page expresses calcium plus magnesium as the equivalent mass of one compound, calcium carbonate, so results from different labs can be compared. Calcium carbonate's molar mass is 100.09 g/mol, the figure behind the mmol/L-to-mg/L factor and the French degree's 10 mg/L definition. These are industry conversion constants, not standards-body figures.
Sources
- USGS Water Science School, Hardness of Water
- Water Quality Association, Glossary of Terms
- Penn State Extension, How to Interpret a Water Analysis Report
- Wikipedia, Water hardness (unit definitions for dH, fH, Clark and mmol/L; a secondary compilation, not a regulator or standards-body page, used only because no such page states these non-US degree factors)


