Enter your water report's total hardness or calcium and magnesium values to find total hardness in mg/L, gpg, and a hardness category.
Table of contents
How to use our Water Hardness Calculator
- Choose the path that matches your report: a total hardness reading, or separate calcium and magnesium concentrations.
- For a total reading, select the unit printed next to it and enter the number. For mineral results, enter calcium and magnesium in mg/L.
- Click Calculate to see total hardness in mg/L as CaCO3, grains per gallon (gpg), and the hardness category.
- Sanity-check the result by comparing the displayed unit with your report. Switching between mg/L as CaCO3 and gpg should change the number while keeping the same water hardness.

Definitions
Total hardness: Hardness caused mainly by dissolved calcium and magnesium, usually stated as an equivalent amount of calcium carbonate (CaCO3).
mg/L as CaCO3: Milligrams per liter expressed as calcium carbonate equivalent. It lets different hardness-causing minerals be reported on one common scale.
Grains per gallon (gpg): A common US water-hardness unit. One gpg equals 17.1 mg/L as CaCO3. [1]
Calcium (Ca) and magnesium (Mg): Dissolved mineral concentrations that are converted and added to estimate total hardness.
Hardness category: Soft is 60 mg/L as CaCO3 or less; moderately hard is above 60 through 120; hard is above 120 through 180; and very hard is above 180. [1]
Common mistakes and quick fixes
Mistake: Entering calcium hardness as though it is total hardness.
Fix: Use the total-reading path only when the report says total hardness or water hardness. Otherwise, enter dissolved calcium and magnesium separately.
Mistake: Choosing mg/L or gpg based on how large the number looks.
Fix: Copy the unit printed beside the total hardness result. Do not choose a unit from the number alone.
Mistake: Entering calcium or magnesium hardness reported as CaCO3 in the mineral path.
Fix: The mineral path needs dissolved calcium (Ca) and magnesium (Mg) concentrations in mg/L.
Mistake: Typing a comma as a decimal mark, such as 1,01.
Fix: Use a decimal point, such as 1.01, and enter one number only.
Mistake: Treating a hardness category as a water-softener recommendation.
Fix: The category describes hardness only. Treatment choices also depend on water use, other test results, and the equipment being considered.
Limitations & Key Assumptions / Boundary Conditions
- The separate-mineral calculation includes calcium and magnesium only; it does not identify temporary or permanent hardness.
- The mineral path requires calcium and magnesium concentrations in mg/L, not calcium hardness or magnesium hardness already expressed as CaCO3.
- A hardness category describes the entered mineral result. It does not determine whether treatment is needed or select a water-softener size.
- The result applies to the water sample or report values entered. It cannot show changes in water quality at another time or location.
- Blank fields, negative values, malformed numbers, and values too large for a finite calculation cannot produce a result.
Methodology
Calculation
If a report already gives total hardness, the calculator keeps a reading in mg/L as CaCO3 unchanged or converts a gpg reading to mg/L as CaCO3. For separate mineral results, it converts calcium and magnesium to calcium carbonate equivalents, then adds them. The conversion factors follow the published hardness calculation. [2]
Total hardness (mg/L as CaCO3) = calcium (mg/L) x 2.497 + magnesium (mg/L) x 4.118
Total hardness (mg/L as CaCO3) = total hardness (gpg) x 17.1
Total hardness (gpg) = total hardness (mg/L as CaCO3) / 17.1
Category
The calculator compares the unrounded mg/L as CaCO3 result with the category boundaries. A result exactly equal to 60, 120, or 180 mg/L stays in the lower category: Soft, Moderately hard, or Hard. The household ranges and the 17.1 conversion are described by University of Maryland Extension. [1]
Worked example
With calcium of 40 mg/L and magnesium of 12 mg/L, total hardness is 40 x 2.497 + 12 x 4.118 = 149.296 mg/L as CaCO3. Dividing by 17.1 gives about 8.73 gpg, so the category is Hard.
The calculation accepts zero as a valid hardness reading and classifies it as Soft. It does not use pH, alkalinity, iron, manganese, household water use, or appliance details, so it cannot diagnose a water problem or select treatment equipment.