Brewtarget / brewtarget

Main brewtarget source code repository.
GNU General Public License v3.0
312 stars 135 forks source link

Minimum and maximum recommended IBU values do not change when switching between Tinseth's and Rager's #630

Closed henriksod closed 2 years ago

henriksod commented 2 years ago

I was brewing a stout and input the values for hop additions and let the tool compute the estimated IBU using Rager's method. The IBU landed on 83.7 which was my target IBU using this method. However, the IBU/GU landed on 1.05 which states that the beer is Way Hoppy. When I switched to Tinseth's method, IBU landed on 55.1 and IBU/GU on 0.69 which is Extra Hoppy.

I think it is misleading if the minimum and maximum values of IBU for a particular style do not change with the IBU estimation method used. I assume the min and max values are based on Tinseth's method and are hardcoded in the style config.

FYI the stout turned out really good, maybe a bit more on the bitter side but that was probably due to the coffee addition in secondary and not the hop addition.

I am using Brewtarget 2.3.0

matty0ung commented 2 years ago

Glad the stout turned out well. (I actually just had a can of Brewdog vanilla stout, and was thinking about a homebrew version!)

It's a good question about the IBU. I'll defer to @mikfire on what intended behaviour is, but my instinct is to say that there are two different things here: the IBU range for the style and the predicted IBU for a particular recipe. I would expect the IBU range for the style to be fixed, because, AIUI, IBU is ultimately a real thing that's measurable as parts per million of isohumulone in the beer. And then, for a particular recipe, I would expect the "predicted IBU" to change depending on which formula is chosen. But happy to hear other ways of looking at it. (I'm currently working on parts of the code to do with units and measurement so it would be a good opportunity to make a fix or enhancement if we need to.)

mikfire commented 2 years ago

I am at a loss as to how to answer this, because I am not quite sure where to start explaining. My fastest answer is this isn't a thing that can be fixed, but that's okay because there is nothing here to be fixed.

The IBU/GU slider makes absolutely no reference to the styles. It is exactly what it says it is -- the ratio between the calculated IBU and (OG -1) * 1000. The labels brewtarget displays are, to my knowledge, from rocketman's imagination. The scale brewtarget uses to determine which label to display is also, to my knowledge, from rocketman's imagination. If you want, look at IbuGuSlider::setValue() to see the scale.

You can stop reading here unless you really want to know more. Sorry if this seems slightly ranty.

Each estimation formula is dependent upon when the hops were added in the boil and how much at each step. The final IBU value has destroyed all of that information, and there is simply no accurate way to convert from one estimate to another. If you choose to dig into the code for brewtarget, you will see we do NOT do such a conversion. We actually recalculate the value each time you change the estimation method.

All of the estimation formulae suck. You can read https://alchemyoverlord.wordpress.com/tag/ibu-model/ for reasons why -- specifically look to the "Factors Influencing IBUs" section. No professional brewer depends on them directly. The only real way to measure IBU of the beer is by a laboratory, using fun things like centrifuges and photospectrometers. I suspect part of the art and mastery of a master brewer is to develop their own method for estimating IBU that becomes better over time, based on feedback from the lab.

So even if we could convert directly from Tinseth to Rager and back again, that wouldn't allow us to reference the style guides for the IBU/GU slider. The BJCP style guides simply provide that raw, unit-less number, probably from the example beers provided for each style as either measured by a laboratory or by taking a min/max from the labels. There simply is no way to get from our estimation to the numbers in reality.

Finally. IBU/GU ratio is of questionable value. Theoretically, it measures the perceived bitterness of your beer. What you perceive as bitter, and what I perceive as bitter is likely to be different, and what a trained BJCP judge can perceive is likely different still. Unless you are actually measuring the IBU of your beer, the number is at best a qualitative indicator. As you saw, by changing the estimating formula, the IBU/GU changed. I don't think you would have perceived a difference in the final beer.

If you've read this far, the best I can suggest is to choose one estimation formula and stick with it. Figure out how 55(Tinseth) tastes and if you think that is too hoppy for a stout. I would also recommend ignoring the IBU:GU ratio, but I suspect I hold a minority opinion about it.

@matty0ung PS -- no, it isn't "one IBU equals one part per million (ppm) of isomerized alpha acids (IAAs)". It is way more complex than that. See https://alchemyoverlord.wordpress.com/tag/ibu-model/ for the better definition.

henriksod commented 2 years ago

Thank you @mikfire for the explanation. I agree that the perceived bitterness is individual. I just found it a bit misleading that the IBU/GU changed so drastically when switching between Tinseth's and Rager's. For a person that does not have that much experience with IBU levels and how it corresponds to the perceived bitterness, it might be misleading to have IBU/GU in the tool if it is not consistent.

I think we can close the issue. Thanks again for the explanation!