Tool · free
Water hardness calculator - units and fractions
You have calcium and magnesium from the lab and need total hardness in a particular unit? Calculate it here and see every unit at once - mg CaCO₃/l, mmol/l, meq/l, °dH and °fH. Add alkalinity and we will split the hardness into carbonate (temporary) and non-carbonate (permanent).
Enter calcium and magnesium, or hardness measured by titration.
No data yet?
Load it in the app under "New project" → "From backup".
They are kept in this browser only - they disappear when you clear the site data. You can download them, or move them into a project where they stay for good.
How to move this into a project of your own
- Download the table - the CSV file lands in your Downloads.
- Create a free account: an e-mail address and a password is all it takes.
- In the app choose "New project" → "From your sheet" and point it at the downloaded file. The station and the parameters are created for you, and LimnoLog computes the calculated ones itself.
| Date | Time | Ca [mg/l] | Mg [mg/l] | Alk. [mg CaCO₃/l] | Hardness |
|---|
The current reading is only a preview - it joins the list and the file only once you add it with the button.
† fractions calculated from hardness derived from calcium and magnesium. The app computes carbonate and non-carbonate hardness only from hardness measured by titration, so for these rows they will stay empty there - enter the titration result to get them.
🔒 Kept in this browser only. Nothing is sent to a server - clearing the site data removes this table.
Formulas
Total hardness expressed as calcium carbonate is the sum of calcium and magnesium concentrations converted through their molar mass ratios (Standard Methods, method 2340 B):
hardness [mg CaCO₃/l] = 2.497 · Ca [mg/l] + 4.118 · Mg [mg/l]
Unit conversions (all describe the same value):
1 mmol/l = 100.09 mg CaCO₃/l1 meq/l = 50.04 mg CaCO₃/l1 °dH (German degree) = 17.848 mg CaCO₃/l1 °fH (French degree) = 10 mg CaCO₃/l
Carbonate and non-carbonate fractions
Carbonate hardness is the part of hardness balanced by bicarbonates - in practice the lesser of alkalinity and total hardness. The rest is non-carbonate (permanent) hardness, associated with sulfates and chlorides:
carbonate = min(alkalinity, total hardness)non-carbonate = max(0, total hardness − alkalinity)
When alkalinity exceeds hardness, all hardness is carbonate and the excess alkalinity comes from sodium and potassium - the calculator then shows zero non-carbonate hardness, because a negative value has no physical meaning.
Calculated versus measured
Hardness computed from calcium and magnesium is not the same as hardness determined by EDTA titration, although in clean water the results are close. A divergence points to other divalent ions or to an error in one of the determinations. If you have a titration result, enter it in the optional field - the calculator will use it for the fractions and show both values side by side.
Frequently asked questions
How does hardness calculated from Ca and Mg differ from titrated hardness?
The calculated value assumes hardness comes only from calcium and magnesium and converts their concentrations into a calcium carbonate equivalent. EDTA titration measures the sum of all ions binding EDTA, so in waters with iron, manganese or aluminium the result can be higher. Agreement between the two is a good consistency check on the analysis.
What are carbonate and non-carbonate hardness?
Carbonate (temporary) hardness is the part balanced by bicarbonates - it precipitates as scale on boiling. Non-carbonate (permanent) hardness stays in solution because it is accompanied by sulfates and chlorides. The two add up to total hardness.
How do I convert German degrees to mg CaCO₃/l?
One German degree (°dH) equals 17.848 mg CaCO₃/l, that is about 0.178 mmol/l and 0.357 meq/l. The French degree (°fH) is easier to work with: exactly 10 mg CaCO₃/l.
Do I need both ions to calculate hardness?
Yes - total hardness is the sum of the calcium and magnesium contributions, so leaving one out understates the result. With calcium alone you get calcium hardness, not total hardness.
Are my calculations saved anywhere?
The last twenty stay in this browser - nothing is sent to a server and no account is needed. You can download them as a CSV file and load it into a project in the app, where they stay for good. Clearing the site data removes this memory.
Hardness says more side by side than on its own
A single number will not tell you whether the inflow differs from the intake, or whether titrated hardness agrees with the value calculated from calcium and magnesium. In LimnoLog you record calcium, magnesium and alkalinity for every station (also offline), and total hardness and the fractions are computed for you.
Open the app Explore LimnoLog featuresRead more