ForHosting KIT · Home, food & hobbies

Coffee ratio calculator

288 ml of kettle water at the default 1:16 ratio calls for 18 g of ground coffee. Enter the water you will pour, keep sixteen to one or set your own ratio, and get the dose to weigh before you grind. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Water volume
288
Brew ratio
16
You get
Coffee mass
18
Ratio label
1:16

Home baristas, café trainers, and recipe apps often start from the kettle rather than from a bag of beans: a three-hundred millilitre mug, a five-hundred millilitre Chemex, or a litre batch brewer is the real constraint, and they need the coffee grounds that hit a chosen coffee-to-water ratio. This coffee ratio calculator divides water volume by the brew ratio—water parts per one part coffee, default sixteen to one—and returns coffee mass in grams. When water is measured in millilitres and density is taken as one gram per millilitre, the result is the scale dose you should grind for that brew. Use it whenever you already know how much water you will pour and want the matching grounds.

How water volume and coffee-to-water ratio become coffee mass

A coffee-to-water ratio is a mass proportion: how many parts of water you brew for each part of coffee. Writing the ratio as one to sixteen means one gram of coffee pairs with sixteen grams of water; writing it as the single number sixteen means the same thing—sixteen water parts per one part coffee. Dividing water volume by that factor yields the coffee dose you should weigh on the scale.

Changing the ratio changes cup strength without changing mug geometry: a fifteen-to-one brew tastes fuller than a seventeen-to-one brew for the same grind and contact time. Immersion methods such as French press often sit near twelve to fifteen; pour-over and drip commonly use fifteen to seventeen; cold brew concentrate and espresso sit much tighter, often near two to eight water parts per coffee part depending on the recipe.

Prefer this conversion when the kettle fill is already known and the dose is the unknown you need before the first bloom pour.

Mug-first pour-over

Enter kettle millilitres and a 1:16 (or custom) ratio to read the exact coffee dose in grams before you grind.

Batch brew from tank size

Fix the airpot or batch-basket water volume and compute the matching coffee mass so staff can weigh one hopper fill.

What does a 1:16 coffee-to-water ratio mean?

It means sixteen units of water for each unit of coffee by mass. Two hundred eighty-eight millilitres of water at ratio 16 needs 18 g of grounds (assuming 1 g/mL).

What if water volume is zero or negative?

Water volume must be a positive finite number; invalid input is not billed.

What ratio is used if I don't choose one?

Sixteen parts water to one part coffee, the common starting point for filter coffee. Enter your own number if you brew French press, a stronger mug or a concentrate, and the dose follows it.

Which ratio suits French press, pour-over or espresso?

French press and other immersion methods often sit near 12 to 15 parts water. Pour-over and drip commonly use 15 to 17. Cold brew concentrate and espresso are much tighter, around 2 to 8 parts.

Does a lower ratio number make stronger coffee?

Yes. Fewer water parts per part of coffee mean a bigger dose for the same mug, so a 15 to 1 brew tastes fuller than a 17 to 1 brew with the same grind and contact time.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/cook/coffee-ratio

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/cook/coffee-ratio \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"water_volume":288}'
{
  "water_volume": 288
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "cook.coffee_ratio",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Non-positive water volumes fail with invalid_input instead of inventing a dose, so a zero kettle fill never becomes a silent zero-gram shot.

How water volume and coffee-to-water ratio become coffee mass

For practical kitchen work, water density near room temperature is close enough to one gram per millilitre that millilitres of kettle water equal grams of water, so the calculator reports coffee_mass in grams when you measure water_volume in millilitres. This endpoint does not model extraction yield, total dissolved solids, bloom time, or grind size—it only scales coffee to water so you can set the scale before you grind. The identity is coffee_mass equals water_volume divided by brew_ratio, with stable twelve-decimal rounding so goldens and API clients match across JavaScript runtimes.

Input contract, defaults, response shape, and errors

Example: two hundred eighty-eight millilitres of water at the default ratio sixteen yields eighteen grams of coffee grounds. POST a JSON body with one required finite positive number: water_volume (aliases water, water_ml, volume, water_g, kettle)—the millilitres of brew water, or grams of water at unit density. Optionally send brew_ratio (aliases ratio, coffee_to_water, water_ratio, brew, strength_ratio)—water parts per one part coffee; it defaults to sixteen when omitted, which is the common filter starting point of one to sixteen. Both fields may arrive as JSON numbers or numeric strings. Zero or negative water_volume fails with invalid_input and a message that water volume must be positive; that is the documented error path and it is not billed. Zero or negative brew_ratio fails the same way because a non-positive ratio would divide water into a meaningless or infinite dose. Missing water_volume, empty strings, non-finite values, and values above one trillion in absolute magnitude also fail validation. On success the body echoes water_volume and brew_ratio, returns coffee_mass as the quotient in grams, ratio_label as a display string such as 1:16, formula as the closed-form identity, and message as a one-line English summary suitable for UI copy.

Where a coffee ratio calculator earns its keep

Home baristas who brew into a favourite mug need a dose that tracks kettle volume when they move from a two-hundred-fifty millilitre weekday cup to a five-hundred millilitre weekend Chemex without rewriting a spreadsheet. Café trainers print ratio cards for staff and want a live check when a guest asks for a stronger or weaker cup while the batch tank volume stays fixed. Prefer this capability when you already know water volume and the coffee-to-water ratio; it is not a cups-to-grams density tool, not a caffeine milligram calculator, and not the inverse helper that starts from bean weight to find water. Recipe sites and mobile apps store style presets as ratio numbers and call a tiny convert when rendering a brew guide from a user-entered water volume, filling coffee_mass on the card before the shopping list. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when you deliberately send a zero volume to verify error handling. Pin the rounded coffee_mass in tests and you get reproducible grams for kettles, landing pages, and edge workers without standing up a spreadsheet of your own.

Recipe app dose cards

Store style presets as brew_ratio values and call the API to fill coffee_mass on each card from user water volume.

How do I calculate coffee grounds from water volume?

Send water_volume (positive millilitres) and optional brew_ratio (water parts per one part coffee, default 16). The API returns coffee_mass = water_volume / brew_ratio in grams.

Is coffee_mass in grams?

When water_volume is in millilitres and you treat water density as 1 g/mL, coffee_mass is grams. Keep units consistent if you measure water in another volume unit.

What does the coffee ratio calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →