Pre-boiling is the oldest way to soften hard, chalky brewing water without chemicals. As the water heats, calcium bicarbonate breaks down and drops out as harmless chalk, lowering the alkalinity that would otherwise push mash pH too high. This calculator estimates how much alkalinity a boil actually removes.
How it works
Above roughly 80 °C, dissolved carbon dioxide escapes and the bicarbonate equilibrium shifts, precipitating calcium carbonate:
Ca(HCO₃)₂ → CaCO₃ (precipitate) + CO₂ + H₂O
Two limits decide how far the alkalinity can fall:
- The solubility floor. Calcium carbonate is slightly soluble, so a thorough boil cannot drive alkalinity below about 50 ppm (as CaCO₃). That residual stays in solution no matter how long you boil.
- Available calcium. The precipitate is calcium carbonate, so removing alkalinity consumes calcium in a fixed ratio — about 0.40 ppm of calcium per ppm of alkalinity removed. Water that is rich in bicarbonate but poor in calcium runs out of calcium first and stops dropping.
The tool applies whichever limit binds first and reports the final alkalinity, the amount removed, and the calcium consumed.
Worked example
Hard tap water at 250 ppm alkalinity and 120 ppm calcium has plenty of calcium, so boiling drives the alkalinity down to the 50 ppm floor — a 200 ppm reduction — consuming about 80 ppm of calcium along the way. By contrast, water at 250 ppm alkalinity but only 30 ppm calcium is calcium-limited: it can only shed about 75 ppm of alkalinity before the calcium runs out, leaving roughly 175 ppm.
Tips and notes
Boil, then let the chalky sediment settle for a few hours, and carefully rack or decant the clear water off the bottom so the precipitate stays behind. If the result is calcium-limited, adding a pinch of chalk or calcium chloride before boiling lets more alkalinity precipitate. To get below the 50 ppm floor, blend in reverse-osmosis or distilled water, or finish with acid. Permanent hardness from sulphates and chlorides is unaffected by boiling and is not modelled here. All calculation runs locally in your browser.