mIBU Calculator

This page provides a calculator for predicting IBUs using the mIBU method, which is described in a blog post "A Modified IBU Calculation (Especially for Late Hopping and Whirlpool Hops)". This method modifies the Tinseth IBU formula to account for post-flameout utilization. This calculator takes into account utilization from any hop stand or whirlpool, as well as the time it takes to cool the wort using an immersion chiller, counterflow chiller, or ice bath. The (optional) use of an alpha-acid solubility limit is an additional modification of the Tinseth formula, based on the experiments described in Hopping-Rate Correction Based on Alpha-Acid Solubility. The (optional) correction of IBU values based on wort pH is still another modification of the Tinseth formula, based on the experiment described in The Effect of pH on Utilization and IBUs. The (optional) correction of IBU values based on wort clarity is described in How Lautering and Wort Clarity Affect IBUs. The (optional) correction of IBU values based on krausen loss is yet another modification, based on the experiment described in The Impact of Krausen Loss on IBUs. The correction of IBU values when using pellets is yet another modification, based on the experiments described in Hop Cones vs. Pellets: IBU Differences. This calculator is described in more detail in An On-Line Calculator for the mIBU Technique.

For the temperature decay functions, default values are shown in grayish-red. The defaults should yield reasonable results for most homebrewing scenarios. The defaults are based on the wort volume, kettle diameter, and kettle opening diameter. For most homebrewers, the kettle diameter and the opening diameter are the same (with an uncovered kettle). The "exponential decay" function is probably somewhat more accurate than the "linear" function, but the linear function is easier to conceptualize (e.g. a decrease of 1.74°F per minute). If your measured decrease in wort temperature is not modeled well by these defaults, feel free to change them. To get back to a default value, enter 'd'.


Input Units: metric or imperial (e.g. gallons, ounces)

Kettle Diameter (inches): (for wort exposed surface area)
Kettle Opening Diameter (inches): (usually same as kettle diameter)

Boil Time (minutes):
Evaporation Rate (G/hr):
Wort Volume (G): pre-boil or post-boil volume
(Post-Boil) Original Gravity:
Wort/Trub Left in Kettle (G): (only needed for partial boils)
(Partial Boil) Added Water (G):

Number of Hop Additions:
Global IBU Scaling Factor:
Default Hop Form:

Apply alpha-acid solubility-limit correction
Apply pH correction with wort pH = pre-boil or post-boil

Post-Boil Temperature Decrease:
Post-Boil Wort Temperature Decay Function: linear or exponential decay
   temperature (°F) = TO_BE_CHANGED

Whirlpool and/or Hop Stand Time: minutes
cool with immersion chiller to °F; hold this temperature during hop-stand time

Forced Cooling Method:
  immersion chiller (exponential decay factor: )
  counterflow chiller (wort flow rate: gallons/min)
  ice bath (exponential decay factor: )

Wort Clarity into Fermentor:
Krausen Loss:


Save and Load:

Save to File:
Load from File:


1.0.1: (2018-May-06) Initial version. The default values for temperature decay functions are fixed, based on 6G (24l) wort in a 10G (40l) kettle, uncovered.
1.1.0: (2018-May-23) Add 'kettle diameter' and 'kettle opening diameter' fields to compute wort exposed surface area and opening area. Make linear and exponential post-boil temperature decrease defaults dependent on volume, wort exposed surface area, and opening area. Make exponential decay the default temperature decrease function. Minor bug fix in IBU computation.
1.1.1: (2018-Jun-15) Minor revision to exponential temperature decay rate constant prediction. Bug fix in linear temperature decay defaults.
1.2.0: (2018-Jul-15) Complete re-write under the hood. Add boil time. Minor fixes. New functionality: automatically save and load parameter settings.
1.2.1: (2018-Jul-18) Add option to hold hop stand at constant temperature. Minor adjustments.
1.2.2: (2018-Sep-03) Add pH adjustment. Add pre- or post-boil volume option. Minor adjustments.
1.2.3: (2018-Dec-29) Minor adjustments; no effect on computations.
1.2.4: (2019-Jan-21) Minor adjustments. If hold whirlpool temperature, do initial cooling with immersion chiller.
1.2.5: (2019-Jun-25) Add option for krausen loss.
1.2.6: (2019-Jun-28) Adjust volume use in computations; impacts hopping rates around 200ppm.
1.2.7: (2020-Feb-21) Add ability to save and load files.
1.2.8: (2020-Jun-09) Minor update to the effect of pH on auxiliary bittering compounds.
1.2.9: (2020-Sep-16) Many thanks to Marko Heyns at Grainfather for finding several bugs related to the solubility limit and temperature decay!
1.2.10: (2020-Sep-20) Update solubility-limit model and pH-loss model
1.2.11: (2020-Oct-21) Add adjustment factor for wort clarity
1.2.12: (2020-Oct-31) Add adjustment factor for pellets
1.2.13: (2020-Nov-01) Stop when degree of utilization reaches 0.01 instead of 0.001
1.2.14: (2020-Nov-07) Thanks again to Marko Heyns at Grainfather for finding a bug with the use of pellets at high hopping rate!
1.2.15: (2020-Nov-22) Minor bug fixes, checking, and cleanup.

Navigate to:
top of page
AlchemyOverlord github home page
AlchemyOverlord blog


Copyright © 2018-2020 John-Paul Hosom, all rights reserved. While I hope that you find this page useful, I make no guarantees about the accuracy or suitability of the results. Predicting IBUs is a bit of a "black art", because there are so many variables and there is so much variability. The only way to really know the IBU level of a beer is to have it professionally tested, which is something I highly recommend. Cheers!