Sourdough levain build calculator
This sourdough levain build calculator turns a starter seed weight and a feeding ratio into exact flour and water amounts.
Run — free
Enter the ratio in seed, flour, and water order, such as 1:2:2, and the calculator scales every part from the seed you have available. It also gives the final levain weight, making it easier to prepare the amount a recipe needs without mental arithmetic, accidental ratio reversals, or inconsistent builds from one bake to the next.
Read the levain ratio in the correct order
A levain build ratio describes three weights in a fixed order: ripe starter seed, fresh flour, and fresh water. A 1:2:2 build therefore means one part seed, two parts flour, and two parts water. If you begin with 20 grams of seed, one part is 20 grams, so the build needs 40 grams of flour and 40 grams of water. The completed levain weighs 100 grams. The calculator uses exactly this scaling rule and does not treat the ratio as baker's percentage or as the hydration of the seed. Keeping those ideas separate matters because the flour and water already inside the seed are not being measured by this input. If your process records ratios with a seed term other than one, enter that term as well. For example, a 2:3:3 ratio with 20 grams of seed has a ten-gram ratio unit, producing 30 grams each of flour and water. Always confirm that your source writes the ratio in seed-flour-water order before relying on the result.
Choose a build that matches your schedule
The arithmetic tells you how much to feed, while fermentation time still depends on starter activity, flour choice, water temperature, room temperature, and the chosen inoculation. A build with more fresh flour and water relative to its seed generally has more food available and may take longer to mature than a build with a larger seed share under otherwise similar conditions. That relationship is useful when planning, but it is not a timer: observe the levain's rise, aroma, texture, and the maturity cues appropriate to your recipe. Use the calculator to remove measurement uncertainty, then apply your normal fermentation judgment. Weigh the seed first, add the displayed flour and water, and mix until no dry flour remains. The total shown is the combined weight immediately after mixing. Small differences caused by flour left on a spoon or water retained in a container can matter in tiny builds, so a scale with suitable resolution is helpful. The result is deterministic, so saving the same inputs provides a repeatable build record.
Scale for the levain amount your dough requires
You can work backward from a recipe by testing a seed weight that produces a total close to the levain quantity required. For a 1:2:2 build, the total contains five ratio parts, so a recipe needing 150 grams of levain can be built from 30 grams of seed, 60 grams of flour, and 60 grams of water. Consider making a modest practical allowance if your container and mixing tool retain some levain, but keep that allowance in your chosen seed weight rather than silently changing the ratio. The calculator reports grams and accepts decimal weights, which supports both small test builds and larger production batches. It rejects zero, negative, missing, nonnumeric, infinite, and excessively large values instead of guessing what was intended. This makes it suitable for recipe sheets and automated bakery calculations as well as manual use. The API price is $0.002 per request. Because the calculation uses no network, random value, clock, or fermentation prediction, identical valid inputs always return identical flour, water, total, and ratio values.
What you can do with it
Prepare a routine 1:2:2 feeding
Turn the starter left in your jar into exact flour and water additions while preserving the intended feeding ratio.
Scale a levain for a recipe
Choose a seed amount and see the resulting total levain weight before committing flour and water.
Standardize bakery build sheets
Use deterministic calculations to keep levain quantities consistent across bakers, batches, and production days.
FAQ
What order does the ratio use?
The order is starter seed, flour, then water. A 1:2:2 ratio means one part seed, two parts flour, and two parts water by weight.
Does the result include the seed in the total?
Yes. Total levain weight is the seed weight plus the fresh flour and fresh water added to it.
Does this calculate the levain's final hydration?
No. Exact final hydration also requires the flour and water composition of the seed, which this calculator does not assume.
Can the seed term be something other than 1?
Yes. Set seed_ratio explicitly for ratios such as 2:3:3; if omitted, it defaults to 1.
Can I use decimal weights and ratios?
Yes. Positive finite decimal values are accepted, and output weights are rounded to at most six decimal places.
What does the API request cost?
Each API request costs $0.002. The same deterministic calculation can also run as a browser tool.
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/levain-calculator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"seed_g":20,"flour_ratio":2,"water_ratio":2}'const res = await fetch("https://api.kit.forhosting.com/cook/levain-calculator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"seed_g": 20,
"flour_ratio": 2,
"water_ratio": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/cook/levain-calculator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"seed_g": 20,
"flour_ratio": 2,
"water_ratio": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/cook/levain-calculator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"seed_g":20,"flour_ratio":2,"water_ratio":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"seed_g":20,"flour_ratio":2,"water_ratio":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/cook/levain-calculator", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"seed_g": 20,
"flour_ratio": 2,
"water_ratio": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "cook.levain_calculator",
"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. |