The worlds easiest mash pH adjustment assistant method?

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
I have been graciously gifted the Barth and Zaman paper first mentioned in post #186 above. Some amazingly interesting things emerge from it, but I must seriously question their choice to sample at only 5 minutes into the mash for each of their multiples of mash pH tests. There is indeed a wealth of interesting information to be pondered within this paper, and I will list a couple of their "shocking" findings here:

1) They discovered that for the specific case of measuring at 5 minutes into a single infusion mash the Kolbach "3.5" divisor for Ca++ is actually (on average, and rounded) ~14.8 for Pilsner, ~7.2 for Pale Ale and ~12.2 for Munich malts respectively.

2) They discovered that the multiple point titration "curve" for their Pilsner malt was essentially linear to within 5% precision across a rather broad titration range, and not highly exponentially curved as for the Pilsner malt titration chart seen in post #108 above. They admit that they were quite surprised to find the buffering to be so linear.

If, as per Kolbach, the 3.5 divisor for calcium ions emerges post the boil (which is where he actually measured and thereby determined it, presumably for a German Pilsner malt as my guess), and at 5 minutes into the mash this divisor is a (minuscule as to its pH shifting impact) 14.8, then I speculate intuitively (while cautiously admitting that intuition generally leads to bad science) that the impact of calcium ions upon the downward shift of pH is gradual, and only minimally noticed at only 5 minutes into the mash. This leads me to wonder what the divisors value would be at 15 min., 30 min., 45 min., and 60 min. into the mash.

If we linearly regress Pilsner malts 14.8 divisor at 5 minutes and 3.5 divisor at 120 minutes (presuming here a typical 60 min. mash and 60 min. boil) the simple linear equation that evolves is:

Ca_Divisor_Value = -0.0982609(Time_Min) + 15.2913

Solving linearly for the Ca++ ions divisor value at a few evolving times within the brewing process thereby gives us:
5 min. = 14.8
15 min. ~= 13.8
30 min. ~= 12.3
45 min. ~= 10.9
60 min. ~= 9.4
120 min. = 3.5

Disclaimer: It is purely speculation that this phenomenon is linear with respect to time, and it far and away most likely is not.

A few thoughts:

1.) I too am curious about the 5 minute measurement. Let's assume for a second that this paper represents a valid change in our thinking on the downward pH shift from Ca (they don't measure for the effect of Mg here but we can assume something comparable). Obviously, the larger the Ca content, the more drastic this drop in mineralization change is. Very curious findings and very interesting.

2.) Like I said in our PM, this should not be shocking (or "shocking" ;)). We can safely assume that the a2 and a3 titration values, if measured for most base malts, would be very small compared to their crystal, roast and Sauermalz counterparts. These values are really what sway the linear vs. polynomial characteristics of the malt.

With respect to the mineralization portion, I have what I think is a parallel in my industry (electric utility): Load Masking. Load masking is a phenomenon by which distribution feeder loading (residential, commercial, etc. customers) is "hidden" by the fact that we have a considerable amount of photovoltaic, wind, or waste gas generators on the circuit. It is important to us to "unmask" the "hidden" load in order to be able to do some of our important background calculations for transformer loading , etc.

What we may have here, particularly for batches produced with hefty source water calcium or added calcium, is a major overestimation of the downward pH shift from Ca (and assuming Mg, although we know the effect of Mg is much in general because of lower values in source water and lower additions of Mg salts). This could have the effect of "masking" other errors in a pH algorithm, especially is the modern denominators are much larger than derived by Kolbach.
 
One way to look at this (again rather broadly and purely speculatively and intuitively) is to witness that it is generally accepted that a drop in pH of 0.1 to 0.3 pH points is witnessed across the boil, and to witness generally the same magnitude of drop within the mash via moderate mineralization in the form of calcium ions, and to sum across them a midpoint as being the end of the mash, then by this loose and intuitive ballparking one can derive that roughly half of the Ca++ induced pH drop occurs within the mash, and roughly half occurs during the boil. And in doing this purely mental exercise one derives precisely that which AJ has told us, I.E, that only roughly half of the pH drop which Kolbach measured occurs within the mash. By this weak/intuitive approach to justifying AJ's observation, the "ballpark" Ca++ mEq divisor should be 7 as opposed to 3.5, and (by further inference) the Mg++ mEq divisor should be 14 instead of 7. And critically all mash pH measurement must be taken at the termination of the mash.

I fully agree that if the science as we have evolved it and as witnessed within our spreadsheet models matches closer to Kolbach than to AJ and now Barth and Zaman, then something "else" is deeply and fundamentally in error elsewhere within our simplistic math models which drive our software.
 
Last edited:
One way to look at this (again rather broadly and purely speculatively and intuitively) is to witness that it is generally accepted that a drop in pH of 0.1 to 0.3 pH points is witnessed across the boil, and to witness generally the same magnitude of drop within the mash via moderate mineralization in the form of calcium ions, and to sum across them a midpoint as being the end of the mash, then by this loose and intuitive ballparking one can derive that roughly half of the pH drop occurs within the mash, and half occurs during the boil. And in doing this purely mental exercise one derives precisely that which AJ has told us, I.E, that only roughly half of the pH drop which Kolbach measured occurs within the mash. By this weak/intuitive approach to justifying AJ's observation, the "ballpark" Ca++ mEq divisor should be 7 as opposed to 3.5, and (by further inference) the Mg++ mEq divisor should be 14 instead of 7. And critically all mash pH measurement must be taken at the termination of the mash.

Definitely adds another dimension to troubleshooting disparities between measured and predicted pH.
 
Further speculation:

No matter what we call it, whereby here we are calling it "Mash pH", what is always being measured is the emerging "Wort pH".

For far and away most beers a measure of acidity (typically in the form of the lactic acid on the surface of acid malt, lactic acid alone, or phosphoric acid) has been added to the mash liquor which is during the mash merely emerging (or evolving) into Wort. Since most people tend to grab "mash pH" samples at the mark of 10 to 15 minutes into the mash, it is likely that some portion of the measured acidity thereby seen by the pH meter is in the form of the added acid which has yet to have fully interacted with the embedded causticity of the grist. This would imply a false low pH reading correlating more inline with Kolbach purely by coincidence. We intuitively infer the "causation" of this lower measured mash pH reading thereby with Kolbach's formula constants being correct, even within the mash, and even at any time junction therein, yet we know implicitly (but utterly fail to apply) that correlation alone does not necessarily imply causation, as well as knowing that Kolbach did not measure pH drop due to Ca++ or Mg++ during the mash, but rather post boil. That Barth and Zaman did not witness this Kolbach correlating level of pH drop is potentially due to their not having acidified their samples mash water. They properly thereby pH measured only the 5 minute mark emergence of H+ ions due to exclusively the interaction of calcium ions upon malt phosphates, etc..., and not any H+ ions present due merely to intentional water acidification. With this assessment of mine in itself being yet more intuition...

The mash pH (Wort pH not fully emerged, as this occurs only post boil) is logically at its most evolved/emerged during the mash phase only at mash terminus. Thus the critical need to measure "mash pH" at mash terminus.
 
Last edited:
Thus the critical need to measure "mash pH" at mash terminus.

This is system dependent though. If you are constantly recirculating, you are likely to see not only a faster "locking in" of the pH (Mash pH = Wort pH), but also a steady pH across the entire mash.

So, as you like to say Larry, it depends!
 
So, as you like to say Larry, it depends!

Indeed!!! And as such, as we evolve our software to match our highly local reality, we often find that others are not always seeing very good agreement with it via using it within and measuring/comparing it with their own local reality. Whereby here "local reality" = "local system and also process related methodology". Thus the inevitable: "I find that so and so's software is superior to yours", or the generally more palpably agreeable and gratifying "I find that your software is superior to so and so's".

As such, it would be best if everyone had the tool (math model) outline whereby to make/tweak their own locally agreeing software, and thus this thread.

That it is often stated within peer reviewed brewing literature that small sample mashes generally do not scale well to the production level is merely more evidence for the above. In addition to their mash pH sample drawing time that has been brought into question, Barth and Zaman's measured reality at the small sample level may simply not yield the same revised Kolbach constant valuations by malt at a different scale, or for any process other than single infusion at their chosen mash infusion temperature, etc...
 
Last edited:
On June 28, 2017 AJ deLange stated this on this very Brewing Science forum:

I have not done any formal experimental evaluations of the shift in part because I know that the considerations mentioned above would mean that such a project would be no mean undertaking. If Kolbach couldn't do it I don't see how I could. I have, therefore, cleaved to the 3.5 mEq of calcium number and use that as the basis for all calculations. I think I have good estimates of malt buffering capacities so that part of my protocol is fairly robust but I am well aware that the actual number I would encounter with any real grist will not be 3.5 but only near it.

This seemingly conflicts with times on this forum when he has stated that the factor is likely closer to 7 as opposed to 3.5.

Here is the link: Question about differences in calculated Mash pH shift due to mineralization

The question thus becomes: If AJ himself openly admits to never having tested whereby to confirm or deny Kolbach, what if any credence should be placed upon any of his papers or statements with regard to it?
 
On June 28, 2017 AJ deLange stated this on this very Brewing Science forum:



This conflicts with times when he had stated that the factor is likely closer to 7 as opposed to 3.5.

Here is the link: Question about differences in calculated Mash pH shift due to mineralization

The question thus becomes: If AJ himself openly admits to never having tested whereby to confirm or deny Kolbach, what if any credence should be placed upon any of his papers or statements with regard to it?

Well, keep in mind that he was the first person I ever encountered who made provisions, in spreadsheet form, for the user to change the Kolbach denominators. He had the foresight to know it was not set down in stone to be 3.5.

This is certainly a worthwhile topic. I think A.J. knows that, we know it, etc. It's just about sorting out what we have at our disposal. I've started drafting a letter to the authors of the paper on Ca mineralization shift and maybe they can shed some light on the process and give us more info.
 
The one clear thing that emerges from the confusion is that there is no such thing as Residual Alkalinity. If the Ca++ mEq divisor is not 3.5, and the Mg++ mEq divisor is not 7, and if these divisors are highly variable, then RA computation is merely an arbitrarily constructed figment of the imagination.
 
The one clear thing that emerges from the confusion is that there is no such thing as Residual Alkalinity. If the Ca++ mEq divisor is not 3.5, and the Mg++ mEq divisor is not 7, and if these divisors are highly variable, then RA computation is merely an arbitrarily constructed figment of the imagination.

Keep in mind, I’m not ready to throw my cards all in on this. I have not been able to fully digest the results and the experimental method although I find a few things a bit suspect.
 
In posts #201 and #202 above we touched upon the likelihood of fundamental flaws that higher CA++ and Mg++ mEq divisors would emerge in our software. Somewhere earlier (and likely within this thread) I mentioned that it is human nature to cull and cherry pick among our data sources pHDI's and buffering valuations to select or massage (OK, cheat) whereby to arrive at values which we feel better conform our software to locally measured real world observation. AJ quite properly equated such as this with confirmation bias. If within the mash these two "Kolbach" divisors must be variably adjusted to levels perhaps up to 2 to 3 times higher than the ones Kolbach arrived at (during and post WW2) for the case of his measurement well downstream of the mash and post boil at knock-out, then the apparent solution is to re-visit, re-cull, and re-cherry pick among our sources pHDI's and buffering values whereby to better overall conform the divisor revised math models to measured local reality once again. These data sources derived pHDI and buffer values are embarrassingly statistically dissimilar enough to permit a broad range of our confirmation bias related tweaking thereby. The weakness/flaw is both in our highly disagreeing and thereby highly untrustworthy data sources and our human nature driven confirmation biases whereby to attempt to emerge gold from garbage. Much of this relates to my recent interest in purchasing an auto-titrator whereby to better cull gold from garbage, or better yet, whereby to throw out the garbage and begin anew from fresh (whereby in the end not a single person among those on this forum who read it came forward to express that there would be value in this, and I have speculated that this is because they find no value in how malts react or participate in the making of beer and place all faith in the mystical magic of brewing water profiles instead). For now it seems that D.M. Riffe's simple averages of a broad collection of the garbage data at hand are likely the best we have to go by. And it's not good enough to simply average all of the garbage values whereby to turn them into gold.

Short version: Will the real malt mEq/Kg.pH acidities (positive and negative, and variable as they are with respect to ones chosen mash pH target) please stand up!
 
Last edited:
A tale of two sets of base malt pHDI's and buffering values:

Preface: I once intuitively thought that it mattered little as to the chosen pHDI and buffering value for any given malt, as long as both in combination derived the same mEq/Kg malt acidity. And I was wrong.

Example: Presuming that we can lump together two base malts:
Malt 1: pHDI = 5.70, buffer = 45.00 mEq/Kg.pH5.4
Malt 2: pHDI = 5.82, buffer = 32.14 mEq/Kg.pH5.4

How many mEq's are required to move 1 Kg. each of these (same as at least to being base) malts to a mash target pH of 5.4?

Delta_pH = mEq's/(Buffer x Kg.)

Malt 1: (5.7-5.4) = mEq's/(45 x 1)
mEq's/Kg = 13.5

Malt 2: (5.82-5.4) = mEq's/(32.14 x 1)
mEq's/Kg = 13.5

They indeed do appear to be the very same as to acidity, so why not simply average their values and run with the average (as per D.M. Riffe)?

(5.7 + 5.82)/2 = 5.76 pHDI
(45 + 32.14)/2 = 38.57 Buffer

(5.76-5.4) = mEq's/(38.57 x 1)
mEq's = 13.89

13.89 does not equal 13.5

Houston, we have a problem!!!!

And if we solve all of the above for mEq's at targets of 5.2 or 5.6 pH we reveal yet more and potentially larger problems revealing how disastrous it is to sum and average, or even to presume that mEq equivalence at one target pH will mean mEq equivalence at other target pH's. (Hint: It doesn't)

And the basis for the problem lies (I believe) in trying to treat a logarithm derived value (pH) as if it was linear and not logarithmic.

Yet we sum mEq/Kg's across the malts in a grist (with respect to their weights) to derive the combinations resultant linearly computed "Mash pH" projection as is easily observed within post #44 of this thread. Houston, do we thereby generate the same or perhaps a similar problem via ignoring logarithms in our linear sum calculations?

Another possible flaw in the ointment at the core of our software????
 
Last edited:
In posts #201 and #202 above we touched upon the likelihood of fundamental flaws that higher CA++ and Mg++ mEq divisors would emerge in our software. Somewhere earlier (and likely within this thread) I mentioned that it is human nature to cull and cherry pick among our data sources pHDI's and buffering valuations to select or massage (OK, cheat) whereby to arrive at values which we feel better conform our software to locally measured real world observation. AJ quite properly equated such as this with confirmation bias. If within the mash these two "Kolbach" divisors must be variably adjusted to levels perhaps up to 2 to 3 times higher than the ones Kolbach arrived at (during and post WW2) for the case of his measurement well downstream of the mash and post boil at knock-out, then the apparent solution is to re-visit, re-cull, and re-cherry pick among our sources pHDI's and buffering values whereby to better overall conform the divisor revised math models to measured local reality once again. These data sources derived pHDI and buffer values are embarrassingly statistically dissimilar enough to permit a broad range of our confirmation bias related tweaking thereby. The weakness/flaw is both in our highly disagreeing and thereby highly untrustworthy data sources and our human nature driven confirmation biases whereby to attempt to emerge gold from garbage. Much of this relates to my recent interest in purchasing an auto-titrator whereby to better cull gold from garbage, or better yet, whereby to throw out the garbage and begin anew from fresh (whereby in the end not a single person among those on this forum who read it came forward to express that there would be value in this, and I have speculated that this is because they find no value in how malts react or participate in the making of beer and place all faith in the mystical magic of brewing water profiles instead). For now it seems that D.M. Riffe's simple averages of a broad collection of the garbage data at hand are likely the best we have to go by. And it's not good enough to simply average all of the garbage values whereby to turn them into gold.

Short version: Will the real malt mEq/Kg.pH acidities (positive and negative, and variable as they are with respect to ones chosen mash pH target) please stand up!

I think the main issue I have with instantly latching onto the results of the Barth and Zaman paper is that, similar to what we discussed about the buffering factor being influenced by mash mixing, we have a set of data taken at 5 minutes in, with a temperature less than normal mash temperature, and little mixing.

I'm not sure what to make of the disparities, but I think at this point it would be difficult to make sense of these larger Kolbach divisors. The thing that gets me is that we have pH DI values from maltsters to at least partially confirm that pH DI is not way off even for what you call "Garbage" titration data. If we remove the other variables involved and just make a mash with artificially mineralized water and a known malt, we have to assume the pH shift comes from one or the other.

Let me run some analysis quick to try and illustrate this.
 
A tale of two sets of base malt pHDI's and buffering values:

Preface: I once intuitively thought that it mattered little as to the chosen pHDI and buffering value for any given malt, as long as both in combination derived the same mEq/Kg malt acidity. And I was wrong.

Example: Presuming that we can lump together two base malts:
Malt 1: pHDI = 5.70, buffer = 45.00 mEq/Kg.pH5.4
Malt 2: pHDI = 5.82, buffer = 32.14 mEq/Kg.pH5.4

How many mEq's are required to move 1 Kg. each of these (same as at least to being base) malts to a mash target pH of 5.4?

Delta_pH = mEq's/(Buffer x Kg.)

Malt 1: (5.7-5.4) = mEq's/(45 x 1)
mEq's/Kg = 13.5

Malt 2: (5.82-5.4) = mEq's/(32.14 x 1)
mEq's/Kg = 13.5

They indeed do appear to be the very same as to acidity, so why not simply average their values and run with the average (as per D.M. Riffe)?

(5.7 + 5.82)/2 = 5.76 pHDI
(45 + 32.14)/2 = 38.57 Buffer

(5.76-5.4) = mEq's/(38.57 x 1)
mEq's = 13.89

13.89 does not equal 13.5

Houston, we have a problem!!!!

And if we solve all of the above for mEq's at targets of 5.2 or 5.6 pH we reveal yet more and potentially larger problems revealing how disastrous it is to sum and average, or even to presume that mEq equivalence at one target pH will mean mEq equivalence at other target pH's. (Hint: It doesn't)

And the basis for the problem lies (I believe) in trying to treat a logarithm derived value (pH) as if it was linear and not logarithmic.

Yet we sum mEq/Kg's across the malts in a grist (with respect to their weights) to derive the combinations resultant linearly computed "Mash pH" projection as is easily observed within post #44 of this thread. Houston, do we thereby generate the same or perhaps a similar problem via ignoring logarithms in our linear sum calculations?

Another possible flaw in the ointment at the core of our software????

Not mine. You sum mEqs of each malt, not average them.
 
Not mine. You sum mEqs of each malt, not average them.

Post #44 sums them, and just above I stated that this may introduce a "similar" problem of ignoring logarithmic impact, whereby the summed values may introduce a degree of error. Or may not. And post #216 above states:
Yet we sum mEq/Kg's across the malts in a grist (with respect to their weights) to derive the combinations resultant linearly computed "Mash pH" projection as is easily observed within post #44 of this thread. Houston, do we thereby generate the same or perhaps a similar problem via ignoring logarithms in our linear sum calculations?

The confusion is in that I also speculated that the problem was perhaps the same (in conjunction with adding similar). This "same" was probably unwarranted, and "similar" is all I should have ran with, sans for "same" being in relation to ignoring log impacts potentially yielding answers that are not fully correct.
 
Last edited:
If we remove the other variables involved and just make a mash with artificially mineralized water and a known malt, we have to assume the pH shift comes from one or the other.

Let me run some analysis quick to try and illustrate this.

Okay. Let's try a few things out:

Let's use my "European Pilsner" malt class as I think it is the least suspect, or "garbage", with respect to it's titration values and pH DI. We'll use 32 l as our water volume, 5.67 kg of malt, and 5.4 as out pH target (pHz). I'll run it with the linear equivalent equation because it does not hurt much to do so (we know linear is a decent fit for this type of malt):

European Pilsner (mEq/kg) = a1 * (pHz - pH DI)
European Pilsner (mEq/kg) = -34.40 * (5.4 - 5.84)
European Pilsner (mEq/kg) = 15.14
European Pilsner (mEq) = 85.82

Grist pH = 5.838

Now let's add enough Gypsum to hit 100 mg/l in the strike water, which turns out to be ~ 13.7 g. Using Kolbach's value of 3.5, we drive pHz to:

pHz = 5.605

Let's assume we actually did perform this and measured a pHz of 5.63. Let's use A.J.'s "back of the napkin" estimate of 50% of the nominal Kolbach for the mash and change the denominator in our calcs to 7:

pHz = 5.721, Δ (to 5.63)= 0.09

That Δ now has to come from somewhere in order for us to rectify it. Since we have no other constituent parts, we have to assume it means we modeled the malt incorrectly. With the linear equation, we only have 2 levers to pull: pH DI and a1.

In order to hit pHz = 5.63, we'd need to drop the pH DI to 5.75, which while not unreasonable in the slightest, would go against the maltsters value of 5.84, which if anything, considering the unknowns involved, is the most trustworthy of the "garbage" data we have. How about a1? We'd have to drop that to -20 to hit 5.63. I did not titrate this malt so I cannot speak to whether this is practical, but we have only doubled the Kolbach denominator at this point.

Let's triple it (10.5), which means we are still not at the proposed Pilsner malt denominator from the paper.

pHz = 5.76, Δ (to 5.63)= 0.13

In this case, pH DI and a1 would have to drop to 5.71 and -13 respectively. We are starting to get a bit squirrelly here. Now let's move the denominator to the value from the Barth and Zaman paper:

pHz = 5.783, Δ (to 5.63)= 0.15

In this case, pH DI and a1 would have to drop to 5.69 and -9.5 respectively. We are not in realistic territory anymore, IMHO.

Obviously, I made 2 very big assumptions here: 1.) the measured pHz and 2.) the data for the Pilsner, but I mostly wanted to illustrate that if you isolate things to a few variables, you would have to make tweaks to the malt that may be unreasonable to justify the Barth and Zaman paper.
 
Post #44 sums them, and I stated that this may introduce a "similar" problem of ignoring logarithmic impact, whereby the summed values may introduce a degree of error. Or may not. And post #216 above states:


The confusion is in that I also speculated that the problem was the same. This "same" was probably unwarranted, ans "similar" is all I should have ran with, sans for "same" being in relation to ignoring log impacts potentially yielding answers that are not fully correct.

We are talking charge conservation here. You sum all mEq components for all the constituent parts of mash in order to drive the sum to zero and find pHz or pHm.

I'm not following how error could be induced there.
 
We are talking charge conservation here. You sum all mEq components for all the constituent parts of mash in order to drive the sum to zero and find pHz or pHm.

I'm not following how error could be induced there.

Because in deriving the mEq's initially by which to sum them when combined and from there to asses the blended pH, ias for the entire process of Delta_pH involvement, we treat pH's as if they were merely numbers and not exponents. They are exponents. There may be relevance here, or there may not be. I'm merely bringing it to the table for consideration.
 
Last edited:
Because in deriving the mEq's initially by which to sum them when combined and from there to asses the blended pH, in the entire process of Delta_pH involvement we treat pH's as if they were merely numbers and not exponents. They are exponents. There may be relevance here, or there may not be. I'm merely bringing it to the table for consideration.

I guess this is maybe the difference between what you do and what I do. I don't deal in pH blending or Δ pH values.

I calculate individual mEq values for each constituent part of the mash and tell Excel to get me the pH value that drives the sum to 0:

Q (mEq) (pHz) = 0

In this case, pH is a number. It is simply the value used to zero my sum.

EDIT: I take that partially back. Obviously, in the malt equation I use I have to take a pH delta between pHz and pH DI. I'm still not sure where error would be induced though.
 
Lets regress to where I brought this up. It was involved in solving for why it is wrong to merely group malts of a certain type together and then sum up their pH's and sum up their buffering values whereby to average them as per D.M. Rffe. I showed above that this introduces unwarranted error (whereby 13.89 mEq/Kg does not equal 13.5 mEq/Kg, even if only two malts are being averaged, and for the carefully selected case whereby both malts individually exhibit 13.5 mEq/Kg). I speculated from this that summing pH's and taking averages induces error (13.89 not equaling 13.5) and I speculated that summing exponents as if they were mere numerals whereby to divide by 2 and arrive at an average is flawed due to ignoring the exponential (or more specifically, log base 10 based) nature of pH. I did not in this include speculation as to error induced by summing and then averaging mEq's. Yet somehow this morphed away from summing and averaging pH's being incorrect and into summing and averaging mEq's being incorrect. In this morphing allow me to be confused, but also NOW to "similarly" question that mEq's themselves, being derived via Delta_pH to begin with (which is a process of the subtraction of one pH from another, or otherwise "summing pH's") may also here be "similarly" somehow in error (albeit perhaps not perhaps the "same", although in the mEq resolving process itself there is a pH summing [as subtraction] relationship).
 
Last edited:
More speculation: If we could somehow directly utilize the the Henderson-Hasselbalch equation perhaps we could resolve all of this and specifically determine how mixing one malt with another yields an actually measured blended pH that is properly math modeled whereby the buffering model projected pH agrees with the reality for all cases, processes, etc... But there are too many unknowns.
 
Lets regress to where I brought this up. It was involved in solving for why it is wrong to merely group malts of a certain type together and then sum up their pH's and sum up their buffering values whereby to average them as per D.M. Rffe. I showed above that this introduces unwarranted error (whereby 13.89 mEq/Kg does not equal 13.5 mEq/Kg, even if only two malts are being averaged, and for the carefully selected case whereby both malts individually exhibit 13.5 mEq/Kg. I speculated from this that summing pH's and taking averages induces error (13.89 not equaling 13.5) and I speculated that summing exponents as if they were mere numerals whereby to divide by 2 and arrive at an average is flawed due to ignoring the exponential (or more specifically, log base 10 based) nature of pH. I did not in this include speculation as to mEq's. Yet somehow this morphed away from summing and averaging pH's being incorrect and into summing and averaging mEq's being incorrect. In this morphing allow me to be confused, but also NOW to question that mEq's themselves, being derived via Delta_pH to begin with (which is a process of the subtraction of one pH from another, or otherwise "summing pH's") may also her be "similarly" somehow in error.

A few things:

1.) I agree that if you (not You, the Royal you), in any way use a weighted average of pH DI and a1 (or buffering constant, etc.), that you may very well be inducing some error. We are on the same page there.

2.) I have to admit that there are Δ pH equations in my algorithm, specifically in the water calcs (Source pH to pHz, Alkalinity pH to Source pH, etc.) but only the malt equation treats these Δ pH values as numbers. For instance:

Function dQw1L(pH As Double) As Double
'Returns charge difference on 1 L of pure water
dQw1L = 1000 * (10 ^ (-pH) - 10 ^ (pH - 14))
End Function

ΔQ (mEq/l) Water = dQw1L(pHz) - dQw1L(pHs)

where pHz = Equilibirum pH or Mash pH and pHs = Source water pH

Similarly, all other pH related calcs have background functions using a log approach to pH.

3.) I'm not sure how you could incorporate a log approach into the malt equation:

ΔQ(mEq/kg) = a1 * (pHz - pH DI)+ a2 * (pHz - pH DI) ^ 2 + a3 * (pHz - pH DI) ^ 3

(EDIT: Or if it would need it. Maybe my ignorance to the underlying chemistry is showing.)
 
Last edited:
When all of this is someday resolved to nigh-on pH predicting perfection, will it in the end make for definitively (as in quantifiable via statistical measurement) better tasting and more stable beer? This is likely the grass roots of it. I'm personally beginning to see where your LoDO approach is likely to be better involved in the "grass roots" of it than is targeting a "Mash pH", and I've also stated a number of times that it may prove more valuable to simply adjust downstream of the mash and either pre or during or post boil and cooling to achieve a target of ~ pH 5.1 (+/- 0.1) leading into fermentation vs. messing with adjusting mash pH, for perhaps most cases, sans only those cases whereby the water is highly alkaline, or the water is insufficiently alkaline and the grist is simultaneously overloaded with grossly acidic caramel/crystal and/or deep roasted malts.
 
When all of this is someday resolved to nigh-on pH predicting perfection, will it in the end make for definitively (as in quantifiable via statistical measurement) better tasting and more stable beer? This is likely the grass roots of it. I'm personally beginning to see where your LoDO approach is likely to be better involved in the "grass roots" of it than is targeting a "Mash pH", and I've also stated a number of times that it may prove more valuable to simply adjust downstream of the mash and either pre or during or post boil and cooling to achieve a target of ~ pH 5.1 (+/- 0.1) leading into fermentation vs. messing with adjusting mash pH, for perhaps most cases, sans only those cases whereby the water is highly alkaline, or the water is insufficiently alkaline and the grist is simultaneously overloaded with grossly acidic caramel/crystal and/or deep roasted malts.

Honestly Larry, no one really cares about this, IMO, except us. People want something that gives them a target and they don;t care how they get it.

I've honestly only kept going back and forth because it's intellectually stimulating, not because it matters all that much to me how my algorithm performs, although I think it performs fairly well. I don't have a financial or reputational stake in this, so which one is right or wrong matters little to me. I am proud of the algorithm, so there is that I guess.

It simply interests me and since I don't brew much (or at all) anymore, it simply functions as my only connection to the brewing world at large.
 
Honestly Larry, no one really cares about this, IMO, except us. People want something that gives them a target and they don;t care how they get it.

I've honestly only kept going back and forth because it's intellectually stimulating, not because it matters all that much to me how my algorithm performs, although I think it performs fairly well. I don't have a financial or reputational stake in this, so which one is right or wrong matters little to me. I am proud of the algorithm, so there is that I guess.

It simply interests me and since I don't brew much (or at all) anymore, it simply functions as my only connection to the brewing world at large.

I virtually mirror this assessment as being my own. The intellectual stimulation being the key. Albeit that I'm still brewing occasionally, even if only ~3-5 times per year.
 
I virtually mirror this assessment as being my own. The intellectual stimulation being the key. Albeit that I'm still brewing occasionally, even if only ~3-5 times per year.

Even though we both know it is completely foolish, we are treating the discussion like we can eliminate the pH meter if we could just map out all the parts and model them correctly. Which is definitely interesting and fun, but we both know that is an asymptotic goal, i.e. we can approach perfection but never ultimately reach it.
 
EDIT: I take that partially back. Obviously, in the malt equation I use I have to take a pH delta between pHz and pH DI. I'm still not sure where error would be induced though.

We are getting much closer to being fully on the same page. Since malt mEq/Kg.pH equations (be they linear fits, or 3 titration based curve fits) must inherently involve the Delta between two pH points after the addition of an acid or a caustic titrant, if there is (and mind you I don't know if there is) error in adding and subtracting exponents (whereby pH is an exponent means whereby to express molar concentration for what you call protons and what I call H+ ions) then we are not likely fully accounting for it whereby to negate it.
 
Even though we both know it is completely foolish, we are treating the discussion like we can eliminate the pH meter if we could just map out all the parts and model them correctly. Which is definitely interesting and fun, but we both know that is an asymptotic goal, i.e. we can approach perfection but never ultimately reach it.

That unfortunately is what the average Joe (or Josette) software user seems to expect. I wish I could count the times I've seen where forum members state that (for example) BW is so consistently accurate (by their measure) as to be perhaps only 0.01 pH points off, such that they no longer need to measure and simply use BW. It's output has changed with each revision, so I wonder if this is considered by those who find no fault in it?
 
If an assumption is made that the average grist has an aggregate grist buffer value of 40 mEq/Kg.pH, then it will require 4 mEq of acid to move 1 Kg of this averaged grist 0.1 pH points downward, or alternately 4 mEq of caustic to move 1 Kg of this averaged grist upward by 0.1 pH points.

That's the gist of the simple "on paper" calculation, and is as simple as it can get.

Remember that 88% Lactic Acid has 11.451 mEq/mL acid strength to a targeted pH of 5.4.

4 mEq/11.451 mEq/mL = 0.35 mL of 88% Lactic Acid to move 1 Kg of Grist down 0.1 pH points.
 
Last edited:
This works for knocking out water alkalinity also. Every 50 ppm (mg/L) of alkalinity residing within 1 Liter of water equals 1 mEq of alkalinity that needs to be neutralized by the addition of an acid. 50 mg/L means 50 mg of alkalinity as CaCO3 extant within every Liter. And it is these mg that we are neutralizing.

Molecular Weight of CaCO3 = 100.0869 g./mol
Valence of Ca++ = 2
Therefore: The Eq Wt of CaCO3 = 100.0869/2 = 50.04345 g, and the mEq wt of CaCO3 = 50.04345 mg
For simplicity, I'll round this to 50 mg
Therefore 1 mEq of Alkalinity = 50 mg of Alkalinity

Example:
20 Liters of water with 40 mg/L (ppm) of reported Alkalinity = 800 mg of extant Alkalinity (as CaCO3) present within the water.
800 mg / 50 mg/mEq of CaCO3 = 16 mEq's of CaCO3 present, requiring an equal amount of acid mEq's whereby to neutralize the water completely to zero alkalinity, which is an event that occurs when water is measured to have ~4.3 pH. To neutralize water only to a more normal mash pH target of ~pH 5.4, multiply this quantity of acid by ~0.9, so therefore:

~0.9 x 16 mEq to pH 4.3 = ~14.4 mEq of acid required to hit to pH 5.4

~14.4 mEq/11.451 mEq/mL = ~1.26 mL of 88% Lactic acid required.
 
Last edited:
The two examples seen immediately above would represent your "basic back of the napkin" calculations.
 
An interesting blurb on the 3.5 factor for calcium induced pH drop during the mash:


I have no access to this publication. But if this blurb is correct, then the actual mash pH depression induced by calcium is on the order of only 25% to 50% of what Kolbach tells us it should be. And it may be malt dependent. Does anyone have a copy whereby to verify this? This is a serious game changer!!!!

Way back in 2010 AJ deLange had this to say about the accepted Kolbach divisors of 3.5 for Ca++ and 7 for Mg++. He was there 5 years before Roger Barth and Rameez Zaman "rediscovered" this (I.E., the divisor for calcium being 7 to 15) in 2015. Click the link below, where at the end of post #6 AJ says for calcium the divisor is more likely to be 7 to 10 or less (whereby he may have intended to say "more" where he said less):
https://www.homebrewtalk.com/threads/mash-ph-and-water-numbers-dont-stack-up.588829/post-7673032
 
Last edited:
Back
Top