Sauce Reduction Volume Calculator
This sauce reduction volume calculator converts a starting volume and a target reduction percentage into the final volume you should expect.
Run — free
It also reports how much liquid must evaporate and what percentage remains, making it useful for planning pan sauces, stocks, glazes, syrups, and other concentrated liquids. Enter the starting measurement in milliliters, cups, liters, fluid ounces, or any consistent volume unit; every volume in the result uses that same unit.
Turn a reduction target into a measurable finish line
Recipes often say to reduce a sauce by a percentage, but a percentage is difficult to judge by sight while a pan is simmering. This calculator turns that instruction into a concrete final volume. Enter the volume before simmering and the proportion you intend to remove. If you begin with 750 milliliters and target a 40 percent reduction, the finish line is 450 milliliters, with 300 milliliters removed through evaporation. The same calculation works for cups, liters, fluid ounces, or another volume unit because the tool never converts units; it preserves the scale of the starting measurement. Measure the liquid before heating, note the calculated final volume, and check the pan with a heat-safe measuring vessel when the sauce looks close. The result gives you an objective stopping point while leaving culinary decisions such as texture, seasoning, and heat level in your hands. It is especially helpful when scaling a recipe or reproducing a sauce across several batches.
Understand what the percentage means
A reduction percentage describes the share of the starting volume that disappears, not the share that remains. A 25 percent reduction therefore leaves 75 percent of the original liquid. The calculator first subtracts the target reduction from 100 to find the remaining percentage, then multiplies the starting volume by that remaining share. It also subtracts the final volume from the starting volume to report the removed volume. This distinction matters because the phrases “reduce by 30 percent” and “reduce to 30 percent” describe very different outcomes: the first leaves 70 percent, while the second leaves 30 percent. This capability calculates the “reduce by” interpretation stated in its input contract. A target of zero leaves the entire starting volume, while a target of 100 produces a theoretical final volume of zero. Real cooking may stop earlier because dissolved solids remain, sauces can scorch, and pan residue affects what can actually be poured and measured. Use the number as a volume target rather than a promise about cooking time or consistency.
Measure consistently for repeatable sauces
For the most useful result, measure the starting liquid after all ingredients that contribute meaningful volume have been added. Keep the unit consistent from start to finish: if the input is cups, interpret both final volume and removed volume as cups. Pan width, burner power, stirring, temperature, humidity, and ingredient composition all change how quickly evaporation occurs, so the calculator deliberately does not estimate minutes. Instead, it isolates the deterministic part of the problem: the volume relationship. In a professional kitchen, record the starting volume, reduction target, final volume, pan size, and observed cooking time for each batch. That creates a practical production note without pretending that time alone guarantees the same result. Taste and texture still matter. A sauce may reach its calculated volume before starch has hydrated fully, or it may become properly glossy before every measurable drop is gone. Remove it from the heat when the volume target and the desired culinary qualities agree, then account for any finishing butter, cream, stock, or other liquid added afterward.
What you can do with it
Plan a pan sauce
Convert a recipe's reduction percentage into a final volume that can be checked before seasoning and finishing.
Scale stock production
Calculate consistent finishing volumes when a stock or broth batch is multiplied for service or preparation.
Standardize glazes and syrups
Give each batch a measurable volume target instead of relying only on an approximate visual cue.
FAQ
What does a 40 percent reduction mean?
It means removing 40 percent of the starting volume and retaining 60 percent.
Which volume units can I use?
You may use any consistent volume unit, including milliliters, liters, cups, or fluid ounces. The result keeps the input unit.
Does the calculator estimate cooking time?
No. Evaporation time varies with pan geometry, heat, ingredients, and conditions, so this tool calculates volume only.
Can the reduction percentage exceed 100?
No. Valid percentages range from 0 through 100 inclusive; values outside that range return an input error.
How much does the API calculation cost?
Each API request costs $0.002. The browser calculator is available without an API request.
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/cook/reduction-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"starting_volume":750,"reduction_percentage":40}'const res = await fetch("https://api.kit.forhosting.com/cook/reduction-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"starting_volume": 750,
"reduction_percentage": 40
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/cook/reduction-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"starting_volume": 750,
"reduction_percentage": 40
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/cook/reduction-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"starting_volume":750,"reduction_percentage":40}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"starting_volume":750,"reduction_percentage":40}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/cook/reduction-ratio", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"starting_volume": 750,
"reduction_percentage": 40
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "cook.reduction_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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |