On this page
Hardness questions look messy because a sample can contain five salts, each with its own molar mass. The trick is to turn every calcium and magnesium salt into one common currency, calcium carbonate, and then add.
Why is hardness expressed as CaCO3?
The US Geological Survey explains that hardness is caused by compounds of calcium and magnesium, and by a variety of other metals, and it reports hardness in milligrams per litre as calcium carbonate.
Each calcium or magnesium salt, whether Ca(HCO3)2, MgCl2 or CaSO4, carries exactly one Ca2+ or Mg2+ ion per formula unit. So one mole of any of them causes the same hardness as one mole of CaCO3, which is what lets you add them.
CaCO3 is also convenient: using the IUPAC standard atomic weights (Ca 40.078, C 12.011, O 15.999), its molar mass is 100.09 g/mol, which school problems round to 100.
Finally, ppm. A litre of dilute water has a mass of about 1 kg, or a million mg, so 1 mg of CaCO3 equivalent per litre is 1 part per million. If ppm itself feels shaky, our guide on calculating ppm and converting it to percent and molarity covers it first.
How do you calculate hardness of water in ppm of CaCO3?
Write the mass of each salt in mg per litre. If the question gives mg per 100 mL, multiply by 10.
Work out the molar mass of each salt.
Convert: CaCO3 equivalent (mg/L) = mass of salt (mg/L) x 100 / molar mass of salt.
Add only the calcium and magnesium salts. Sodium and potassium salts cause no hardness.
Sort the total: bicarbonates give temporary hardness; chlorides and sulphates give permanent hardness.
Worked example: five salts, one answer
A sample contains, per litre: 162 mg Ca(HCO3)2, 73 mg Mg(HCO3)2, 68 mg CaSO4, 95 mg MgCl2 and 58.5 mg NaCl. Find temporary, permanent and total hardness in ppm, using Ca = 40, Mg = 24, C = 12, O = 16, H = 1, S = 32, Cl = 35.5, Na = 23.
Ca(HCO3)2: molar mass 162, so 162 x 100 / 162 = 100 mg/L CaCO3
Mg(HCO3)2: molar mass 146, so 73 x 100 / 146 = 50 mg/L CaCO3
CaSO4: molar mass 136, so 68 x 100 / 136 = 50 mg/L CaCO3
MgCl2: molar mass 95, so 95 x 100 / 95 = 100 mg/L CaCO3
NaCl: no calcium or magnesium, so 0
Temporary hardness is 100 + 50 = 150 ppm. Permanent hardness is 50 + 100 = 150 ppm. Total hardness is 300 ppm.
Notice that 73 mg of Mg(HCO3)2 and 68 mg of CaSO4 both count as 50, while 162 mg and 95 mg both count as 100. Mass alone tells you little; moles decide.
What does 300 ppm mean in real life? The USGS scale calls 0 to 60 mg/L soft, 61 to 120 moderately hard, 121 to 180 hard, and more than 180 very hard. India's IS 10500:2012 drinking water specification from the Bureau of Indian Standards sets an acceptable limit of 200 mg/L for total hardness as CaCO3, and a permissible limit of 600 mg/L only where no alternative source exists. So this sample is very hard and above the acceptable limit. It would also waste soap, as our explainer on how soaps clean and why hard water forms scum shows.
What if you are given Ca2+ and Mg2+ ions instead of salts?
The same rule works with ions. Each mg of Ca2+ is worth 100 / 40 = 2.5 mg of CaCO3. Each mg of Mg2+ is worth 100 / 24.3, about 4.1 mg. With the exact IUPAC atomic weights (Mg 24.305), the factors come out as 2.497 and 4.118.
Example: water with 48 mg/L Ca2+ and 12 mg/L Mg2+ has 48 x 2.5 = 120 plus 12 x 100 / 24 = 50, so about 170 ppm as CaCO3. On the USGS scale, that is hard water. In the lab, these ion values usually come from an EDTA titration for calcium and magnesium, which you can then convert the same way.
Which mistakes cost marks in hardness problems?
Skipping the per-100 mL to per-litre step (answer ten times too small).
Adding NaCl or Na2SO4 to the total.
Mixing methods: using 50 (the equivalent weight of CaCO3) on one side and a molar mass on the other. Use moles with moles, or equivalents with equivalents.
Getting the bicarbonate molar masses wrong: Ca(HCO3)2 is 162 and Mg(HCO3)2 is 146.
Calling MgCl2 temporary hardness. Boiling removes bicarbonates, not chlorides or sulphates.
If you keep slipping at the same step, the Fermi Problem Library has worked problems with a step-by-step solver that explains the reasoning rather than printing an answer. If the mole idea underneath feels uncertain, the Fermi Concept Library gives each chemistry concept its own lesson.
Try one now: rework the example with the same masses given per 100 mL. You should get 3000 ppm.



