This is the guide for planning a decoction mash: how much of the mash to pull for each step, and what the pulls cost in time and water.
DECOCTION_SCHEDULES has the traditional schedules ready to use
(Hochkurz, double and Bohemian triple), and findDecoctionSchedule
looks one up by id. A recipe whose mash steps include a decoction step gets
its plan from calculateRecipe in decoctions.
5 kg of grain in 15 L of water, resting at 52 °C, with the next rest at 64 °C:
const pull = decoctionPull({
mashWaterL: 15,
mashGrainKg: 5,
currentTempC: 52,
targetTempC: 64,
spec: { thickness: 'thick', boilMinutes: 20 },
});
Pull 6.1 L, about 3.7 kg of it grain. It's out of the tun for 37 minutes (rest, ramp, a 20-minute boil and the return), during which the tun drifts to 50.8 °C and the pot boils off 0.5 L, and the pull is sized to make up for both. Brought back, it lands the mash on 64 °C. The pull comes with one issue to show the brewer: "A pull this thick scorches on a direct flame. Stir it the whole time it heats."
pull.explain is the heat balance with its numbers filled in: the mash's
heat capacity in water-equivalent liters, the temperatures, the evaporation
and the grain's specific heat. Its notes say how thick the pull was taken and
how far the tun drifted, and one says that the boil's effects on color,
efficiency and pH aren't modeled.
decoctionPull takes them as
DecoctionRigOptions. The defaults assume a domestic burner and a tun
that loses 2 °C an hour.Decoction, the method page, derives the heat balance, covers pull thickness and pot volume, and lists what the model leaves out and why.