Food cost
Menu engineering

Track Recipe Cost Changes Over Time: Catch Margin Erosion Before It Hits Your P&L

Recipe cost history for a chicken shawarma plate rising from $3.10 to $4.05 over five months

Why Your Recipe Cost Is a Moving Number, Not a Fixed One

Tracking recipe cost over time means watching how a dish's total ingredient cost moves month to month, and knowing which ingredient drove each change. A recipe cost is not fixed. It shifts every time a supplier price changes, a portion is adjusted, or an ingredient is substituted, so the figure you costed a dish at last quarter is rarely the figure it costs today.

Here is what that drift looks like on a single high-volume item. A chicken shawarma plate that costed at $3.10 five months ago now costs $4.05 to build. Same recipe, same portion, no change to how it is made. That is a 31% rise driven entirely by ingredient prices moving underneath the recipe, and it pushed the plate's food cost from 25.8% to 33.8% of its $12.00 menu price, straight past the 28% target.

Bar chart showing a chicken shawarma plate's recipe cost climbing from $3.10 to $4.05 over five months, crossing the $3.36 target cost


The reason this kind of erosion goes unnoticed is that it arrives in fractions of a cent per plate. That $0.95 increase feels like nothing on one ticket. Multiply it across 1,800 covers a month for this one dish and it is $1,710 a month, roughly $20,520 a year of margin quietly gone, on a single menu item. Nobody approved that. It simply accumulated invoice by invoice until it showed up as a worse food cost percentage on the month-end profit and loss statement, long after the moment anyone could have acted on it. Live recipe costing that updates the moment an invoice is captured is what turns that month-end surprise into something you can see while it is still happening.

How a Single Cheap Delivery Masks Your Real Food Cost

Recipe costing runs on a rolling weighted-average of every ingredient purchase, not on the price of the latest invoice. That is the correct way to cost a dish, but it has a side effect worth understanding: a single cheap delivery can make a recipe look cheaper than it really is until the average catches up, and a single expensive one can spike it.

Take the chicken in that shawarma plate. Last week's delivery landed at $8.90 per kilo, so a manager glancing at the invoice would conclude prices had eased. The weighted-average cost the recipe actually uses is $9.60 per kilo, because it still carries months of higher-priced buys. Cost the dish off the last invoice and you understate it; cost it off the running average and you see the truth.

Stat callout showing the weighted-average chicken cost of $9.60 per kilo the recipe uses versus the $8.90 per kilo last invoice


This is exactly why a single snapshot lies and a trend tells the truth. Whether a recipe should follow the live weighted-average at all, or hold a fixed cost, depends on the ingredient, and we cover that decision in detail in our guide to live purchase price versus fixed cost. Either way, the number to watch is the direction of travel over several months, not the figure on any one delivery note.

Catching the Ingredient That Quietly Erodes Your Margin

Knowing a dish got more expensive is only half the answer. The useful question is which ingredient moved it, and by how much, because that is what tells you where to act. A per-recipe cost-change history breaks the movement down to the line item, so instead of a vague sense that food cost is up, you get a ranked list of exactly what changed.

Table breaking the plate's $0.95 cost increase down by ingredient, with chicken breast up $0.62, pita up $0.16, cooking oil up $0.09 and garlic sauce up $0.06


On this plate the story is clear the moment you see it broken out. Chicken breast alone moved from $1.30 to $1.92 per plate, which is $0.62 of the total $0.95 rise, roughly 65% of the whole problem. Pita, oil and garlic sauce make up the rest in much smaller amounts. That ranking changes what you do next: a supplier conversation or a spec change on chicken pays back the erosion far faster than tightening four minor ingredients would. Supy keeps this history per recipe, showing how the total cost has moved and attributing each shift to the ingredient behind it, so the highest-value fix is always the obvious one.

Price Rise or Waste? Read the Variance Before You React

A recipe that costs more and a kitchen that wastes more look identical on the profit and loss statement: both show up as cost you did not plan for. They need opposite fixes, though, and acting on the wrong one wastes effort. Reading the recipe cost-change history against a usage variance report separates them cleanly.

The cost-change history tells you the per-kilo price of an ingredient rose. A usage variance report, comparing what the recipes theoretically should have consumed against what stock records say was actually used, tells you whether the kitchen also went through more of it than the recipe called for.

Usage variance table showing theoretical versus actual consumption, with chicken 7.2 kilos over theoretical worth $69, separate from the price rise


Here the chicken carries both problems at once. Its price per kilo rose, which the cost-change history caught, and the kitchen also used 7.2 kilos more than the recipes called for, worth about $69 in this period, which the variance caught. One is a purchasing or specification fix; the other is a portioning, prep-loss or waste-logging fix. Our deeper walkthrough of theoretical versus actual food cost variance covers how to run that split each period. One more thing keeps the history trustworthy while you work: when you correct a recipe or update a portion, Supy reprocesses the historical inventory transactions so earlier periods still reconcile, and your cost trend does not break every time you fix something.

Turn This Into a Fifteen-Minute Monthly Check

You do not need a project to get ahead of margin erosion, just a short routine. Run this self-diagnostic once a month and it will surface the drift while it is still small:

Four-step monthly recipe cost check: pull top-volume dishes, compare cost to a quarter ago, open the cost-change history to find the ingredient, then decide on a price fix or a usage fix


First, pull your ten highest-volume dishes, because a few cents of drift there dwarfs a large swing on an item you sell twice a week. Second, compare each dish's current recipe cost against its cost a quarter ago. Third, for any dish that moved more than a point or two of food cost percentage, open its cost-change history and find the ingredient behind the move. Fourth, decide per ingredient whether it is a price fix, meaning a supplier or specification conversation, or a usage fix, meaning portioning, prep loss or unlogged waste. Start with the single biggest mover on your single highest-volume dish, and you will recover more margin in fifteen minutes than a broad, unfocused cost-cutting drive usually finds in a week.

Recipe cost is a moving number, and the operators who protect their margins are the ones who watch it move rather than discovering where it landed at month-end. Track the trend, attribute the change, separate price from waste, and the P&L stops delivering surprises.

Book a Demo with Supy to track recipe cost changes over time and catch margin erosion

Ready to optimize your restaurant operations?

Blog

Our operational insights

No items found.

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.

How do I track how a recipe's cost changes over time?
+

Start by costing each dish on a rolling weighted-average of its ingredient purchases, then review that cost on a fixed cadence rather than only at month-end. A per-recipe cost-change history is the fastest way: it shows how a dish's total cost has moved across recent periods and attributes each shift to the ingredient that drove it. Compare a dish's current cost against a quarter ago, and for anything that moved more than a point or two of food cost, open the history to see which line item is responsible before you decide how to respond.

Why does my recipe cost keep changing when the recipe has not changed?
+

Because the recipe is fixed but its ingredient prices are not. Every supplier invoice you capture updates the weighted-average cost of that ingredient, so a dish you built once keeps recosting itself as deliveries arrive. A run of higher-priced buys lifts the dish; a cheaper delivery eases it. None of this touches the portion or the method, yet the plate cost drifts continually. That is why a single cost snapshot is misleading and a trend over several months is what actually tells you whether a dish is quietly slipping below its target margin.

What is a weighted-average ingredient cost, and why not just use the latest invoice?
+

A weighted-average blends the cost of your remaining stock with each new purchase, in proportion to quantity, so the ingredient cost reflects what you actually paid across recent deliveries rather than one moment in time. Using only the latest invoice makes a dish look artificially cheap after a low-priced delivery, or artificially expensive after a spike, and both distort pricing and margin decisions. The weighted-average smooths that out and is the number your recipe cost should follow. Watching how that average trends over months is what surfaces genuine margin erosion instead of day-to-day delivery noise.

How can I tell whether a higher food cost is a price rise or a waste problem?
+

Read two reports side by side. The recipe cost-change history tells you whether an ingredient's price per unit went up. A usage variance report, which compares what your recipes theoretically should have consumed against what stock records show was actually used, tells you whether the kitchen also went through more than the recipe called for. A price rise points to a supplier or specification fix; a usage overage points to portioning, prep loss or unlogged waste. Separating the two stops you from renegotiating a contract when the real issue is over-portioning, or the reverse.

Which recipes should I review first for margin erosion?
+

Start with your highest-volume dishes, not your most expensive ones. A few cents of cost drift on an item you sell many hundreds of times a month does far more damage than a large swing on something you sell twice a week, because the erosion multiplies by volume. Rank your menu by units sold, take the top ten, and check those first. Within each dish, focus on the ingredient that accounts for the largest share of any cost increase, since fixing the biggest mover recovers most of the lost margin for the least effort.

Does correcting a recipe distort my historical cost reports?
+

No, provided your system reprocesses history when you make the change. When you update an ingredient, portion size or cost centre in Supy, historical inventory transactions are automatically reprocessed so earlier periods still reconcile against the corrected recipe. That means fixing a mistake does not create a break in your cost trend or leave two periods that cannot be compared. It also means you can correct recipes as you find issues without fear of corrupting the very history you rely on to spot margin erosion, so the cost-change timeline stays trustworthy over the long run.

How often should I check recipe costs to catch margin erosion early?
+

A short monthly review is usually enough for most operations. Once a month, pull your ten highest-volume dishes, compare each one's current recipe cost against a quarter ago, and open the cost-change history for any that moved more than a point or two of food cost percentage. Decide per ingredient whether the fix is a purchasing conversation or a kitchen one, then move on. This takes about fifteen minutes and catches drift while it is still small, long before it compounds across thousands of covers and lands as an unpleasant surprise on the month-end profit and loss statement.

Ready to transform your operations?

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