.calculator-container {
max-width: 800px;
margin: 0 auto;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
color: #333;
line-height: 1.6;
}
.wl-calc-box {
background: #f9f9f9;
border: 1px solid #e0e0e0;
border-radius: 8px;
padding: 30px;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
margin-bottom: 40px;
}
.wl-calc-title {
text-align: center;
color: #2c3e50;
margin-bottom: 25px;
font-size: 24px;
font-weight: 700;
border-bottom: 2px solid #eab308;
padding-bottom: 10px;
display: inline-block;
}
.wl-input-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
@media (max-width: 600px) {
.wl-input-grid {
grid-template-columns: 1fr;
}
}
.wl-form-group {
margin-bottom: 15px;
}
.wl-form-group label {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: #555;
font-size: 14px;
}
.wl-form-group input, .wl-form-group select {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
.wl-form-group input:focus, .wl-form-group select:focus {
border-color: #eab308;
outline: none;
box-shadow: 0 0 0 2px rgba(234, 179, 8, 0.2);
}
.wl-btn-container {
text-align: center;
margin-top: 20px;
}
.wl-calc-btn {
background-color: #eab308;
color: #fff;
border: none;
padding: 12px 30px;
font-size: 18px;
font-weight: bold;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.2s;
text-transform: uppercase;
}
.wl-calc-btn:hover {
background-color: #ca8a04;
}
.wl-results-box {
margin-top: 30px;
background: #fff;
border: 1px solid #ddd;
border-radius: 6px;
padding: 20px;
display: none;
}
.wl-result-row {
display: flex;
justify-content: space-between;
padding: 12px 0;
border-bottom: 1px solid #eee;
}
.wl-result-row:last-child {
border-bottom: none;
}
.wl-result-label {
font-weight: 600;
color: #666;
}
.wl-result-value {
font-weight: 700;
color: #2c3e50;
font-size: 18px;
}
.wl-highlight {
color: #d97706;
}
.content-section h2 {
color: #2c3e50;
margin-top: 35px;
border-left: 5px solid #eab308;
padding-left: 15px;
}
.content-section h3 {
color: #444;
margin-top: 25px;
}
.content-section ul {
padding-left: 20px;
}
.content-section li {
margin-bottom: 10px;
}
.helper-text {
font-size: 12px;
color: #888;
margin-top: 4px;
}
// Set default date to today minus 1 month for realism
var today = new Date();
var lastMonth = new Date();
lastMonth.setMonth(today.getMonth() – 1);
var dd = String(lastMonth.getDate()).padStart(2, '0');
var mm = String(lastMonth.getMonth() + 1).padStart(2, '0');
var yyyy = lastMonth.getFullYear();
document.getElementById("yeastDate").value = yyyy + '-' + mm + '-' + dd;
function calculatePitchRate() {
// Get inputs
var batchSizeGal = parseFloat(document.getElementById("batchSize").value);
var gravitySG = parseFloat(document.getElementById("originalGravity").value);
var pitchRate = parseFloat(document.getElementById("pitchRate").value);
var mfgDateStr = document.getElementById("yeastDate").value;
var initialCells = parseFloat(document.getElementById("initialCells").value);
// Validation
if (isNaN(batchSizeGal) || isNaN(gravitySG) || isNaN(pitchRate) || !mfgDateStr || isNaN(initialCells)) {
alert("Please fill in all fields with valid numbers.");
return;
}
// Constants
var GAL_TO_ML = 3785.41;
// 1. Calculate Plato
// Formula: Plato approx = 259 – (259 / SG)
var plato = 259 – (259 / gravitySG);
// 2. Calculate Wort Volume in mL
var wortVolumeMl = batchSizeGal * GAL_TO_ML;
// 3. Calculate Total Cells Needed (Billions)
// Formula: (Pitch Rate * mL * Plato) / 1000 (to get billions)
var cellsNeeded = (pitchRate * wortVolumeMl * plato) / 1000;
// 4. Calculate Viability
var mfgDate = new Date(mfgDateStr);
var currentDate = new Date();
// Difference in days
var timeDiff = currentDate – mfgDate;
var daysDiff = Math.floor(timeDiff / (1000 * 60 * 60 * 24));
if (daysDiff < 0) daysDiff = 0; // Future date handling
// White Labs linear decay assumption: approx 0.7% loss per day (21% per month)
var viabilityLoss = daysDiff * 0.7;
var viability = 100 – viabilityLoss;
// Clamp viability
if (viability 100) viability = 100;
// 5. Calculate Viable Cells per Pack
var viableCellsPerPack = initialCells * (viability / 100);
// 6. Calculate Packs Needed
var packsNeeded = 0;
if (viableCellsPerPack > 0) {
packsNeeded = cellsNeeded / viableCellsPerPack;
} else {
packsNeeded = Infinity;
}
// Display Results
document.getElementById("resPlato").innerText = plato.toFixed(1) + " °P";
document.getElementById("resTargetCells").innerText = Math.round(cellsNeeded) + " Billion";
document.getElementById("resViability").innerText = Math.round(viability) + "%";
document.getElementById("resCellsPerPack").innerText = Math.round(viableCellsPerPack) + " Billion";
var packsDisplay = packsNeeded === Infinity ? "Infinite (0% Viability)" : packsNeeded.toFixed(1);
if(packsNeeded > 100) packsDisplay = "Check Inputs"; // Safety for crazy numbers
document.getElementById("resPacks").innerText = packsDisplay;
// Show results div
document.getElementById("results").style.display = "block";
}
Optimizing Fermentation with the White Labs Pitch Rate Calculator
Achieving a consistent, high-quality brew starts long before the boil finishes. One of the most critical, yet often overlooked, aspects of brewing is yeast health and pitching rate. The White Labs Pitch Rate Calculator helps homebrewers and pro brewers alike determine exactly how many yeast cells are required for their specific batch parameters.
Whether you are brewing a clean Lager or a fruity Ale, pitching the correct amount of yeast ensures a healthy fermentation, reduces off-flavors (like esters and fusel alcohols), and ensures your beer reaches its target final gravity.
How to Use This Calculator
This tool is designed specifically for brewers using liquid yeast, such as White Labs PurePitch® packs or vials. Here is a breakdown of the inputs required:
- Batch Size (Gallons): The volume of wort you intend to ferment. Standard homebrew batches are typically 5 or 10 gallons.
- Original Gravity (SG): The specific gravity of your wort before fermentation begins. Higher gravity beers require significantly more yeast to ferment fully without stressing the cells.
- Target Pitch Rate: This is the density of yeast cells you want to achieve.
- 0.35 (Manufacturer Rec): Often the minimum for standard ales, but may result in slower starts.
- 0.75 (Pro Ale): The gold standard for commercial ales, providing clean fermentation.
- 1.50 (Pro Lager): Lagers ferment colder and require double the cell count to work effectively.
- Yeast Manufacture Date: Liquid yeast loses viability over time. This field calculates the degradation of your yeast based on the date stamped on the package.
Understanding Yeast Viability
Unlike dry yeast, liquid yeast is metabolically active and consumes its glycogen reserves while in storage. White Labs packaging is excellent, but viability inevitably drops the longer the yeast sits on the shelf.
The generally accepted linear decay model for liquid yeast stored at refrigerator temperatures suggests a loss of approximately 20-21% viability per month (or roughly 0.7% per day). This calculator uses this degradation rate to estimate how many viable cells remain in your pack. If your yeast is several months old, the calculator will likely recommend using multiple packs or creating a yeast starter.
Why Pitch Rate Matters
Under-pitching (using too little yeast) forces the yeast to reproduce extensively during the lag phase. This stress can lead to the production of diacetyl (buttery flavor), excessive esters (fruity flavors), and potentially a stalled fermentation.
Over-pitching (using too much yeast) is less common in homebrewing but can result in a lack of characteristic yeast esters, very fast fermentation that generates excess heat, and autolysis (yeast death) flavors if left too long.
By using the White Labs Pitch Rate Calculator, you can dial in the precise cell count needed for your specific gravity and beer style, leading to professional-quality results in every glass.