Water Chemistry
Why your water matters, and how we handle it for you
Water makes up 90%+ of your beer. The ions in it (calcium, magnesium, chloride, sulfate, sodium, bicarbonate) affect everything from hop bitterness perception to mash pH to mouthfeel. The water chemistry section lets you define your source water, set a target profile, and calculate the salt additions to get there.
How It Works
You start with a source water profile: your tap water or RO/distilled. Then you set a target, either from our BJCP style presets (which automatically match your recipe's style) or as a custom profile. The builder shows you where your current water sits relative to the target for each ion, with visual bars you can read at a glance.
The Auto-Calculator
Hit Auto-Calculate and we solve for the optimal combination of brewing salts to match your target. This isn't trial-and-error. It's a mathematical optimizer that finds the best answer in one pass.
Bounded least squares
unique to Brewing.ItEach brewing salt contributes specific ions at known rates. Gypsum adds calcium and sulfate, calcium chloride adds calcium and chloride, and so on. The problem is finding the combination that gets all six ions as close to the target as possible, without going negative (you can't remove salt). We solve this as a weighted least-squares optimization with bounds. Chloride and sulfate are weighted more heavily because the Cl:SO₄ ratio has the biggest impact on flavor.
Smart rounding
Nobody measures 9.47g of gypsum. After solving, we round to 0.1g increments, but we don't just round each salt independently. We test all possible floor/ceil combinations and pick the one that minimizes total ion error. This matters because rounding one salt up might offset rounding another down.
Mash & sparge splits
The builder splits your total salt additions proportionally between mash and sparge water based on their volumes. This gives you the exact grams to add to each pot.
What the Ions Actually Do
Calcium (Ca) : promotes enzyme activity, yeast health, and beer clarity. 50–150 ppm is typical.
Magnesium (Mg) : yeast nutrient in small amounts. Too much tastes sour/astringent. 10–30 ppm.
Sodium (Na) : rounds out flavor at low levels, harsh and salty above ~75 ppm.
Chloride (Cl) : enhances malt sweetness, body, and fullness. Key half of the Cl:SO₄ ratio.
Sulfate (SO₄) : accentuates hop bitterness. Dry, crisp, assertive. The other half of the Cl:SO₄ ratio.
Bicarbonate (HCO₃) : resists pH change (alkalinity). High bicarb pushes mash pH up, which is a problem for pale beers.
The Cl:SO₄ Ratio
This is the single most impactful water chemistry metric for beer flavor. It controls the balance between malt fullness and hop crispness:
| Cl:SO₄ | Character |
|---|---|
| < 0.5 | Very hoppy: dry, crisp bitterness |
| 0.5–0.8 | Hop-forward, balanced toward bitterness |
| 0.8–1.2 | Balanced |
| 1.2–2.0 | Malt-forward, softer, rounder |
| > 2.0 | Very malty: full, sweet character |
When you select a BJCP style target, we set the Cl:SO₄ ratio automatically. A West Coast IPA gets a sulfate-heavy profile (~0.4:1). A Scottish ale gets chloride-heavy (~2:1). You can always override this with a custom target.
The Five Brewing Salts
Each salt adds specific ions at known rates per gram per liter. The optimizer works with these exact stoichiometric values:
| Salt | Adds |
|---|---|
| Gypsum (CaSO₄) | Ca + SO₄ |
| Calcium Chloride (CaCl₂) | Ca + Cl |
| Epsom Salt (MgSO₄) | Mg + SO₄ |
| Table Salt (NaCl) | Na + Cl |
| Baking Soda (NaHCO₃) | Na + HCO₃ (optional) |
Baking soda is optional in the auto-calculator because bicarbonate is usually handled separately via acid additions for pH adjustment. Toggle the NaHCO₃ checkbox if you want it included.
Connection to Mash pH
Your water profile feeds directly into the mash pH prediction. Calcium and magnesium consume alkalinity (via Kolbach's factors), while bicarbonate adds it. When you change your salt additions, the predicted mash pH updates automatically. If it's outside the 5.2–5.6 range, the builder recommends acid or baking soda adjustments.
See all the numbers come together in real time.
See this in the recipe builder