Water Hardness Calculator
Is your water hard enough to damage pipes and appliances?
Enter your water hardness reading in any unit and instantly convert it to all common scales. See exactly where your water falls on the hardness classification scale and what that means for your appliances, pipes, and daily use.
—
Send feedback
💡 Share your idea or report a problem
✓ Thanks! We'll take a look.
Learn more
How It Works
The formula, explained simply
Think of water hardness the way you think of dissolved sugar in a glass of water. Up to a point you cannot see it at all — then when the water evaporates or heats up, the dissolved mineral comes out of solution and sticks to whatever surface is nearby. Calcium and magnesium are the main culprits. They dissolve as water travels through limestone and dolomite rock formations, and they do not stay invisible forever.
Water hardness is always reported as a calcium carbonate (CaCO3) equivalent, regardless of which actual minerals are present. This is a standardization choice — it makes all hardness readings comparable on a single scale. One unit of CaCO3-equivalent hardness in ppm means one milligram of calcium carbonate equivalent is dissolved per liter of water. The conversion to grains per gallon uses the fixed ratio of 17.118 — there is no approximation, it is a defined conversion between US and metric units.
The classification thresholds — soft, moderately hard, hard, very hard, extremely hard — are used consistently across water utility reports, appliance installation guides, and water treatment product specifications. They are not arbitrary. They map to measurable outcomes: below 60 ppm you will rarely see mineral staining; above 180 ppm your water heater is working harder than it needs to; above 300 ppm your plumbing and appliances are under active stress.
When To Use This
Right tool, right situation
Use this calculator any time you have a hardness number from a water test kit, a lab report, or a municipal water quality statement and you want to understand what it means practically. It is directly useful when you are comparing water softener specs (which use gpg) against a lab report (which uses ppm), shopping for a dishwasher or washing machine with hardness limits listed in the manual, or setting up a home brewing or aquarium system where water chemistry affects the outcome.
This calculator is not the right tool when you are trying to determine the source of your hardness — whether it is calcium-dominant or magnesium-dominant — which requires a full water chemistry analysis with separate ion readings. It also does not predict softener sizing; that requires knowing daily water consumption, the softener resin capacity rating, and the regeneration salt efficiency, none of which are inputs here.
Stop trusting this result if your water source changes — moving, drilling a new well, or a municipal supply switch all require a fresh test. A number from last year may not reflect what is coming out of your tap today.
Common Mistakes
Why results sometimes look wrong
The most common mistake is confusing total hardness with calcium hardness alone. Many aquarium test kits and some pool test kits report calcium hardness (KH or dKH) separately from total hardness (GH). These are not the same number. This calculator works with total hardness as CaCO3 equivalent — if your kit reports calcium hardness separately, you need total hardness for an accurate classification.
A second frequent error is treating ppm and mg/L as always identical. For water hardness they are interchangeable because the density of water is defined as 1 kg/L, making 1 mg/L exactly 1 ppm by mass. But for other water quality parameters — chlorine, for example — the conversion involves different chemistry. Do not apply this shortcut outside of hardness calculations.
The third mistake is acting on a single test result without accounting for seasonal variation. Groundwater hardness can fluctuate 10-20% between seasons depending on rainfall and aquifer recharge rates. If your reading is near a decision threshold — say, 170 ppm when you are deciding whether to install a softener — run the test again in a different season before committing to equipment.
The Math
Worked examples and deeper derivation
The core math is three fixed multipliers. To convert from ppm to gpg: divide by 17.118. To convert from ppm to mmol/L: divide by 100.087 (the molecular weight of CaCO3). To go from gpg to ppm: multiply by 17.118. These are exact unit definitions, not statistical estimates.
For example: 185 ppm divided by 17.118 gives 10.81 gpg. The same 185 ppm divided by 100.087 gives 1.849 mmol/L. All three numbers describe the same water — they are just different rulers measuring the same thing.
The classification bands are defined as: 0-59 ppm = soft, 60-119 ppm = moderately hard, 120-179 ppm = hard, 180-299 ppm = very hard, 300 ppm and above = extremely hard. These boundaries are set at round numbers in ppm because ppm is the most commonly reported unit. When you are working from gpg, the equivalent boundaries are roughly 0-3.5 gpg (soft), 3.5-7 gpg (moderately hard), 7-10.5 gpg (hard), 10.5-17.5 gpg (very hard), and above 17.5 gpg (extremely hard).
Expert Unlock
The thing most explanations skip
The conversion factor of 17.118 is sometimes rounded to 17.12 or even 17.1 in field applications — at high hardness values this rounding accumulates. At 500 ppm the difference between dividing by 17.1 versus 17.118 is about 0.3 gpg, which matters if you are sizing a softener resin bed to its exact capacity limit. Additionally, hardness expressed as CaCO3 equivalent treats calcium and magnesium as chemically equivalent contributors — but in practice, magnesium scale is softer and more soluble than calcium scale, meaning two water samples with identical total hardness can behave differently inside a heat exchanger. Softener systems that distinguish calcium from magnesium in their regeneration cycle handle this correctly; simple ion exchange units treat all hardness as equivalent.
What does my water hardness number actually mean for my home?
Need something this doesn't cover?
Suggest a tool — we'll build it →