Every operator I have worked with, when the food cost line goes hot, calls the vendor first. It is the reflex. Get the vendor on the phone, push back on the produce invoice, argue over a case price. The reflex is understandable. It is also almost always the wrong first move.
In sixteen years of running multi-unit operations across quick-service, fast-casual, and full-service, I have never seen a food cost problem that was primarily a vendor problem. Not once. Vendor pricing is real and worth managing, but it will move your food cost line by half a point in a good year. The count discipline inside the four walls will move it by 2 to 3 points. The math is not close.
What "food cost is high" actually means
Food cost as a percent of sales is the cost of goods sold divided by net sales. When it runs 2 to 4 points above the healthy benchmark for your format, the P&L is telling you one of two things.
Either the food you paid for did not turn into revenue, or the food that turned into revenue was priced under what it cost. The first is a counting problem. The second is a menu-pricing or portion-spec problem. In an underperforming operation, it is almost always the first. And the vendor invoice, which is what most operators fixate on, is almost never the source.
Fig. 1 · Where a typical food cost variance comes from.
Read the chart carefully. When I broke down the drivers of food cost variance across the 21 franchise units I ran at Hana Group, the vendor line was the smallest single driver in almost every case. The three inside-the-walls drivers, waste log, portion drift, and count error, added up to 85 percent of the variance. That ratio is remarkably consistent across concepts and price points.
The first move: physical inventory
The first thing to do when food cost goes hot is not to call the vendor. It is to run a full physical inventory in every walk-in, every dry storage, and every freezer, on the same night, across every location in the group.
Two people per location, one counting and one writing. Every SKU. Weight for proteins, unit for produce and dry goods, level for liquids. Do it on a Sunday night after close so the count is against clean shelves and before the Monday delivery.
Then compare the physical count to what the inventory system says you have. The gap is your unrecorded shrink. That is your food cost problem, on a plate.
The gap between what the system says you have and what you actually have on the shelf is the size of your food cost problem. Everything else is diagnosis.
On the last three-location group I ran through this, the first physical count showed a $32,000 shrink gap across three walk-ins on one Sunday. That gap had been rolling into cost of goods sold as invisible expense for months. Once we saw the number, we knew what we were solving for.
The five-minute closing waste log
The next move is to install the closing-shift waste log. This is where most of the recovery happens.
The rule is simple. Before the closing manager locks up, they open the inventory system and enter three things: everything thrown out during the shift, everything comped, everything voided that involved food leaving the pass. Five minutes. Every shift. No exceptions.
The pushback you will get is "we do not have time." The counter is that you do not have time not to. A shift that skips the waste log turns into a P&L that cannot distinguish between food that produced revenue and food that did not. That is not a small problem. That is the whole diagnostic signal getting corrupted, one shift at a time.
Two operational tricks that make the closing waste log actually happen:
- Put the waste log on the closing checklist between "cash drop" and "set alarm." The closing manager cannot lock up until it is done. The checklist is what enforces the discipline.
- Show yesterday's waste log entry on the daily flash report every morning. Then last night's closing manager owns their entry publicly, in front of the general manager. It takes about a week for the entries to become accurate.
Portion drift: the silent killer
The third source of food cost variance is portioning. And it is silent, because it happens over quarters, not weeks.
Here is what happens. The line cook trained to the spec six months ago. The spec was 6 ounces of protein. Somewhere along the way a busy cook grabs a slightly heavier tong pull and no one calls it out. Now the working portion is 6.4 ounces. Two months later a new cook trains on that portion and now the working portion is 6.6 ounces. A quarter later the plate has grown by 10 percent and no one on the line remembers it changed.
On a 40 percent food cost item at $28 menu price, a 10 percent portion oversize gives away $1.12 per plate. On 300 plates a week, that is $17,472 a year. On a menu with eight high-volume items all drifting like this, you are giving away six figures a year and the P&L just calls it "food cost." Portion drift is the single hardest food cost problem to see, because it does not show up in the invoice, does not show up in the waste log, and does not show up in the count. It only shows up in the plate.
Fig. 2 · Portion drift is the leak nobody sees.
The fix is a weekly plate weigh-in. Five plates, randomly pulled off the pass during service, weighed by the general manager or the sous chef. Compared to the spec. If any item drifts more than 8 percent, the portion training resets for that item next week. It is a 15-minute ritual and it protects a six-figure margin line.
The math on a $10M unit
Here is what the counting fix does in dollars on a typical $10M unit:
Annual net sales: $10,000,000
Food cost at 34%: $3,400,000
Healthy benchmark 30%: $3,000,000
Gap: $400,000
Recovered through:
Waste log discipline $140,000
Portion audits $120,000
Weekly inventory reconcile $90,000
Vendor renegotiation $40,000
Menu re-costing $10,000
---------
Total annual recovery: $400,000
The vendor number is deliberately small. Not because vendor negotiation is not worth doing, but because it is not where the meaningful money is. The counting discipline is where the meaningful money is.
Why weekly counts beat monthly counts
Almost every restaurant I walk into is running monthly inventory. Monthly is too late. Here is why.
By month end, the story of where the shrink came from is already forgotten. The Tuesday delivery that showed up two cases short. The Friday walk-in door that got left propped open for four hours. The Sunday brunch where the omelet station threw out a whole tray of prep because the eggs looked off. All of those are recoverable variances if you catch them within a week. None of them are recoverable at month end because nobody remembers they happened.
Weekly inventory catches the drift while the story is still fresh. Monthly inventory catches the drift after the story is already forgotten. The count itself is the same. The timing changes everything.
Weekly counts also let you spot the pattern. When protein shrink runs high three weeks in a row at the same location, you have a receiving problem or a portioning problem, not a random bad week. Monthly counts smooth those patterns into invisibility.
Receiving is where the count starts
One layer earlier than the walk-in count is the receiving discipline. Every case that comes off a truck should be checked against the invoice before the truck leaves. Every case. Not spot-checked. Not "we trust our vendor." Checked.
This is boring and it is where the second most common leak lives. Vendors do not typically short-deliver on purpose, but they do short-deliver by mistake, and the mistake becomes your problem the moment the truck drives away. A case of protein missing on Monday shows up as a stockout on Friday and gets replaced with an emergency delivery at a 30 percent price premium. The original short case is never chased down because nobody remembered by then.
The receiving fix is a two-minute ritual. The receiving manager stands at the loading dock with the invoice in one hand and the driver present. Each case gets checked off against the invoice line by line. Anything short is noted on the invoice, both copies signed, and the vendor credit is issued that day. Not later. That day.
The second thing to watch during receiving is the sub swap. Vendors sometimes ship a substituted item when the specified item is out of stock. Substitutions almost always run more expensive per unit and are often lower quality. If the receiving manager is not scanning the case brand and item code against the order, the substitution ships, the invoice matches, and the operator has just paid a premium for a downgrade without noticing. Sub swaps caught at the dock cost the vendor nothing to correct. Sub swaps caught at month end are almost always eaten by the operator.
The weekly food cost variance conversation
The last piece of the counting discipline is the weekly conversation. Not monthly. Weekly.
Every Monday, the general manager and the kitchen manager sit down for fifteen minutes with the weekly food cost report. Three questions. What was our food cost as a percent of sales last week? What was the biggest single variance driver? What are we doing this week to move that number?
The conversation is short and standing. It is also public inside the team, in the sense that the numbers are visible on a board in the kitchen. When the kitchen manager knows the number will be discussed every Monday and knows the whole team can see the weekly food cost, the counting discipline holds because there is nowhere to hide a bad week. When the conversation only happens at quarter end, the discipline drifts because there is no immediate feedback loop.
Weekly rhythm holds discipline. Monthly rhythm does not. The difference between a food cost that stabilizes at 30 percent and one that swings between 27 and 34 is entirely in the cadence of the conversation.
What I got wrong the first time
Two things I would do differently, having run this play a few times now.
First, I used to focus on the walk-in and ignore the dry storage. Dry storage looks stable because the packaging is uniform and the shelf life is long. But dry storage is where the theft happens if theft is going to happen. Whole cases of paper towels, cases of soft drinks, cases of oil. Small numbers per unit, large numbers per case. Now I count dry storage every week too.
Second, I used to install the waste log without installing the reason codes. Waste that gets logged without a reason code is barely better than waste that does not get logged. If the closing manager writes down "12 lbs chicken thrown out" but does not write down why, you cannot fix anything. Now the waste log has three required fields: item, quantity, reason. Prep error, spoilage, dropped, comped, staff meal, or other with a note. The reason field is what makes the log actionable.
The point
Food cost is a counting problem. The vendor is not the leak. The vendor moves the line by half a point on a good day. The count discipline inside the walk-in moves the line by 2 to 3 points every quarter you hold it, and it holds forever if the closing waste log, the weekly physical count, and the weekly portion weigh-in all happen every week.
The next time your food cost line goes hot, do not call the vendor first. Run the physical count. Install the waste log. Weigh five plates. The vendor call can happen next quarter. The counting has to happen this week.