# Beer Color (SRM) Calculator

> Predicts the colour of a beer from the grain bill: malt colour units (MCU) from grain weights, Lovibond ratings and batch volume, converted to SRM with the Morey equation, plus EBC, Lovibond, a descriptive colour name and an approximate hex colour.

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

## Purpose

Predicts the colour of a beer from the grain bill: malt colour units (MCU) from grain weights, Lovibond ratings and batch volume, converted to SRM with the Morey equation, plus EBC, Lovibond, a descriptive colour name and an approximate hex colour.

**Use when:** You are designing a beer recipe and want its predicted colour in SRM or EBC, or need to check whether a grain bill matches a style's colour range.

**Do not use when:** The colour must be measured rather than predicted (SRM is defined by absorbance at 430 nm), or extract and adjunct colours are unknown; also unreliable above about 50 SRM where the Morey fit was not validated.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `batch_volume` | number |  | required | Final wort volume in volume_unit. (> 0, max 100000) |
| `volume_unit` | enum: gal_us \| l |  | optional, default "gal_us" | Unit of batch_volume. |
| `grain_weights` | number_list |  | required | Weight of each grain or extract in weight_unit, in order. |
| `weight_unit` | enum: lb \| kg |  | optional, default "lb" | Unit of grain_weights. |
| `grain_colors_lovibond` | number_list | °L | required | Colour rating of each grain in degrees Lovibond (from the maltster), same order as the weights. |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `mcu` | number | MCU | Σ(weight_lb × °L) / gallons. |
| `srm` | number | SRM | Standard Reference Method colour from the Morey equation. |
| `ebc` | number | EBC | European Brewery Convention colour = 1.97 × SRM. |
| `lovibond` | number | °L | Approximate Lovibond value = (SRM + 0.76) / 1.3546. |
| `color_description` | string |  | Descriptive colour name for the SRM band (pale straw to black). |
| `hex_color_approx` | string |  | Approximate sRGB hex value for the nearest whole SRM (1–40) as used in homebrewing colour charts. |

## Formula

`MCU = Σ(grain_weight_lb_i × grain_color_lovibond_i) / batch_volume_gal; SRM = 1.4922 × MCU^0.6859 (Morey); EBC = 1.97 × SRM; °L ≈ (SRM + 0.76) / 1.3546; 1 kg = 2.20462 lb, 1 US gal = 3.78541 L`

Morey's power-law fit reproduces measured colour better than the linear MCU value, which overestimates dark beers; it is considered reliable up to about 50 SRM. Colour names are approximate bands (2–3 pale straw, 3–4 straw, 4–6 pale gold, 6–9 gold, 9–12 amber, 12–15 copper, 15–18 red-brown, 18–22 brown, 22–30 dark brown, 30–35 black, above 35 opaque black).

## Data Sources

- Wikipedia – Standard Reference Method (SRM, EBC and Lovibond beer colour scales) — https://en.wikipedia.org/wiki/Standard_Reference_Method (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)
- Wikipedia – Beer measurement (specific gravity, degrees Plato, IBU, SRM/EBC) — https://en.wikipedia.org/wiki/Beer_measurement (reference, 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/srm-color?batch_volume=…&grain_weights=…&grain_colors_lovibond=…`
- `POST https://tttkmbb.com/api/v1/calculate/srm-color` 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/srm-color · OpenAPI operationId `calculate_beer_color_srm` 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": "srm-color", "inputs": {…}}`

## Example

- 5 gal: 10 lb at 2 °L + 1 lb at 40 °L: inputs `{"batch_volume":5,"volume_unit":"gal_us","grain_weights":[10,1],"weight_unit":"lb","grain_colors_lovibond":[2,40]}` → `{"mcu":12,"srm":8.2,"ebc":16.2,"lovibond":6.62,"color_description":"Gold","hex_color_approx":"#EA8F00"}`
- 20 L: 4 kg at 3 °L, 0.5 kg at 120 °L, 0.25 kg at 500 °L: inputs `{"batch_volume":20,"volume_unit":"l","grain_weights":[4,0.5,0.25],"weight_unit":"kg","grain_colors_lovibond":[3,120,500]}` → `{"mcu":82.2,"srm":30.71,"ebc":60.5,"color_description":"Black"}`

```
GET https://tttkmbb.com/api/v1/calculate/srm-color?batch_volume=5&volume_unit=gal_us&grain_weights=10%2C1&weight_unit=lb&grain_colors_lovibond=2%2C40
```

## Limitations

The colour must be measured rather than predicted (SRM is defined by absorbance at 430 nm), or extract and adjunct colours are unknown; also unreliable above about 50 SRM where the Morey fit was not validated. Morey's power-law fit reproduces measured colour better than the linear MCU value, which overestimates dark beers; it is considered reliable up to about 50 SRM. Colour names are approximate bands (2–3 pale straw, 3–4 straw, 4–6 pale gold, 6–9 gold, 9–12 amber, 12–15 copper, 15–18 red-brown, 18–22 brown, 22–30 dark brown, 30–35 black, above 35 opaque black). All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Where do I find a grain's Lovibond rating?**

On the maltster's specification sheet; typical values are 1.5–3 °L for pale base malts, 10–120 °L for crystal malts and 300–600 °L for roasted malts. For EBC-rated European malts, °L ≈ (EBC / 1.97 + 0.76) / 1.3546.

**Why does the descriptive name differ from a style guide?**

Colour names are approximate bands; style guidelines such as the BJCP use their own slightly different band names, so compare the SRM number with the style's SRM range rather than the word.

**Does extract brewing change the calculation?**

No, but liquid and dry extracts have their own colour ratings (usually 2–4 °L for pale extract) and darken with long boils; use the manufacturer's value as the grain colour.

## Related

- [IBU Calculator (Tinseth)](https://tttkmbb.com/food/ibu-tinseth.md) — Bitterness of the same recipe from the hop schedule.
- [Homebrew ABV Calculator](https://tttkmbb.com/food/homebrew-abv.md) — Alcohol content from gravity readings.
- [Volume Converter](https://tttkmbb.com/conversion/volume.md) — Convert batch volumes between gallons and litres.
