Grains per Gallon to Degree of Hardness Converter

Water hardness appears in different units depending on where the report comes from, and two of the most common are grains per gallon, used widely in the United States, and the German degree of hardness, written dH, used across much of Europe. This converter changes grains per gallon into German degrees so you can compare a US water report against a European appliance specification or guideline. It works through a single shared reference: the concentration of calcium carbonate in milligrams per litre. First the calculator multiplies the grains per gallon figure by 17.118 to get milligrams per litre, using the fixed definitions that one grain is 64.79891 milligrams and one US gallon is 3.785411784 litres. Then it divides that milligrams per litre figure by 17.848, the number of milligrams per litre of calcium carbonate that defines one German degree of hardness. Because every constant in the chain is a standard fixed value, the conversion is exact rather than an estimate, and the same input always returns the same result. Enter the hardness from your own water test to read it in German degrees. The full formula and a worked example that reconciles to the calculator default are shown below so you can check every step yourself.

To convert, multiply grains per gallon by 17.118 to get mg/L of CaCO3, then divide by 17.848: dH = gpg x 17.118 / 17.848. A reading of 10 gpg equals 171.18 mg/L, which is 9.59 dH.

Source: US National Oceanic and Atmospheric Administration (NOAA). As at 25 June 2026.

From your US water report or softener
As mg/L of CaCO3--
German degrees (dH)--

Formula

mg/L = gpg x 17.118
dH = mg/L / 17.848
17.118 = 64.79891 mg per grain / 3.785411784 L per US gallon
17.848 = mg/L of CaCO3 per German degree

Grains per gallon is first restated as milligrams of calcium carbonate per litre, then divided by 17.848 to express the same hardness in German degrees.

Worked example

A US water report shows total hardness of 10 grains per gallon.

  1. mg/L = 10 x 17.118 = 171.18 mg/L of CaCO3
  2. dH = 171.18 / 17.848 = 9.5910
  3. Rounded to two decimal places, the result is 9.59 dH

These are the calculator's default inputs, so the result above matches the widget exactly.

Common hardness conversions

Grains per gallonmg/L as CaCO3German degrees (dH)
117.120.96
585.594.80
10171.189.59
15256.7714.39
20342.3619.18

Definitions of the grain, the US gallon and water hardness reporting follow US federal standards.

Grains per Gallon to Degree of Hardness Converter: frequently asked questions

What is a German degree of hardness?

A German degree of hardness (dH) is a measure of water hardness where one degree equals 17.848 milligrams per litre of calcium carbonate. It is widely used in Europe on water reports and appliance specifications.

What is one grain per gallon in mg/L?

One grain per US gallon equals 17.118 milligrams per litre of calcium carbonate. This comes from the fixed definitions that one grain is 64.79891 milligrams and one US gallon is 3.785411784 litres.

How many German degrees is 10 grains per gallon?

Ten grains per gallon is 171.18 mg/L of calcium carbonate, which divided by 17.848 gives 9.59 German degrees of hardness.

Is dH the same as millimoles per litre?

No. German degrees and millimoles per litre are different scales. To move between them you convert through the common milligrams per litre of calcium carbonate figure.

Are these figures exact?

Yes, to the precision shown. The grain, the US gallon and the degree definition are fixed constants, so the calculator computes the conversion deterministically rather than estimating it.

Official sources

Reviewed by the CalculatorHub team, edited by James Graham, 25 June 2026. See our methodology. This is general information, not financial, tax, legal or investment advice.