This is the guide for a pitch-rate calculator or a starter planner: is the yeast I have enough for this beer, and if it isn't, what starter makes up the difference?
Two liquid packs of a lager strain, made on August 1st and pitched on October 1st into 20 L of 1.048 wort:
const pitch = pitchPlan({
yeasts: [
{
name: 'Wyeast 2124 Bohemian Lager',
type: 'lager',
form: 'liquid',
attenuationMinPercent: 73,
attenuationMaxPercent: 77,
packs: 2,
manufactureDate: new Date('2026-08-01'),
},
],
volumeL: 20,
og: 1.048,
pitchDate: new Date('2026-10-01'),
});
The batch needs 357 billion cells, which is the lager rate of 1.5 million cells
per mL per °P. Two months on the shelf has left the packs at 62 % viability,
so they hold 124 billion between them. The pitch is 234 billion short, and
packsRequired says six packs of this age would cover it. That works, and so
does a starter:
const starter = planStarter(pitch.cellsNeededBillion, pitch.cellsFromPacksBillion);
const steps = starter.steps.map((step) => ({
litres: step.volumeL,
dmeGrams: step.dmeGrams,
cellsAfter: step.finalCellsBillion,
}));
One step is enough: 1.75 L on a stir plate with 175 g of dry malt extract, growing the 124 billion to 369 billion.
pitch.notes lists the assumptions as sentences. Here there are two: the pitch
rate defaulted to 1.5 for a lager, and each liquid pack was assumed to hold 100
billion cells when it was made. pitchPlanExplained and
starterPlanExplained return the same working as an
Explanation, citing White and Zainasheff's Yeast and Mr Malty for
the rates and viability, and Kai Troester's measurements for starter growth.
pitchDate defaults to today. Pass it, or the same recipe gives a
different answer tomorrow, and your tests fail next month.pitchPlan ignores a starter on a dry
row and adds a note saying why. Count sachets with dryYeastSachets
instead.cellsNeededBillion: 357 is 357 billion cells,
and every count in this area uses the same unit.There's no method page for yeast yet. The comments on pitchPlan, packViability and starterGrowth explain the models and where their numbers come from. In the reference, the Yeast category has the viability curves, the pitch-rate table DEFAULT_PITCH_RATES, and the dry-yeast dosage bands.