# IBU Calculator (Tinseth)

> Computes the International Bitterness Units of a beer from up to 12 hop additions (weight, alpha-acid percentage, boil time) using Glenn Tinseth's utilization model, with a 10 % utilization bonus for pellet hops, and reports the BU:GU bitterness ratio.

- Calculator id: `ibu-tinseth` · Category: Food & Cooking (`food`) · Tool name: `calculate_ibu_tinseth`
- Canonical page: https://tttkmbb.com/food/ibu-tinseth · This document: https://tttkmbb.com/food/ibu-tinseth.md · JSON definition: https://tttkmbb.com/food/ibu-tinseth.json

## Purpose

Computes the International Bitterness Units of a beer from up to 12 hop additions (weight, alpha-acid percentage, boil time) using Glenn Tinseth's utilization model, with a 10 % utilization bonus for pellet hops, and reports the BU:GU bitterness ratio.

**Use when:** You are designing or checking a homebrew recipe and need the predicted IBU for a hop schedule at a given batch size and boil gravity.

**Do not use when:** The bitterness comes from dry hopping, whirlpool or hop extracts (utilization models cover kettle additions only), or you need actual measured IBU (requires laboratory spectrophotometry).

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `batch_volume_l` | number | L | required | Post-boil volume of wort in litres that the hops end up in (1 US gal = 3.785 L). (> 0, max 100000) |
| `boil_gravity` | number | SG | required | Average specific gravity of the wort during the boil; for a full-volume boil use the original gravity, for a concentrated boil the (higher) gravity of the kettle wort. (min 1, max 1.15) |
| `hop_weights_g` | number_list | g | required | Weight of each hop addition in grams (1 oz = 28.35 g), in order. |
| `alpha_acid_percents` | number_list | % | required | Alpha-acid content of each addition in percent (from the packet), same order as the weights. |
| `boil_times_min` | number_list | min | required | Minutes each addition boils (0 for flame-out additions), same order. |
| `hop_form` | enum: whole \| pellet |  | optional, default "whole" | Pellets release alpha acids more readily; the model multiplies utilization by 1.10 for pellets. |
| `original_gravity` | number | SG | optional | Original gravity of the finished wort for the BU:GU ratio; defaults to boil_gravity. (min 1, max 1.2) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `total_ibu` | number | IBU | Sum of the IBU of all additions (mg of isomerized alpha acids per litre). |
| `additions` | list |  | Per hop addition: weight_g, alpha_acid_percent, boil_time_min, utilization_percent and ibu. |
| `bigness_factor` | number |  | Gravity term 1.65 × 0.000125^(boil_gravity − 1); higher gravity lowers utilization. |
| `bitterness_ratio` | number |  | total_ibu / ((original_gravity − 1) × 1000); below ≈ 0.3 reads malty, 0.3–0.6 balanced, above 0.6 hop-forward. |
| `style_note` | string |  | Descriptive bitterness level with typical styles at that IBU. |

## Formula

`U_i = 1.65 × 0.000125^(boil_gravity − 1) × (1 − e^(−0.04 × boil_time_i)) / 4.15 (× 1.10 for pellets); IBU_i = hop_weight_g_i × alpha_acid_percent_i / 100 × U_i × 1000 / batch_volume_l; total_ibu = Σ IBU_i; BU:GU = total_ibu / ((original_gravity − 1) × 1000)`

Tinseth's utilization model (1997) was fitted to measured homebrew batches and is the one used by most recipe software; real utilization varies with kettle geometry, hop age and wort pH, and predictions above about 100 IBU exceed what can be measured. The 10 % pellet adjustment is common practice rather than part of the original model.

## Data Sources

- Palmer, J. – How to Brew (online 1st ed.), Hop bittering calculations (Tinseth utilization model) — https://www.howtobrew.com/book/section-1/hops/hop-bittering-calculations (textbook, retrieved 2026-09-24)
- Wikipedia – Beer measurement (specific gravity, degrees Plato, IBU, SRM/EBC) — https://en.wikipedia.org/wiki/Beer_measurement (reference, retrieved 2026-09-24)
- BJCP Style Guidelines (2021) – vital statistics for IBU, colour (SRM) and carbonation by style — https://www.bjcp.org/bjcp-style-guidelines/ (standard, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/ibu-tinseth?batch_volume_l=…&boil_gravity=…&hop_weights_g=…&alpha_acid_percents=…&boil_times_min=…`
- `POST https://tttkmbb.com/api/v1/calculate/ibu-tinseth` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/ibu-tinseth · OpenAPI operationId `calculate_ibu_tinseth` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "ibu-tinseth", "inputs": {…}}`

## Example

- 20 L, 1.050, 30 g whole hops at 10 % for 60 min: inputs `{"batch_volume_l":20,"boil_gravity":1.05,"hop_weights_g":[30],"alpha_acid_percents":[10],"boil_times_min":[60],"hop_form":"whole"}` → `{"total_ibu":34.6,"bigness_factor":1.0528,"additions":[{"weight_g":30,"alpha_acid_percent":10,"boil_time_min":60,"utilization_percent":23.07,"ibu":34.6}],"bitterness_ratio":0.69}`
- 23 L, 1.060, three pellet additions: inputs `{"batch_volume_l":23,"boil_gravity":1.06,"hop_weights_g":[40,25,30],"alpha_acid_percents":[6.5,5.5,5.5],"boil_times_min":[60,15,5],"hop_form":"pellet","original_gravity":1.06}` → `{"total_ibu":36.4,"additions":[{"ibu":26.22},{"ibu":6.88},{"ibu":3.32}],"bitterness_ratio":0.61}`

```
GET https://tttkmbb.com/api/v1/calculate/ibu-tinseth?batch_volume_l=20&boil_gravity=1.05&hop_weights_g=30&alpha_acid_percents=10&boil_times_min=60&hop_form=whole
```

## Limitations

The bitterness comes from dry hopping, whirlpool or hop extracts (utilization models cover kettle additions only), or you need actual measured IBU (requires laboratory spectrophotometry). Tinseth's utilization model (1997) was fitted to measured homebrew batches and is the one used by most recipe software; real utilization varies with kettle geometry, hop age and wort pH, and predictions above about 100 IBU exceed what can be measured. The 10 % pellet adjustment is common practice rather than part of the original model. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Which gravity do I enter for boil_gravity?**

The average gravity of the wort while the hops are boiling. For a full-volume boil that is close to the original gravity; for a partial boil topped up with water afterwards, use the kettle gravity, which is higher and lowers utilization.

**Why do other calculators (Rager, Garetz) give different IBU?**

Each model was fitted to different data; Rager predicts 10–30 % more IBU than Tinseth for long boils. Always compare recipes using the same model.

**How do I count whirlpool or flame-out hops?**

Enter 0 minutes and they contribute nothing here, although hot-side steeping does add some bitterness; some brewers enter 5–10 minutes as a rough proxy.

## Related

- [Homebrew ABV Calculator](https://tttkmbb.com/food/homebrew-abv.md) — Alcohol content of the same recipe from gravity readings.
- [Beer Color (SRM) Calculator](https://tttkmbb.com/food/srm-color.md) — Predict the beer colour from the grain bill.
- [Mass / Weight Converter](https://tttkmbb.com/conversion/mass.md) — Convert hop weights between ounces and grams.
