Food cost
Inventory

Actual vs Theoretical Food Cost: Find the Ingredient That Moved It

Food cost by site, one site above the group blend

What the Gap Between Theoretical and Actual Food Cost Is Telling You

Actual versus theoretical food cost variance is the difference between what your recipes say a dish should cost and what you actually spent to make it. A couple of points is normal; a group at 33% against a theoretical 28% has 5 points to explain. When the variance is bigger than that, the cause is usually a supplier price change, an ingredient swap, or a yield or wastage problem. This article shows how to trace a live variance to the one ingredient or event that moved it, and which site drove it.

Most teams see the variance and stop at the headline number. A cost controller rebuilds the actual-versus-theoretical sum in a spreadsheet every period, confirms the group is running 33% against a theoretical 28%, and still cannot say what caused the 5 points. Knowing the number without the cause gives you nothing to act on.

  • Question, not verdict. So treat the variance as a question, not a verdict. The number is an average of every dish, every site and every week stacked together, and the cause is hidden inside it. The work is to pull the variance apart until it points at one ingredient or one event you can fix.
  • Live breakdown. Supy's dashboards show live food cost percentage and theoretical-versus-actual variance by group, site and menu category. You start from the real breakdown, not a blended figure in a spreadsheet. You can see the same split in Supy's restaurant analytics reporting.
Actual food cost 33% minus theoretical 28% equals a 5% variance

Split a Blended Multi-Site Number Before You Chase It

A group variance is an average, and an average hides the site that caused it.

  • Split by site. Before you touch a single recipe, split the variance by location.
  • Find the outlier. Say the group runs 33% food cost against a theoretical 28%, a 5 point gap. Pull it apart by site and three sites sit between 30 and 32% while one runs at 39%. The group number told you to fix everything; the split tells you to fix the one site at 39%.

This is the first fork in the tree, and it saves you from reworking recipes that were never the problem:

  • One site is far worse than the rest. The cause is local: that site's supplier prices, that site's substitutions, or that site's counts. Work the branches below against that site only.
  • Every site is over by about the same amount. The cause is shared: a group-wide recipe, a supplier that delivers to all of them, or a costing method that is wrong everywhere.

Supy lets you view recipe cost per location in two modes, average cost over time or the most recent purchase price, so you can see how each site's own supplier pricing moves its food cost.

The site that looks worst on most-recent price but normal on average cost has taken a recent price hit, which points you straight at the next branch.

Food cost by site: three sites near 30 to 32% and one at 39% against a 33% group blend

Branch One: A Supplier Price Moved Under the Recipe

Start here, because it is the most common cause and the easiest to confirm. A supplier raises a price.

  • The cost shifts. Every recipe that uses that ingredient costs more from the next delivery, while your theoretical cost still shows the old price until someone updates it. The dishes did not change. The cost of making them did.
  • Look for clusters. The tell is that the variance clusters in dishes that share an ingredient. If a case of frying oil moved from $28 to $34, a 21% rise, then your fried items cost more while everything else stays the same. You are looking for that pattern, not a flat rise across the menu.
  • Prices move again. A moved price rarely stays put. In The Spread, Supy's analysis of genuine supplier list-price changes, half the time a supplier changes the same price again within 19 days, so a cost sheet you updated last month is already behind.

Those are list prices rather than the agreed price a site pays, but the lesson holds either way: reprice soon after a move.

Supy attributes this for you. Every recipe carries a Cost Adjustments view, a timeline of ingredient-level cost changes, so when a dish drifts you drill into which ingredient moved and when.

  1. Find the invoice. Click the ingredient row and Supy takes you to the stock movement that changed its cost, which is the delivery or the price change that caused the variance. That closes the loop from a drifting percentage to the exact invoice behind it.
  2. Reprice the recipe. The fix is to get the theoretical cost current so it stops lying to you, then decide whether to act on the dish. Re-price the recipe against the new cost, and if the margin no longer works, re-engineer the dish, move the price, or go back to the supplier.

Keeping recipe costs in step with supplier price changes is the difference between a variance you can explain and one that reappears every month.

The Spread: half of supplier price changes recur within 19 days

Branch Two: Someone Swapped an Ingredient Mid-Service

If the variance sits in one dish and no supplier price moved, a substitution is the likely cause. Supply gaps force swaps.

  • How swaps happen. The kitchen runs out of shortening and fries in oil, or trades one cut of chicken for another. The dish still sells at the same price, but it now costs more to make. Nobody logged the change against the recipe, so theoretical cost never saw it.
  • The margin hit. A substitution that costs 15% more per unit moves the food cost of every dish it touches. Because the menu price held, that extra cost comes straight off your margin. The variance looks like a mystery because the recipe on file is not the recipe the kitchen cooked.

Confirm it by asking the head chef what they ran out of this period, then check it against the cost timeline. The fix is to record the swap properly.

  • Swap it everywhere. Supy's Replace Item tool swaps an ingredient across every recipe that uses it, and can backdate the change up to two months.
  • Why backdating matters. The cost history then reflects when the swap actually happened, not the day you got around to logging it. Backdating matters here: without it, you cannot explain the variance for the weeks the kitchen was already cooking the substitute.
  • Permanent or one-off. Then make the call the swap forces. If the substitute is permanent, it is now the recipe, so cost and price it as one. If it was a one-off, flag the dish so the next count does not read the variance as a fresh problem.
The rising cost of logging an ingredient swap late, from swap day to month end

Branch Three: The Variance Is Yield or Wastage, Not Price

If no price moved and no ingredient was swapped, the variance is in how much of each ingredient actually reaches the plate. This branch is the one teams skip, because it does not show up on an invoice. The price per unit is right; the quantity the recipe assumes is wrong.

Two things drive it:

  • Yield is lower than the recipe costs against. A recipe assumes a 10% trim loss on a vegetable, but the kitchen is actually losing 18%. Those 8 extra points mean every portion uses more raw ingredient than the cost card says. The recipe costs against a 90% yield while the kitchen gets 82%, so you pay the difference on every portion.
  • Wastage is leaving before it reaches a dish. Food that spoils, over-production and over-portioning all raise actual usage above theoretical without changing a single price.

Take a $5.00 dish whose ingredients should cost $1.00 a portion at the recipe's yield:

Per portionAt the recipe yieldAt the real yield
Trim loss10%18%
Portion cost$1.00$1.10
Food cost20%22%

The portion cost rises to $1.10 at the real yield, so the dish runs a 22% food cost instead of 20% while the menu price holds.

Confirm the branch against your variance report. Supy's Cost per Location report breaks the variance into opening stock, purchases, transfers, wastage and closing stock. You can see whether the extra cost is usage or loss before you blame the recipe.

  • Usage runs high. If purchases match but usage runs high, the recipe yield is wrong.
  • Wastage line moved. If wastage is the line that moved, the problem is on the floor, not in the cost card.

The fix depends on which it is. Re-measure the real yield and update the recipe so theoretical reflects what the kitchen gets, or tighten prep and storage so actual usage comes back down to what the recipe already assumes. One is a costing fix, the other is an operations fix, and the report tells you which.

A food cost variance is only useful once it points at a single cause you can act on. So close every period by running the variance through the tree in order, and stop at the first branch that fits:

  • Split the blended number by site first. If one site is far worse, everything below applies to that site alone.
  • Did a supplier price move? Find the dishes that share the ingredient, get the theoretical cost current, then decide whether to re-price or re-engineer the dish.
  • Was an ingredient swapped? Record the swap against the recipe, backdate it to when it really started, and cost the dish as it is now cooked.
  • Is it yield or wastage? Read the variance report: fix the recipe yield if usage is wrong, tighten the floor if wastage is the line that moved.

A single-site operator running food cost at 35% of $30,000 in weekly sales does not need a better average. They need to know that the variance came from one site's fryer, one swapped ingredient or one recipe yield.

Work it down to that one line this period and fix it. The variance you carry into next period is then the one you chose to keep.

Book a Demo with Supy - trace every food cost variance to its cause

Ready to optimize your restaurant operations?

Blog

Our operational insights

How to calculate food cost percentage - professional kitchen during service
Food cost

How to Calculate Food Cost Percentage: Formula, Examples and Benchmarks

Analytics
F&B
Food cost

Supy x Revel : The Partnership Helping Multi-Site Businesses Cut Costs

F&B
Inventory
Pricing
Food cost

How to Increase Profit Margins in Restaurants with Integrated Inventory Solutions

Your questions 
answered

Everything you need to know about Supy — from setup to integrations, pricing, and daily use. If it’s not covered here, just ask.

What is the difference between actual and theoretical food cost?
+

Theoretical food cost is what your recipes say a dish should cost; actual food cost is what you really spent to make it. Theoretical comes from the cost card: the ingredients and quantities in each recipe, priced at their current cost. Actual comes from your stock: opening count, plus purchases and transfers, minus closing count, turned into a percentage of sales. When the two match, your recipes and your kitchen agree. When actual runs higher, something is costing more or using more than the recipe assumes, and the gap between them is the variance you investigate.

What is a normal food cost variance?
+

A small variance is normal, and most groups aim to keep the variance within a couple of percentage points of theoretical. Some drift is expected because prices move, portions vary slightly, and a little wastage is unavoidable. The number itself matters less than whether you can explain it. A 2 point variance you understand is healthier than a 2 point one you cannot account for, because the one you cannot explain can widen without warning. Set your own target against your history and your menu, then treat any move past it as a question to answer, not a figure to accept.

How do I find which ingredient caused a food cost variance?
+

Start by finding the dishes that came in over their recipe cost, then look for an ingredient they share. If several fried items moved and nothing else did, the frying oil is your suspect. Supy's Cost Adjustments view shows an ingredient-level timeline of cost changes on every recipe, so you drill from an over-cost dish into the exact ingredient that moved and when. Clicking that ingredient takes you to the stock movement behind it, the delivery or price change that caused it. That turns a vague percentage into one ingredient and one event you can act on.

Why does my actual food cost keep rising when prices have not changed?
+

When prices hold but actual food cost still climbs, the cause is usually yield or wastage rather than cost. The price per unit is right, but the quantity reaching the plate is higher than the recipe assumes. A recipe might cost against a 10% trim loss while the kitchen actually loses 18%, so every portion uses more raw ingredient than the cost card says. Spoilage, over-production and loose portioning do the same thing. Read your variance report: if purchases match but usage runs high, the recipe yield is wrong; if wastage is the line that moved, the problem is on the floor.

How does an ingredient substitution affect food cost?
+

A substitution raises food cost whenever the swap costs more than the original and the menu price stays the same. Supply gaps force these swaps, and the kitchen keeps selling the dish at its usual price while it quietly costs more to make. If the substitute runs 15% more per unit, that extra cost comes off your margin, and theoretical cost never sees it because nobody logged the change against the recipe. Record the swap against the recipe so your cost card matches what the kitchen actually cooks, and decide whether the substitute is permanent or a one-off before the next count reads it as a fresh problem.

How do I find which location is driving a multi-site food cost variance?
+

Split the blended group number by site before you touch a recipe, because an average hides the site that caused it. A group running 33% food cost against a 28% theoretical, a 5 point gap, can be three steady sites near 30% and one site at 39%. The group figure tells you to fix everything; the split tells you to fix one site. Supy shows recipe cost per location and breaks food cost variance down by site, so you can compare them directly. Once you know which site moved, work the supplier price, substitution and yield branches against that site alone instead of reworking the whole group.

How often should I check food cost variance?
+

Check variance at the close of every stock period, which for most operators means weekly or at month end when you run a full count. The point is to catch a cause while you can still trace it, because a price change or a substitution from three weeks ago is far harder to attribute than one from this week. A live dashboard lets you watch food cost percentage between counts and spot a dish drifting before the formal close. Pair the regular period check with a quick look whenever a supplier price moves or the kitchen runs out of a key ingredient.

Ready to transform your operations?

Join 3500+ restaurant operators cutting costs, streamlining operations and making smarter decisions with Supy.