Calculate the perfect amount of coffee grounds or water for your preferred brew strength.
Amount of Water (ml)
Amount of Coffee (g)
The Resulting Ratio
Brewing Recipe:
The Science of the Golden Ratio
In the world of specialty coffee, the "Brew Ratio" is the relationship between the weight of dry coffee grounds and the weight of the water used to brew it. It is the most critical variable you can control to ensure your coffee isn't too weak (under-extracted) or too bitter (over-extracted).
Popular Brewing Ratios by Method
Brewing Method
Recommended Ratio
Taste Profile
Espresso
1:2
Intense, concentrated
Aeropress
1:12 to 1:15
Rich and full-bodied
French Press
1:15
Bold and heavy texture
Pour Over (V60/Chemex)
1:16 or 1:17
Clean, tea-like, vibrant
Cold Brew
1:8 (Concentrate)
Low acidity, high caffeine
How to Use This Calculator
1. Find Water: If you have a specific amount of coffee left in your bag, enter the grams and your desired ratio. We'll tell you how much water to heat up.
2. Find Coffee: If you have a specific mug size (e.g., 300ml), enter the water amount and ratio. We'll tell you exactly how much coffee to grind.
3. Find Ratio: If you just brewed a pot and want to know why it tasted so good (or bad), enter both the coffee and water amounts used to discover your ratio.
Quick Pro-Tips for Better Coffee
Use a Scale: Volumetric measurements (spoons and cups) are inaccurate because coffee density varies by roast. Always weigh in grams.
Water Temperature: Aim for 195°F to 205°F (90°C to 96°C) for optimal extraction.
Grind Size: Match your grind to your method. Fine for Espresso, Medium for Pour Over, and Coarse for French Press.
function updateInputs() {
var mode = document.getElementById("calcMode").value;
var ratioGroup = document.getElementById("ratioInputGroup");
var coffeeGroup = document.getElementById("coffeeInputGroup");
var waterGroup = document.getElementById("waterInputGroup");
// Reset display
ratioGroup.style.display = "block";
coffeeGroup.style.display = "block";
waterGroup.style.display = "block";
if (mode === "water") {
waterGroup.style.display = "none";
} else if (mode === "coffee") {
coffeeGroup.style.display = "none";
} else if (mode === "ratio") {
ratioGroup.style.display = "none";
}
document.getElementById("brewResult").style.display = "none";
}
function calculateCoffee() {
var mode = document.getElementById("calcMode").value;
var ratio = parseFloat(document.getElementById("brewRatio").value);
var coffee = parseFloat(document.getElementById("coffeeGrams").value);
var water = parseFloat(document.getElementById("waterMl").value);
var resultDiv = document.getElementById("brewResult");
var output = document.getElementById("recipeOutput");
var html = "";
if (mode === "water") {
if (!coffee || !ratio || coffee <= 0 || ratio <= 0) {
alert("Please enter valid coffee grams and ratio.");
return;
}
var calculatedWater = coffee * ratio;
html = "
";
}
else if (mode === "coffee") {
if (!water || !ratio || water <= 0 || ratio <= 0) {
alert("Please enter valid water amount and ratio.");
return;
}
var calculatedCoffee = water / ratio;
html = "
";
}
else if (mode === "ratio") {
if (!water || !coffee || water <= 0 || coffee <= 0) {
alert("Please enter valid water and coffee amounts.");
return;
}
var calculatedRatio = water / coffee;
html = "