Announcing 'Mash Made Easy', a mash pH adjustment assistant

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.
Announcing 'Mash Made Easy' version 1.30

Changes made to this spreadsheet since version 1.20:
------------------------------------------------------------------------
1) Added a new malt classification for "Brown/Mid Roast" which is to be used with brown malts that are roasted, but not considered deep roasted (and are not caramel or crystal malts). The typical Lovibond range for brown roasted malts spans from about 38L to 130L (Metric: 100 EBC to 350 EBC).

2) Simplified and made critical output fixes on the sparge water acidification page.

All current or new users should upgrade to version 1.30. Download this upgrade at the link below. As always, free and complete.
 
As with most of these, I'm confused as to which category to put various malts. For example, is Rye Malt a base malt or a specialty? I think it would be helpful to have a list of 'most' malts and their appropriate category or perhaps work it into a dropdown as well.
 
A few comments. I'm comparing the results that your software is giving with what I got for Bru n' Water. I have no idea which is more accurate - but Brun'water is considered the gold standard. My grain bill is 15lb Pale 2 row, 1lb 10oz Black Patent (500), 1lb 10oz Caramel 120, 1lb 10oz Chocolate Malt (350) and 1lb 6oz Rye Malt (4.7). Your software is giving me a pH of 5.36 without any mineral additions. I have very clean water to begin with. On the other hand, Brun'water is giving me a pH of 5.11. Considerably different. I'm curious if I'm doing something wrong, or which should I trust?

Perhaps more importantly, after adding the same mineral additions in both, the pH in BrunWater falls to 4.9 and yours only falls to 5.2. I suppose the fall about the same, but BruNwater indicates I need to raise my pH considerably whereas yours would suggest it's perhaps a tad low, but possibly in the range to work with...

Maybe the only way to really test it is to mash in and take a pH reading to see who is right, but I thought you might have a comment or suggestion.
 
One other thing, I think it would be a good idea to add mineral addition options to raise pH, such as Pickling Lime (Slaked Lime) or Ca(OH)2 and Baking Soda.
 
A few comments. I'm comparing the results that your software is giving with what I got for Bru n' Water. I have no idea which is more accurate - but Brun'water is considered the gold standard. My grain bill is 15lb Pale 2 row, 1lb 10oz Black Patent (500), 1lb 10oz Caramel 120, 1lb 10oz Chocolate Malt (350) and 1lb 6oz Rye Malt (4.7). Your software is giving me a pH of 5.36 without any mineral additions. I have very clean water to begin with. On the other hand, Brun'water is giving me a pH of 5.11. Considerably different. I'm curious if I'm doing something wrong, or which should I trust?

Perhaps more importantly, after adding the same mineral additions in both, the pH in BrunWater falls to 4.9 and yours only falls to 5.2. I suppose the fall about the same, but BruNwater indicates I need to raise my pH considerably whereas yours would suggest it's perhaps a tad low, but possibly in the range to work with...

Maybe the only way to really test it is to mash in and take a pH reading to see who is right, but I thought you might have a comment or suggestion.

Followup on this. I brewed this Thursday and used the mineral additions according to Brun'water. I was shooting for 5.4 pH and took a measurement 20 minutes into the mash. My pH reading was 5.44. So this would seem to suggest (with a single data point of course) that your software would have underestimated the pH by about 0.2. Not a huge difference but if I has not used any Calcium Hydroxide to raise the pH I would have likely ended up as low as 5.0.
 
A few comments. I'm comparing the results that your software is giving with what I got for Bru n' Water. I have no idea which is more accurate - but Brun'water is considered the gold standard. My grain bill is 15lb Pale 2 row, 1lb 10oz Black Patent (500), 1lb 10oz Caramel 120, 1lb 10oz Chocolate Malt (350) and 1lb 6oz Rye Malt (4.7). Your software is giving me a pH of 5.36 without any mineral additions. I have very clean water to begin with. On the other hand, Brun'water is giving me a pH of 5.11. Considerably different. I'm curious if I'm doing something wrong, or which should I trust?

Perhaps more importantly, after adding the same mineral additions in both, the pH in BrunWater falls to 4.9 and yours only falls to 5.2. I suppose the fall about the same, but BruNwater indicates I need to raise my pH considerably whereas yours would suggest it's perhaps a tad low, but possibly in the range to work with...

Maybe the only way to really test it is to mash in and take a pH reading to see who is right, but I thought you might have a comment or suggestion.

I know what makes my program tick, and I don't know what makes the other program tick, so with that bias in mind it goes without saying that I have every confidence in mine. I also know that my DI_Mash pH data regressions originate from maltsters own internal lab tests. That said, Rye Malt seems to be outside of the realm of either program at the present time. And I was constantly receiving mash pH data from my Beta-Testers well before release (and now I'm receiving feedback from other users post release) generally praising the overall accuracy of my program vs. others.

My program carefully considers that mineral additions will not in the real world have the full measured impact upon pH in the mash that Kolbach originally calculated (and monitored) at "knock out", which is a step that occurs well down stream of the mash and is therefore not fully relevant to the mash. I can only speculate that perhaps the other program incorrectly applies to mineralization the full impact of Kolbach's monitored knock out pH to the mash.

Due to utilizing actual maltster data my program also understands that deep roasted malts are not generally as acidic as some other programs may presume.

The only way to nominally gauge each programs pH predicting accuracy is to mash and monitor your pH. And to do so multiple times across a range of different styles. The only way to truly gauge the precision of each program is to undertake your own DI_Mash pH monitoring for every new lot of malt which you purchase. My program allows for entering these values, which then override the regression based output and offer a (theoretically at least) far more accurate output.

Basing opinions on one single mash with one single data point is not necessarily the best way to go about things.
 
Last edited:
One other thing, I think it would be a good idea to add mineral addition options to raise pH, such as Pickling Lime (Slaked Lime) or Ca(OH)2 and Baking Soda.

If 'Mash Made Easy' were to evolve to became a Swiss Army Knife capable of juggling all of the myriads of potential desired features it would no longer be intuitive or easy, defeating its very purpose.
 
Ok, I think I see a mistake I made... Does Mash Made Easy automatically determine and add the 'appropriate' base if a boost of pH is needed? I'm now seeing that it seems to have added 4.9 grams of Baking soda.... My mistake it seems, but this I think is not an intuitive way to do this. With most of the mineral additions being user driven, to have one determined automatically, I just missed it completely.

It's still fairly significantly off from Brun'water, but at least now I see there is an option to raise pH.

On the other had, I still think you should consider Ca(OH)2. After all you do have 3 options for acid additons that all serve the same exact purpose. While Ca(OH)2 has several advantages over Baking soda. 1) Alternative source for more Ca, 2) No sodium and 3) No Chloride.
 
Ok, I think I see a mistake I made... Does Mash Made Easy automatically determine and add the 'appropriate' base if a boost of pH is needed? I'm now seeing that it seems to have added 4.9 grams of Baking soda.... My mistake it seems, but this I think is not an intuitive way to do this. With most of the mineral additions being user driven, to have one determined automatically, I just missed it completely.

If pH must be raised to bring you to your chosen target mash pH, then 'Mash Made Easy' informs you automatically as to how much baking soda must be added in order to achieve your personally chosen target mash pH. Once you are aware of how it functions it is far more simple and intuitive (the "Easy" part of 'Mash Made Easy') than the tedious "hunt and peck" (as well as for some programs: adjustment entered cumbersomely as "per gallons" instead of adjustment directly converted to match your chosen strike water volume) method of mash pH adjustment offered by all of the alternative programs. The same applies to mash acidification if/as required to meet your mash pH target.

Off the top of my head, if you choose to add Ca(OH)2 instead of baking soda to raise mash pH, simply multiply the suggested baking soda addition by 0.61 and add that amount of pickling lime instead. But beware that calcium hydroxide is leagues more hazardous to handle than baking soda.

Whatever path you take, please do not fall into a trap of presuming that any mash pH program (including my own) is to be considered as gospel, and to be placed upon a pinnacle above ones own techniques and measurement. I urge you to see my other posts that address this subject in order to understand why this is critical to grasp.
 
So basically you used Briess/Weyermann pH data and fitted what you thought were appropriate regressions?
 
So basically you used Briess/Weyermann pH data and fitted what you thought were appropriate regressions?

Overall something along those lines was a very small part of what is a much bigger picture. Would you be willing to share ideas that would improve upon this?
 
Last edited:
Sub’d Thank you for this, i like anytime KISS is the theme especially with water chemistry it should be quick and easy!!
 
Overall something along those lines was a very small part of what is a much bigger picture. Would you be willing to share ideas that would improve upon this?

What's with the vague answers? You either have a new algorithm or are using some form of one or both of those that have been previously developed. This stuff isn't top secret.
 
Did a Helles last weekend and a 15 minute mash reading came in almost right on to the MME 1.3 value. Simple grain bill of 90% European Pilsner and 10% Munich I.

The more complex or darker the bill, the more variation shows up. As long as it's close, it tells me I didn't screw up somewhere. Not that it matters, as I only use the pH for tracking purposes and not "adjust on the fly". Although, if a reading were to be out of whack, I'd probably try and correct it.
 
Announcing the release of the latest (5/2/18) update for 'Mash Made Easy', in both its standard (Avoirdupois) and fully metric formats. I've altered the DI_mash pH characteristics for the "Brown" malt class, lowering the default pH across the Lovibond (or EBC) scale for this specific classification of malts, to more closely reflect the recent DI_mash test results achieved by forum member 'cire' for a representative of this class (as seen on the "Brew Science" forum). The new Version 1.40 update can be downloaded for free at the below listed website.
 
Announcing the release of the latest (5/2/18) update for 'Mash Made Easy', in both its standard (Avoirdupois) and fully metric formats. I've altered the DI_mash pH characteristics for the "Brown" malt class, lowering the default pH across the Lovibond (or EBC) scale for this specific classification of malts, to more closely reflect the recent DI_mash test results achieved by forum member 'cire' for a representative of this class (as seen on the "Brew Science" forum). The new Version 1.40 update can be downloaded for free at the below listed website.
This is timely, I ran some numbers yesterday and they seemed off. Today, got what I expected. Thanks for the update
 
Announcing the launch of my latest 7/1/18 revision, 'Mash Made Easy' version 1.50.

This version corrects for and accounts for the small amount of additional acid required to move a recipes pure (DI, Distilled, or RO) strike water to the target mash pH range. Full credit for my awareness of this requirement goes to A.J. DeLange. Earlier editions moved the grist to the mash target pH, and also accounted for any/all present alkalinity (bicarbonate) within the strike water, but assumed (incorrectly) that pure strike water itself did not also require some small level of acidification. And since even water with minerals and alkalinity present has pure water as its foundation, the small acidification adjustment made by this revision impact all sources of strike water. For most average home brewers typical small batch sizes this correction is only on the order of roughly 2%, but as A.J. advised, even a 2% improvement in mash pH targeting accuracy is beneficial, and as batch sizes go up, the magnitude of this correction becomes more pronounced and critical.

The new version 1.50 update can be downloaded for free at the below listed website. All 'MME' users (standard and metric) are advised to transition to this latest revision.
 
On the grain classification column, what about an option for acid malt. This way it could show you the results of a recipe that uses acid malt for flavoring such as BierMuncher's Ode to Arthur Irish Stout recipe. I realize without it, the spreadsheet calculates the needed acid malt for pH adjustment.
 
On the grain classification column, what about an option for acid malt. This way it could show you the results of a recipe that uses acid malt for flavoring such as BierMuncher's Ode to Arthur Irish Stout recipe. I realize without it, the spreadsheet calculates the needed acid malt for pH adjustment.

I will consider this as a potential modification for a future update. Are you willing to share this recipe, including grist components weights, strike water quantity, strike water analyticals, mineralization, and your required caustic addition (of choice) to mash at a pH of lets say 5.5?

Edit: PM me for a temporary work-around that you can use.
 
Last edited:
Announcing the launch of my latest version 1.60 edition of 'Mash Made Easy', in both standard and metric.

This version makes a radical change to the impact of strike (mash) water mineralization upon downward pH shift. It resolves a major error (as presently being discussed over on the 'Brewing Science' forum) in previous versions of Mash Made Easy, as well as several other programmers renditions of similar software, whereby formerly a change in the volume of the strike water incorrectly made a noticeable change to the pH shift due to added minerals in the mash, but as of version 1.60 the pH shift impact of a fixed quantity of minerals added to the strike water is not altered by changes (increases or decreases) in the volume of the strike water. Mineral ppm's change as mash water volume is altered, but the pH impact does not change unless your mineral quantities added to the mash are altered.

All users of version 1.50 or earlier are requested to make the upgrade to Mash Made Easy version 1.60, which is to be found at the web address listed below.
 
I like it. Nice and simple but I do have a question. Are you figuring the Calcium Chloride to be 100%? The reason I ask is I have diluted my CaCl to be 13% to be easier to measure and dispense and will need to alter the amount to compensate. Thanks for the work on this.
 
I like it. Nice and simple but I do have a question. Are you figuring the Calcium Chloride to be 100%? The reason I ask is I have diluted my CaCl to be 13% to be easier to measure and dispense and will need to alter the amount to compensate. Thanks for the work on this.

Calcium Chloride additions in Mash Made Easy are for prills (tiny pellets, the standard dry form of CaCl2) and represent CaCl2 which is in the dihydrate state. CaCl2.2H2O
 
Last edited:
Announcing the launch of 'Mash Made Easy' version 1.65, in both standard and metric editions.

I discovered a bug which was corrupting the impact of alkalinity and also of baking soda for the specific case wherein a buffering factor of any value other than 32 was selected. In previous versions of MME this bug did not materialize as long as buffering was left at its default value of 32, but when I changed the default to 45 for yesterdays release of version 1.60 I subsequently (post the release) noticed and repaired this bug. Previously (and with due apology) this bug had gone completely unnoticed by me since in editions prior to version 1.60 I had rarely (if ever) changed the buffer value from its old default value of 32 in my personal use of my spreadsheet. This buffer now properly impacts only the degree of the downward pH shift which is related to calcium and magnesium additions made to the mash water.

All users are strongly advised to transition to version 1.65, which can be downloaded at the web link seen below. As always, 'Mash Made Easy' is a free spreadsheet program for mash pH adjustment assistance.
 
Announcing the launch of 'Mash Made Easy' version 1.65, in both standard and metric editions.

I discovered a bug which was corrupting the impact of alkalinity and also of baking soda for the specific case wherein a buffering factor of any value other than 32 was selected. In previous versions of MME this bug did not materialize as long as buffering was left at its default value of 32, but when I changed the default to 45 for yesterdays release of version 1.60 I subsequently (post the release) noticed and repaired this bug. Previously (and with due apology) this bug had gone completely unnoticed by me since in editions prior to version 1.60 I had rarely (if ever) changed the buffer value from its old default value of 32 in my personal use of my spreadsheet. This buffer now properly impacts only the degree of the downward pH shift which is related to calcium and magnesium additions made to the mash water.

All users are strongly advised to transition to version 1.65, which can be downloaded at the web link seen below. As always, 'Mash Made Easy' is a free spreadsheet program for mash pH adjustment assistance.

I'm curious about the change in Buffering Capacity. Isn't your new default the number associated more with pulverized grain rather than standard coarser crush?
 
I recently transitioned from a braid to a bag, but I guess calling it the "default" is merely my means of notifying people that when they download the spreadsheet this field will come to them set to 45 rather than 32. Sort of a heads-up. What better terminology might I have applied here?

But the switch is also there because, as A.J. Delange often states, the entire Kolbach issue is still in doubt, so allowing for this, one has the flexibility to alter the degree of downward shift noticed for mineralization in order to side more with A.J. in his opinion that the actual downward pH shift effect is not as dramatic as once thought. Higher buffer values impart lower downward pH shifts.
 
Last edited:
I recently transitioned from a braid to a bag, but I guess calling it the "default" is merely my means of notifying people that when they download the spreadsheet this field will come to them set to 45 rather than 32. Sort of a heads-up. What better terminology might I have applied here?

But the switch is also there because, as A.J. Delange often states, the entire Kolbach issue is still in doubt, so allowing for this, one has the flexibility to alter the degree of downward shift noticed for mineralization in order to side more with A.J. in his opinion that the actual downward pH shift effect is not as dramatic as once thought. Higher buffer values impart lower downward pH shifts.

From a recent email exchange with D.M. Riffe:

"Pulverized grains with a color rating of < 4 °L have an average buffering capacity of ~ 48 mEq/kg (when normalized to deLange's data). However, Kai Troester's research indicates that for a typical crush, the buffering capacity is ~ 73% of that, implying a buffering capacity of ~ 35 mEq/kg in a typical brewing situation."

Just an FYI. How would you describe your crush?
 
With the bag I could likely go much finer, but for now I'm gaping at 0.032".

That's fine, but certainly not "pulverized" like discussed in the exchange between Riffe and I. YMMV. Just wanted to give you a heads up.
 
Announcing the release of 'Mash Made Easy' version 2.00, in both standard and metric formats.

Before I get into the features that demanded a transition from series 1 to series 2, first I must apologize for such rapid fire revision releases. In conjunction with ongoing discussions over on the 'Brew Science' forum, I've been squashing bugs in 'MME' rather rapidly, and since I want you to be using the best version available at any given time, I have been rushing out revisions. But after I sat back and reviewed the consequences of the series of fixes, I noticed that 'MME' was no longer giving reasonable output for darker recipes. The problem, which manifested itself ever more pronouncedly as recipe color darkened, turned out to be in the way I was computing the overall aggregate grists nominal DI_pH (deionized water mash pH). pH is a logarithmic scale, base 10. The transition to logarithmic pH reduction required essentially a new heart (or engine) for 'MME'. It turns out in the end that the really dark malts are well more acidic than I had initially assumed. If you brew predominantly lighter colored beers, you may not notice much (if any) change, but if you brew dark beers, you will indeed notice the change.

So here are the changes that warrant a jump in version number from 1.XX to 2.00.:

1) Logarithmic pH reduction properly attributes more acidity to darker malts. And well more to the very darkest of malts (with a catch as seen just below).
2) In reviewing my on hand DI_pH data for roasted malts, I discovered something huge that may potentially have gone unnoticed by anyone before, with this being that deep roasted malted grains become progressively well more acidic as their color darkens, as opposed to unmalted deep roasted grains holding to a very tight range of DI_pH values that is effectively a fixed value with respect to acidity (and DI_pH). This radical change in perspective demands that the dark roasted malts be separated into two distinct categories, so the single former "Dark Roasted" class has been eliminated, and replaced with "Roasted Malt" (the one that grows in acidity as malt color darkens), and "Roasted Barley" (the one that does not grow in acidity as grain color darkens). NOTE: If you cut and paste recipes from earlier 1.XX versions to 2.00, you will notice that the downstream data is missing for "Deep Roasted", and output is radically corrupted. Your easy fix for this will be to enter the malt class selector in column 'B' and select either "Roasted Malt" or "Roasted Barley" (as required by your malt/grain). When the fields to the right for both DI_pH and mineral adjusted pH re-populate for this malt/grain you will have fully resolved the problem.
3) Where formerly 'MME' attempted to assign a range of DI_pH values to your batches predominant base malt of Lovibond color 3L or less (EBC 6.5 or less) by type of region, it now does so far more properly by offering you the actual range of DI_pH values anticipated for your predominant base malt. If this is confusing simply accept the default. This drop down selector is located in the lower right hand corner of the spreadsheets main page.

I'm about mentally burned out from coding for awhile, so this revision will stand until or unless end user reports flag bugs.

All users are strongly advised to transition to version 2.00, which makes radical changes and corrections (including a few not discussed above), and can be downloaded at the web link seen below. As always, 'Mash Made Easy' is a free spreadsheet program for mash pH adjustment assistance.
 
Last edited:
Announcing the release of 'Mash Made Easy' version 2.10, in both standard and metric formats.

OK, I just couldn't avoid adding things to 'MME', even though I stated above that I was done messing with it for awhile. Forum member 'oldwhiskers' had asked (somewhere above) if I could add 'Acid Malt' as a selectable malt choice within the "drop downs", and with version 2.10 I have done this. It isn't quite as precise as the values seen in the standard acidification choices section, and it (currently) does not respond to changes within the "% concentration" field (remaining fixed at the default of 3%, which is the value I currently prefer), but it should be close enough for Government work (as they say).

I've also took the liberty to bump the acidity up a bit for the "Caramel/Crystal" group, via correcting for its DI_pH slope after reviewing more DI_pH data for this malt class. Effectively reverting this entire class of malts back to an older model for acidity, while simultaneously correcting for the acid value of crystal malts in the extremes of the 150-220 Lovibond color range at the same time. And making the entire range of this malt classes Lovibond colors fit better to available data.

***All users should move to version 2.10, which is free, and available at the below listed website.***
 
For Mash Made Easy V_2.10 Metric, where do I enter the amount of lactic acid required to reach the Desired Target Mash pH?
 
For Mash Made Easy V_2.10 Metric, where do I enter the amount of lactic acid required to reach the Desired Target Mash pH?

You don’t, it calculates it for you. It’s the reverse of what you are probably used to: you enter target pH and it tells you what to add to reach it.
 
Back
Top