CO₂ Gas Volume (Lab Experiment)
Specific Gravity (Brewing)
Average Rate:0 mL/min
Hourly Rate:0 mL/hour
Total Change:0
How to Calculate Rate of Fermentation
The rate of fermentation is a measure of how quickly yeast or bacteria convert sugars into ethyl alcohol and carbon dioxide. Calculating this rate is essential for biologists monitoring metabolic activity in a lab setting, as well as for brewers ensuring a healthy fermentation cycle for beer or wine.
The Science Behind the Calculation
Fermentation is an anaerobic process. The simplified chemical equation for alcoholic fermentation is:
Because carbon dioxide (CO₂) is a gas produced in direct proportion to the sugar consumed, we can measure the rate of fermentation by tracking the volume of gas evolved over time, or by measuring the decrease in density (specific gravity) as sugar is converted to alcohol.
Formula 1: CO₂ Volume Method (Laboratory)
This method is commonly used in biology experiments (e.g., using a respirometer or gas syringe). The rate is calculated by measuring the volume of gas produced over a specific time interval.
Rate (R) = (Vfinal – Vinitial) / t
Vfinal: The final volume of CO₂ collected (mL).
Vinitial: The starting volume (usually 0 mL).
t: Time elapsed (usually in minutes).
Example: If a yeast solution produces 45 mL of CO₂ in 15 minutes, the rate is 45 / 15 = 3 mL/min.
Formula 2: Specific Gravity Method (Brewing)
In homebrewing and professional brewing, measuring gas volume is impractical. Instead, brewers measure the Specific Gravity (SG) using a hydrometer. Since sugar increases water density and alcohol decreases it, the gravity reading drops as fermentation proceeds.
Gravity Points Drop = (OG – CG) * 1000
Daily Rate = Gravity Points Drop / Days
OG (Original Gravity): Density before fermentation (e.g., 1.050).
CG (Current Gravity): Density at time of measurement (e.g., 1.020).
Days: Time elapsed since pitching yeast.
Factors Affecting Fermentation Rate
Several variables can accelerate or decelerate the rate calculated above:
Temperature: Yeast enzymes work optimally within specific temperature ranges (typically 20°C–30°C). Rates usually increase with temperature up to a critical point where enzymes denature.
Substrate Concentration: More sugar initially increases the rate, but extremely high concentrations can stress yeast (osmotic shock).
Yeast Strain: Different strains have different attenuation rates and flocculation characteristics.
pH Levels: Most yeast prefer a slightly acidic environment (pH 4.0–6.0).
function toggleInputs() {
var method = document.getElementById('calcMethod').value;
var gasDiv = document.getElementById('gasInputs');
var gravityDiv = document.getElementById('gravityInputs');
var resultBox = document.getElementById('resultBox');
// Reset results on switch
resultBox.style.display = 'none';
if (method === 'gas') {
gasDiv.style.display = 'block';
gravityDiv.style.display = 'none';
} else {
gasDiv.style.display = 'none';
gravityDiv.style.display = 'block';
}
}
function calculateRate() {
var method = document.getElementById('calcMethod').value;
var resultBox = document.getElementById('resultBox');
var mainLabel = document.getElementById('mainLabel');
var mainResult = document.getElementById('mainResult');
var secLabel = document.getElementById('secondaryLabel');
var secResult = document.getElementById('secondaryResult');
var totalChange = document.getElementById('totalChange');
if (method === 'gas') {
// Get values for Gas calculation
var vInit = parseFloat(document.getElementById('initialVolume').value);
var vFinal = parseFloat(document.getElementById('finalVolume').value);
var time = parseFloat(document.getElementById('timeElapsedGas').value);
// Validation
if (isNaN(vInit)) vInit = 0;
if (isNaN(vFinal) || isNaN(time) || time <= 0) {
alert("Please enter valid volume and time (greater than 0) values.");
return;
}
// Calculation: Rate = Delta V / t
var volumeChange = vFinal – vInit;
var ratePerMin = volumeChange / time;
var ratePerHour = ratePerMin * 60;
// Display
mainLabel.innerHTML = "Mean Rate (mL/min):";
mainResult.innerHTML = ratePerMin.toFixed(2) + " mL/min";
secLabel.innerHTML = "Hourly Rate (mL/hr):";
secResult.innerHTML = ratePerHour.toFixed(2) + " mL/hr";
totalChange.innerHTML = volumeChange.toFixed(1) + " mL Produced";
} else {
// Get values for Gravity calculation
var og = parseFloat(document.getElementById('originalGravity').value);
var cg = parseFloat(document.getElementById('currentGravity').value);
var days = parseFloat(document.getElementById('timeElapsedGravity').value);
// Validation
if (isNaN(og) || isNaN(cg) || isNaN(days) || days OG), handle gracefully
if (gravityDrop < 0) gravityDrop = Math.abs(gravityDrop);
// Convert to "Points" (brewers often speak in points, e.g. 40 points)
var pointsDrop = gravityDrop * 1000;
var ratePerDay = pointsDrop / days;
// Display
mainLabel.innerHTML = "Fermentation Rate:";
mainResult.innerHTML = ratePerDay.toFixed(1) + " Points/Day";
secLabel.innerHTML = "Specific Gravity Drop:";
secResult.innerHTML = gravityDrop.toFixed(3) + " SG";
totalChange.innerHTML = pointsDrop.toFixed(1) + " Total Points";
}
// Show result box
resultBox.style.display = 'block';
}