Pour Over / V60 (1:15 – Strong)
Standard Drip (1:16 – Balanced)
Chemex (1:17 – Delicate)
French Press (1:12 – Bold)
Aeropress (1:10 – Concentrated)
Custom Ratio
Your Golden Ratio Recipe:
Why the Coffee to Water Ratio Matters
The secret to a perfect cup of coffee isn't just the beans; it's the Golden Ratio. This ratio determines the strength and extraction level of your brew. If you use too much water, your coffee will taste thin and over-extracted (bitter). If you use too little, it will be under-extracted and sour.
Standard Coffee Brewing Ratios
Method
Ratio
Resulting Profile
French Press
1:12
Heavy body, intense flavor
Auto Drip
1:16
Balanced, classic "diner" style
Pour Over
1:15 – 1:17
Clean, highlights floral notes
Cold Brew
1:4 – 1:8
Concentrate (to be diluted)
How to Use This Calculator
To use the coffee calculator effectively, follow these three simple steps:
Select your method: Choose from the dropdown to automatically set a professional-grade ratio.
Enter one value: If you know how much coffee you have left, enter the "Coffee Grounds". If you want to fill a specific mug, enter the "Water Volume".
Click Calculate: The tool will instantly tell you the exact weight of the missing ingredient.
Example Calculation
If you are brewing a standard 12oz cup (approx. 350ml) using a 1:16 ratio:
Calculation: 350 รท 16 = 21.8
Result: Use 22 grams of coffee for 350ml of water.
function updateRatio() {
var method = document.getElementById("brewMethod").value;
var customRow = document.getElementById("customRatioRow");
if (method === "custom") {
customRow.style.display = "block";
} else {
customRow.style.display = "none";
}
}
function getActiveRatio() {
var method = document.getElementById("brewMethod").value;
if (method === "custom") {
var customVal = parseFloat(document.getElementById("customRatio").value);
return isNaN(customVal) ? 0 : customVal;
}
return parseFloat(method);
}
function calculateWater() {
var coffee = parseFloat(document.getElementById("coffeeGrams").value);
var ratio = getActiveRatio();
var resultBox = document.getElementById("coffeeResult");
var resultText = document.getElementById("resultText");
if (isNaN(coffee) || coffee <= 0) {
alert("Please enter a valid amount of coffee grounds.");
return;
}
if (ratio <= 0) {
alert("Please enter a valid brewing ratio.");
return;
}
var waterNeeded = (coffee * ratio).toFixed(1);
resultBox.style.display = "block";
resultText.innerHTML = "To brew with " + coffee + "g of coffee at a 1:" + ratio + " ratio, you need " + waterNeeded + "ml (grams) of water.";
}
function calculateCoffee() {
var water = parseFloat(document.getElementById("waterMl").value);
var ratio = getActiveRatio();
var resultBox = document.getElementById("coffeeResult");
var resultText = document.getElementById("resultText");
if (isNaN(water) || water <= 0) {
alert("Please enter a valid water volume.");
return;
}
if (ratio <= 0) {
alert("Please enter a valid brewing ratio.");
return;
}
var coffeeNeeded = (water / ratio).toFixed(1);
resultBox.style.display = "block";
resultText.innerHTML = "To fill " + water + "ml of water at a 1:" + ratio + " ratio, you need " + coffeeNeeded + "g of coffee grounds.";
}