French Press (1:15)
Drip / Pour Over (1:17)
Aeropress (1:16)
Cold Brew Concentrate (1:12)
Espresso (1:2)
Custom Ratio
How much coffee I have (Grams)
How much water I want to use (ML/Grams)
Coffee Needed: 0 g
Water Needed: 0 ml
Ratio Used: 1:17
*Note: 1ml of water is approximately 1g.
Mastering the Coffee to Water Ratio
The secret to a café-quality cup of coffee at home isn't just the beans; it's the math. The coffee to water ratio determines the strength, body, and flavor profile of your brew. Whether you prefer a bold French Press or a clean Pour Over, using a digital scale and a precise ratio is the only way to achieve consistency.
What is the "Golden Ratio"?
The Specialty Coffee Association (SCA) suggests a "Golden Ratio" of 1:18. This means for every 1 gram of coffee, you use 18 grams of water. However, most home brewers find a range between 1:15 and 1:17 to be the "sweet spot" for most manual brewing methods.
Method
Ratio
Resulting Profile
Espresso
1:2
Intense, concentrated, syrupy.
French Press
1:15
Heavy body, rich, textured.
Pour Over / Drip
1:16 – 1:17
Balanced, clean, highlights notes.
Cold Brew
1:8 – 1:12
Concentrated (usually diluted later).
Example Calculation
If you have a standard 12oz mug, that is roughly 350ml of water. Using a standard 1:17 ratio:
Calculation: 350 ÷ 17 = 20.5
Recipe: You would need 20.5 grams of ground coffee.
Why Use Grams Instead of Spoons?
Coffee beans vary significantly in density. A scoop of dark roasted beans weighs much less than a scoop of light roasted beans because dark roasts are more porous and puffed up. Measuring by weight (grams) ensures that you are using the exact same amount of organic matter every single time, regardless of the roast level or bean size.
function updateRatioValue() {
var method = document.getElementById('brewMethod').value;
var customDiv = document.getElementById('customRatioDiv');
if (method === 'custom') {
customDiv.style.display = 'block';
} else {
customDiv.style.display = 'none';
document.getElementById('customRatio').value = method;
}
}
function toggleInputs() {
var mode = document.getElementById('calcMode').value;
var coffeeDiv = document.getElementById('coffeeInputDiv');
var waterDiv = document.getElementById('waterInputDiv');
if (mode === 'coffee') {
coffeeDiv.style.display = 'block';
waterDiv.style.display = 'none';
} else {
coffeeDiv.style.display = 'none';
waterDiv.style.display = 'block';
}
}
function calculateBrew() {
var mode = document.getElementById('calcMode').value;
var method = document.getElementById('brewMethod').value;
var ratio;
if (method === 'custom') {
ratio = parseFloat(document.getElementById('customRatio').value);
} else {
ratio = parseFloat(method);
}
var coffeeFinal = 0;
var waterFinal = 0;
if (isNaN(ratio) || ratio <= 0) {
alert('Please enter a valid ratio');
return;
}
if (mode === 'coffee') {
var coffeeInput = parseFloat(document.getElementById('coffeeGrams').value);
if (isNaN(coffeeInput) || coffeeInput <= 0) {
alert('Please enter a valid coffee amount');
return;
}
waterFinal = coffeeInput * ratio;
coffeeFinal = coffeeInput;
} else {
var waterInput = parseFloat(document.getElementById('waterAmount').value);
if (isNaN(waterInput) || waterInput <= 0) {
alert('Please enter a valid water amount');
return;
}
coffeeFinal = waterInput / ratio;
waterFinal = waterInput;
}
document.getElementById('resCoffee').innerText = coffeeFinal.toFixed(1);
document.getElementById('resWater').innerText = Math.round(waterFinal);
document.getElementById('resRatio').innerText = '1:' + ratio;
document.getElementById('coffeeResult').style.display = 'block';
}