Skip to content

How to calculate food cost percentage

Food cost percentage tells you how much of each sale goes back into ingredients. It is one division — but getting the inputs right is where most owners slip.

By BillDine4 min read

The formula for one dish

For a single dish:

Food cost % = cost of the ingredients in one portion ÷ selling price × 100

Use the selling price before tax. Tax is collected for the government; it is not your revenue.

A worked example

A pasta dish sells for 12.00 before tax. One portion uses:

  • pasta, 120 g at 2.50 a kg: 0.30
  • sauce, 150 ml at 6.00 a litre: 0.90
  • cheese, 20 g at 18.00 a kg: 0.36
  • olive oil and herbs: 0.14

The portion costs 1.70. Food cost is 1.70 ÷ 12.00 × 100 = 14.2%. The rest — 10.30 — has to pay for staff, rent, energy and everything else, and leave a profit.

The formula for a period

A single dish tells you what should happen. A period — a week or a month — tells you what did:

Food cost % = (opening stock + purchases − closing stock) ÷ food sales × 100

  • Opening stock is the value of food on hand at the start of the period, from a stock count.
  • Purchases are the food you bought during it.
  • Closing stock is the value on hand at the end, from another count.
  • Food sales are your food sales for the period, before tax.

A worked example

  • opening stock: 4,000
  • purchases: 11,000
  • closing stock: 3,500
  • food sales: 36,000

Food used is 4,000 + 11,000 − 3,500 = 11,500. Food cost is 11,500 ÷ 36,000 × 100 = 31.9%.

Why the two numbers differ

Your period food cost is almost always higher than the average of your dishes' food costs. The gap is everything that didn't reach a paying guest: waste, over-portioning, staff meals, mistakes, complimentary dishes, and stock that went missing.

That gap is the most useful number in this guide. If your recipes say 26% and your period says 32%, six points of every sale are leaving the kitchen without being paid for. Our guide to reducing food waste with stock counts shows how to find where.

Common mistakes

  • Using prices that include tax. It makes food cost look lower than it is.
  • Using old ingredient prices. Use the price you pay now — or the average cost of the stock you hold — not last year's invoice.
  • Forgetting the small things. Oil, garnish, sauces, packaging for takeaway. Each is small; together they add up.
  • Ignoring yield. A kilo of whole fish does not give a kilo of fillet. Cost the part that reaches the plate, or add a wastage percentage to the recipe.
  • Skipping the counts. Without opening and closing counts, the period formula is a guess.
  • Mixing food and drink. Drinks usually have a very different cost from food. Work them out separately.

Is there a "right" food cost?

There is no single target that suits every restaurant. A café selling coffee and pastries, a steakhouse and a cloud kitchen have very different costs and prices. The useful comparisons are:

  • each dish against the others on your own menu;
  • this month against last month;
  • your recipes' food cost against your period food cost.

If your numbers move, ask why before you change prices.

Using it to price a dish

If you know what food cost you want a dish to run at, you can work backwards:

Price before tax = portion cost ÷ target food cost %

A portion costing 2.40, aimed at 30%, needs a price of 2.40 ÷ 0.30 = 8.00 before tax. Then look at what guests will pay and what similar dishes sell for, and decide. Food cost is one input to a price, not the whole answer — a dish with a higher food cost can still earn more cash per plate. Our guide to menu engineering looks at that side.

How BillDine works it out

  • Cost per portion while you write the recipe. A recipe says what one portion of a dish or an add-on takes from stock — the ingredients, how much of each, and an optional wastage percentage. While you write it, BillDine shows the cost per portion and the food cost as a share of the dish's price, worked out from the average cost of your stock.
  • Prepared items. A sauce, a spice mix or a dough can be a prepared item with its own recipe: cook it in batches, and a sale takes the prepared item from stock instead of its raw ingredients.
  • Costs that follow your deliveries. When goods are received, stock and costs update at once, and each supplier's history shows the last price of everything they supply.
  • Counts for the period. A stocktake gives you a count sheet for the whole store, and the stock list and counts export as CSV or PDF.
  • Profit from your recipes. When your dishes have recipes and your ingredients have costs, the profitability report shows gross and net profit. Until every dish sold has a recipe cost, it says which dishes are left out and shows profit on the costed sales only, so a missing cost never reads as a profit.

See inventory in depth and reports in depth for which plans include them.

A monthly routine

  1. Keep recipes for your top dishes up to date.
  2. Count stock at the start and end of each month.
  3. Work out the period food cost.
  4. Compare it with your recipes' food cost, and look into the gap.
  5. Review the dishes whose costs moved most.

Questions

How do you calculate food cost percentage?
For one dish, divide the cost of the ingredients in one portion by its selling price before tax, and multiply by 100. For a period, divide (opening stock + purchases − closing stock) by food sales before tax, and multiply by 100.
Why is my actual food cost higher than my recipe costs?
The gap is food that didn't reach a paying guest: waste, over-portioning, staff meals, mistakes, complimentary dishes and missing stock. Stock counts and a wastage log show where it goes.
Can BillDine show the food cost of a dish?
Yes. While you write a recipe, BillDine shows the cost per portion and the food cost as a percentage of the dish's price, from the average cost of your stock.

Ready when you are

Create your account and go straight in: no set-up questions, and a few days of sample orders to explore. Your free trial starts when you sign in.

Setting up a POS terminal or kitchen screen? Use this device as a terminal