Stop chasing water profiles
Every water calculator hands you a target profile with six numbers, and every brewer’s instinct is to hit all six. You usually can’t, and more importantly, you shouldn’t try. The numbers aren’t equally important, and most of them aren’t even the same kind of number. Here’s the priority order that actually matters in the glass, and what it costs you to miss each one.
Four kinds of number
The mistake behind profile-chasing is treating every ion as a bullseye. In practice a water profile mixes four different kinds of target. Bands: sulfate and chloride are perceived in ranges: 270 vs 300 ppm sulfate is imperceptible; 100 vs 300 is a different beer. Floors: calcium needs a minimum for process reasons and gains you almost nothing beyond it. Ceilings: magnesium and sodium mostly just need to stay under a line. And inputs: bicarbonate isn’t a flavor target at all; it’s a variable in the mash pH equation that your acid dose resolves. Once you sort the six numbers into those four buckets, most of the anxiety disappears.
Sulfate and chloride are the beer
With mash pH handled, sulfate and chloride do most of what water does to flavor. Martin Brungard puts their share of malt-and-hop flavor impact, with pH right, at roughly 95%. Sulfate dries and sharpens the finish; chloride rounds and fills. These two deserve your attention: get each into the band its style wants (roughly 150–300+ ppm sulfate for assertively hoppy beers, 50–120 for balanced, and chloride 80–120 for malt-forward ones), and you’ve captured most of the value in the entire exercise.
The sulfate-to-chloride ratio is real but it’s a direction, not a destination, and it only means something at an absolute anchor. A 1:1 ratio at 10 ppm each is soft, nearly blank water; 1:1 at 200 ppm each is intensely minerally. Both read “balanced” on a ratio dial. So aim for the absolute numbers, and let the ratio fall out of them. And when your ratio is off but both ions are in their bands, you’re arguing about 2.5:1 vs 3:1, a difference no tasting panel will find.
Calcium: important, but not the way you think
Calcium is the most misunderstood number on the sheet, because it’s genuinely important, just not as a point target. It’s flavor-neutral at brewing levels; its jobs are process jobs: yeast flocculation, protecting the mash enzymes, protein coagulation in the boil, knocking out oxalate before it becomes beerstone. All of that needs a floor (roughly 40–50 ppm) and is indifferent above it. A pale ale at 95 ppm calcium and the same beer at 110 are the same beer.
Here’s the liberating part: you almost can’t miss the floor, because calcium arrives free with the anions you actually want. Build 300 ppm of sulfate from RO water with gypsum and the gypsum brings ~125 ppm of calcium along; add 100 ppm chloride with calcium chloride and that’s another ~55. Your “problem” on hoppy beers is usually calcium riding over the profile number, which is fine: it’s flavor-neutral, and the sulfate it paid for isn’t. The one deliberate exception: soft-water lager traditions (Pilsen sits at ~7 ppm calcium) really did brew with almost none, trading slower flocculation for what the style wanted. That’s a choice, not an accident. Make it on purpose.
Sodium is seasoning; magnesium is a myth
Sodium does to beer what salt does to soup: at moderate levels (say 30–100 ppm) it amplifies perceived fullness and malt sweetness, which is why malty and dark profiles carry Na 25–40 and why a stout misses it slightly when it’s absent. Two rules: it’s for chloride-led beers (sodium plus high sulfate reads harsh and minerally), and it’s a ceiling: past 100–150 ppm it stops seasoning and starts tasting salty. Missing a stout’s sodium by 15 ppm costs a touch of mouthfeel; nobody’s beer was ruined by it.
Magnesium is the profile number you can ignore almost entirely. The “yeast needs magnesium” claim is true and irrelevant: malt delivers on the order of 70–140 ppm of magnesium into the wort all by itself, several times what yeast requires, so the 10–17 ppm in a water profile is nutritionally a rounding error. Flavor-wise it’s neutral until roughly 30–40 ppm, then turns sharp and sour-bitter (and Epsom salt in quantity is literally a laxative). Treat it as a ceiling of ~30, never add it without a specific reason, and don’t spend a gram of Epsom chasing Munich’s 17.
Bicarbonate: the most important number you should never chase
This sounds like a contradiction. Alkalinity, which bicarbonate carries, is arguably the single most consequential property of brewing water, because it’s what pushes mash pH up and out of range. But the bicarbonate figure in a historic profile is an artifact, not a goal. Munich’s ~300 ppm describes limestone groundwater; Munich brewers developed dunkel because that alkalinity demanded a dark, acidic grist to balance it. Copy the bicarbonate onto a pale grist and you’ve recreated their problem, not their beer, and you’ll immediately pay acid to undo it.
What you actually target is the outcome: mash pH around 5.2–5.6, pale beers toward the bottom, dark toward the top. Your water’s alkalinity is an input to that equation; the acid dose is the reconciler. The one time to add bicarbonate on purpose is the mirror-image case: a very dark grist on very soft water, where the predicted pH lands below target with no acid at all. In that case a measured bit of baking soda is the traditional and correct move.
When your water can’t get there
Salts only add ions; nothing you sprinkle in removes them. If your tap water already exceeds the profile on chloride or sulfate, no calculator, ours included, can subtract its way to the target. The tool for that is dilution: cutting your water with distilled or RO scales every ion down proportionally, and then the salts can build back only what you want. The other unreachable case is the carbonate profiles (Munich, Dublin, London) from soft water: their calcium historically arrived dissolved in limestone, and without alkalinity-raising salts you can’t have their Ca 77–120 alongside their tiny sulfate and chloride numbers. The practical answer is to use a style profile instead, which is what those cities’ water was for anyway.
What the ✦ Auto button actually does
brewwtr’s auto-mineral button is this whole article expressed as arithmetic. It weighs sulfate and chloride errors most heavily (4× calcium’s weight, with sodium between at 2× and magnesium at 0.5×), measures every miss relative to its target so small numbers aren’t drowned out, and charges overshooting four times what undershooting costs. Calcium is modeled as brewers actually use it: a hard floor around 50 ppm, a free ride up to the profile value, a cap at 150. The sulfate-to-chloride ratio acts as a tiebreaker only while both ions are inside their targets; the moment your source water exceeds one side, the ratio term switches off rather than chase an unreachable balance into harsh territory. No ion is pushed past the recommended range (or a historic profile’s own value where those run higher; Burton earns its sulfate), alkalinity salts are never auto-dosed (that decision stays yours), and when your water is simply above the profile, it tells you to dilute instead of pretending salt can fix it. Every one of those behaviors is pinned by the engine’s test suite.
FAQ
Do I need to hit my target water profile exactly?
No. Sulfate and chloride are perceived in bands (±20–30 ppm is imperceptible), calcium is a floor (~40–50 ppm) rather than a bullseye, sodium and magnesium mostly just need to stay under their ceilings, and bicarbonate is an input to mash pH, not a flavor target. Get sulfate and chloride in band and the rest largely takes care of itself.
Is the sulfate-to-chloride ratio more important than the actual ppm?
The ratio sets the beer’s direction (dry versus round), but it only means something at an absolute anchor: 1:1 at 10 ppm and 1:1 at 200 ppm are very different beers. Aim for the absolute numbers the style wants and the ratio falls out of them.
Why did auto-adjust take calcium past my profile’s number?
Because calcium is flavor-neutral and rides in with the salts that carry sulfate and chloride. The optimizer accepts calcium anywhere between its ~50 ppm floor and a 150 ppm cap if that buys a better landing on the anions you can actually taste.
Why won’t the calculator match Munich or Dublin bicarbonate?
Deliberately. Those numbers describe limestone groundwater, and matching them on anything but a dark grist just creates alkalinity you’d immediately remove with acid. Target mash pH instead; add baking soda only when a dark grist on soft water predicts below target with no acid at all.
My water is already above the profile on an ion. Now what?
Dilute. Salts only add ions; nothing subtracts them. Cutting your water with distilled or RO scales everything down proportionally, and the calculator will suggest a percentage when it detects this.
Ion flavor roles and priorities follow Martin Brungard’s guidance (Bru’n Water; “Brü’s Views,” Brülosophy, 2016) and Palmer & Kaminski, Water (2013); wort magnesium from malt per Briggs et al., Brewing: Science and Practice. Salt ion contributions and the auto-doser’s behavior are verified in brewwtr’s engine test suite.