Restaurant food cost percentage calculator
A dish whose ingredients cost a quarter of its menu price runs a 25% food cost. Enter the cost per serving and the current price, add a target percentage, and get the selling price that would put the recipe on target. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Ingredient cost
- 3.25
- Menu price
- 13
- Target food cost percentage
- 28
- Food cost percentage
- 25
- Suggested price
- 11.607143
This restaurant food cost percentage calculator turns two everyday menu numbers into a clear pricing signal. Enter the ingredient cost for one serving and its current menu price to see what share of revenue is consumed by ingredients. Add your target food-cost percentage to calculate the selling price that would place the same recipe at that target. The calculation is deterministic, accepts zero-cost items, rejects an impossible zero menu price, and runs without an external service. Use it while costing a new dish, reviewing supplier changes, or checking whether an existing price still supports your restaurant's operating goals.
Understand the food cost percentage behind a menu item
Food cost percentage expresses the ingredient cost of one serving as a share of that serving's menu price. The formula is ingredient cost divided by menu price, multiplied by one hundred. If a dish uses 3.25 in ingredients and sells for 13, its food cost percentage is 25 percent.
The result focuses on ingredients rather than every expense involved in serving the dish. Labor, rent, utilities, card fees, waste, complimentary items, taxes, and delivery commissions are not silently added, so the figure stays easy to audit against a recipe-costing sheet. Enter costs and prices in the same currency; because the currency units cancel in the division, the calculation works equally well with dollars, euros, pounds, or another consistent unit.
The ingredient cost may be zero for a complimentary or negligible-cost component, but the menu price must be greater than zero because division by zero has no defined percentage. Treat the percentage as one useful menu-engineering measure, not as a complete profit margin or a promise that the item is profitable after overhead.
Calculate a suggested selling price from your target
A target food-cost percentage works backward from the recipe cost to a possible selling price. The formula is ingredient cost divided by the target percentage expressed as a decimal. For example, a target of 30 means dividing the ingredient cost by 0.30, while a target of 25 means dividing by 0.25.
A lower target therefore produces a higher suggested price for the same ingredients, leaving a larger share of sales before other operating expenses. The target must be greater than zero and no more than 100. This range avoids division by zero and keeps the target within the ordinary meaning of a percentage of sales.
The returned suggested price is a mathematical baseline, not an automatic menu decision. Restaurants commonly adjust it to a customer-friendly amount, compare it with nearby competitors, account for local taxes or commissions, and check whether portions and waste assumptions are realistic. When rounding the suggestion for display, calculate the resulting percentage again using the final price rather than assuming that the rounded price preserves the exact target.
A zero ingredient cost returns a zero suggested price mathematically; commercial judgment is still needed because labor, service, packaging, and perceived value may justify a positive selling price even when the tracked ingredient cost is zero.
Use the result in recipe costing and menu reviews
Start with a per-serving ingredient cost built from current purchase prices, usable yields, and the actual recipe quantity for every component. Use the current selling price before tax unless your internal costing policy consistently uses a tax-inclusive price. Run the calculator once for the present menu item, then compare its current food cost percentage with the target chosen for that category or concept.
The suggested price shows the exact price implied by that target and the supplied ingredient cost. It does not tell you whether guests will accept the price, whether the item drives valuable add-on sales, or whether a higher-cost signature dish strengthens the overall menu mix. Repeat the calculation whenever vendors change prices, portions change, or a recipe is reformulated.
What you can do with it
Cost a new menu item
Convert the recipe's per-serving ingredient cost into a target-based starting price before the dish is added to the menu.
Review supplier price changes
Recalculate the current food cost percentage after ingredients become more expensive and see the price implied by the original target.
Audit a menu in a workflow
Apply one deterministic formula across item records and flag zero prices or invalid targets instead of allowing undefined results.
FAQ
What is the restaurant food cost percentage formula?
Divide the ingredient cost per serving by the menu price, then multiply by 100. Both monetary inputs must use the same currency basis.
How is the suggested menu price calculated?
Divide the ingredient cost by the target food-cost percentage expressed as a decimal. An ingredient cost of 3 divided by a 30 percent target produces a suggested price of 10.
Why does a zero menu price return an error?
Food cost percentage divides by menu price, so a zero price would make the result undefined.
Does the suggested price include labor, overhead, tax, or profit?
No. It is based only on ingredient cost and the chosen target percentage. Evaluate labor, overhead, tax, commissions, demand, and desired profit separately.
Why does a lower target give a higher suggested price?
Because the same ingredient cost is divided by a smaller decimal: a 30% target divides by 0.30, a 25% target by 0.25. The lower target leaves a larger share of each sale for labor, rent and other costs.
Related tools
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/food-cost-percentage \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"ingredient_cost":3.25,"menu_price":13,"target_food_cost_percentage":28}'const res = await fetch("https://api.kit.forhosting.com/cook/food-cost-percentage", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"ingredient_cost": 3.25,
"menu_price": 13,
"target_food_cost_percentage": 28
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/cook/food-cost-percentage",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"ingredient_cost": 3.25,
"menu_price": 13,
"target_food_cost_percentage": 28
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/cook/food-cost-percentage", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"ingredient_cost":3.25,"menu_price":13,"target_food_cost_percentage":28}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"ingredient_cost":3.25,"menu_price":13,"target_food_cost_percentage":28}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/cook/food-cost-percentage", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"ingredient_cost": 3.25,
"menu_price": 13,
"target_food_cost_percentage": 28
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "cook.food_cost_percentage",
"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. |
Technical notes
Use the result in recipe costing and menu reviews
For automated recipe systems, call the API at $0.002 per successful item and store both the input assumptions and output beside the costing date in your own system; the capability itself does not fetch supplier data or retain a costing history. Validation failures, including a zero menu price, return invalid_input so a batch can isolate bad records instead of accepting Infinity or NaN. Because the calculation uses no network, randomness, or language model, the same inputs always produce the same percentage and suggestion in the browser and API.
Technical questions
What does the calculator cost to use?
It runs free in the browser. A successful API calculation costs $0.002 per item; invalid inputs are rejected without a valid calculation.