Food cost

Restaurant Gross Profit Margin: How To Calculate It & What It Actually Measures

Restaurant gross profit margin - GP% by location showing theoretical vs actual figures with two underperforming sites masked by blended average

What Restaurant Gross Profit Margin Actually Measures

Gross profit margin is the percentage of revenue left after subtracting the cost of goods sold (COGS) - food and beverage costs - from total revenue:

GP% = (Revenue minus COGS) / Revenue x 100

How restaurant gross profit margin is calculated - formula breakdown with stat cards showing Revenue, COGS, and GP% components

At a single site, this appears simple. If a location takes $100,000 in a month and spends $32,000 on food and beverage, gross profit margin is 68%. The challenge is that each of the three variables in that formula - revenue, COGS, and the relationship between them - carries assumptions that most restaurant management systems do not verify automatically.

Revenue looks like the fixed variable. It is not, particularly for operators running delivery alongside dine-in. More on that in the fourth section.

COGS in a management system is calculated by multiplying recipe quantities by ingredient costs. Those ingredient costs are only as accurate as the last goods receipt note (GRN) that updated them. If a supplier raised prices on a high-volume ingredient three invoices ago and those GRNs were not matched against the recipe cost model, every dish using that ingredient has been costed at the old price since.

The gap between the formula and the actual P&L result is where margin disappears without a clear line in any report.

Ask your system: does it update recipe costs automatically from confirmed GRNs, or does it require a manual cost-update cycle?

Why Theoretical GP% Is Consistently Higher Than Your P&L Figure

The gap between theoretical and actual gross profit margin has three main sources, and most operators experience all three simultaneously.

Theoretical vs actual GP% gap at a multi-location fast-casual chain - bar chart showing 4-5 point consistent gap with three root causes identified

Stale recipe costs. Ingredient prices change with every delivery. A recipe cost model that is updated manually - monthly, quarterly, or whenever someone notices - is always working from historical prices. At a multi-location fast-casual chain, the head of operations identified this as the primary driver of a 4-5 percentage point gap between theoretical GP% and actual P&L results. Recipe costs had not been updated for 6 months. That window covered multiple commodity price movements the system never absorbed.

Unrecorded wastage. Spoilage, prep waste, and staff meals that are not logged do not reduce theoretical stock. They reduce actual stock. At month-end, the system closes with a theoretical stock figure higher than the physical count. COGS is understated, gross profit is overstated. The theoretical GP% includes ingredients that were never sold.

Portion inconsistency. A recipe specifying 180g of protein shows a different COGS per dish than one where kitchen staff are plating 195g. The system costs at 180g. The actual food cost is 195g. Across high-volume service, the gap is material - and invisible in the system until a physical stock count surfaces the variance.

Any one of these sources is enough to produce a 2-3 percentage point gap between theoretical and actual GP%. All three together produce the consistent 4-5 point gap that is common across multi-location groups that have not closed off these inputs.

Ask: does your system log waste by reason code - spoilage, prep waste, staff food - and automatically deduct logged waste from the theoretical stock calculation?

How Blended GP% Across Sites Masks Underperforming Locations

The third source of GP% error is structural for any operator running more than one site: the blended figure.

How blended 63% GP% hides two underperforming locations running at 55-57% for 3 months - per-site breakdown table with masked status badges

A multi-site casual dining operator's finance team reported a consistent 63% GP% in group-level reporting. No individual site was flagged. When a quarterly review disaggregated the figure to per-location level, two sites were running at 55-57% - a 6-10 point gap below the group average. The blended figure had masked the underperformance for 3 months. Root cause: the two underperforming sites had switched supplier for two high-usage ingredients and were paying 12-15% more per unit. That price change was not reflected in the recipe cost models at those locations, so the system continued to cost those dishes at the old price. Actual COGS was higher. Actual GP% was lower. The blended average absorbed the error.

This pattern is not unusual. A group-level GP% figure is a weighted average. If your highest-volume site runs at 67% and two smaller sites run at 55%, the blended figure might read 64% - and no one reviews the smaller sites because the group number looks fine.

Per-site GP% reporting, updated from live GRN data, is the control that catches this pattern before the quarterly review. It does not require a new finance process. It requires a system where actual purchase prices update recipe costs automatically as GRNs are confirmed - and where live food-cost-% by location is visible in a weekly review, not only at month-end.

Ask: does your reporting show GP% per individual site and flag locations where the figure has moved more than 2 points below the group average?

How Delivery Revenue Distorts Gross Profit Margin for Multi-Channel Operators

Operators running delivery through aggregator platforms face a specific GP% calculation problem.

How delivery aggregator commissions create two different GP% figures - same dish showing 30% food cost on gross revenue vs 40% on net revenue after $5 commission on $20 dish

A restaurant group operating dine-in and delivery found that the finance team and operations team produced GP% figures that were 11 percentage points apart on the same delivery-heavy brand, for the same period. The difference was not a data error. Finance calculated GP% using gross revenue - the full order value before the aggregator commission was deducted. Operations calculated it using net revenue - the amount the restaurant actually received. Same food cost. Two GP% figures, 11 points apart. Neither team was wrong by the formula. They were measuring different things.

The correct denominator for food-cost-percentage calculations is the revenue the restaurant actually receives - net of aggregator commission, net of applicable taxes. Using gross revenue to calculate GP% on delivery orders inflates the figure because the denominator is larger than the actual payout.

An item that costs $6 to produce and retails at $20 (gross) with a $5 aggregator commission carries a food cost percentage of 30% on gross revenue and 40% on net. If your kitchen operates to a 30% food-cost target and your finance reporting uses gross revenue while your P&L reflects the net payout, the variance is structural - not a calculation error that will resolve itself.

For operators above 20% delivery mix, the difference between gross and net revenue GP% is material enough to drive decision errors: menu re-engineering, supplier negotiations, and site performance assessments that are based on a figure the P&L does not support.

Ask: does your system calculate food-cost-% on net revenue received, or gross order value? For operators with significant delivery volume, the distinction is not rounding.

The Operational Controls That Close the Gap Between Theoretical and Actual GP%

Closing a 4-5 point theoretical-vs-actual gap is primarily a data-pipeline problem, not a cost-cutting problem. The margin is already built into the menu pricing. The issue is that the cost model does not capture what was actually purchased and used.

Three controls address the main sources of the gap.

Three operational controls that close the theoretical vs actual GP% gap - automatic GRN-to-recipe cost updates, logged wastage with stock deduction, and per-site GP% reporting from live data

Automatic recipe cost updates from GRNs. Every confirmed goods receipt note contains actual purchase prices. A system that writes those prices back to the recipe cost model as GRNs are approved eliminates the staleness problem. Recipe costs reflect the most recent confirmed delivery price, not a rate quoted six months ago.

Logged wastage with automatic stock deduction. Waste recorded at the point of disposal - on mobile, by reason code - feeds into the theoretical stock calculation immediately. The gap between theoretical and physical stock narrows to what cannot be observed (undeclared waste, theft), which is a smaller and more stable number.

Per-site GP% reporting from live data. A dashboard showing each site's food-cost-% - updated from GRN-confirmed prices and logged wastage - gives operations managers a signal within days of a price change or waste spike, not at month-end. Two underperforming sites at 55% appear immediately against the group average, not after a quarterly review.

These controls interact. Automatic GRN-to-recipe cost updates close the stale-cost problem. Logged wastage closes the spoilage gap. Per-site reporting surfaces blended-average masking. Each control is useful independently, but their combined effect on theoretical-vs-actual alignment is larger than the individual contributions.

Check whether this is happening in your operation

Run these three diagnostics before making any system changes.

First: when were recipe costs last updated for your five highest-cost ingredients? If the answer is more than 30 days ago, stale costs are contributing to your theoretical-vs-actual gap.

Second: compare last month's theoretical closing stock against your physical count. If the gap exceeds 1-2% of total stock value, unrecorded wastage is a factor.

Third: pull GP% by individual site for the past three months. If any site is more than 3 points below the group average without a clear operational explanation, blended averaging is masking a real margin problem.

The pattern of the gap tells you which cause is dominant. A consistent month-on-month gap points to stale recipe costs. A gap that spikes and recovers points to wastage. A stable group figure with high per-site variance points to blended-average masking.

Supy brings these controls into one system: automatic GRN-to-recipe-cost updates, per-site COGS dashboards, and wastage logging that feeds directly into the theoretical stock calculation. The interactive reporting module surfaces food-cost-% at group and individual site level, updated from live GRN data throughout the week, with 75+ POS and accounting integrations so sales figures flow in without a manual export.

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.

What is a good gross profit margin for a restaurant?
+

A gross profit margin of 65-75% is typical for full-service restaurants, while quick-service and fast-casual operations often target 70-80% due to simpler menus and lower labour involvement in food preparation. These benchmarks vary by cuisine type, price point, and whether the operation runs delivery. The more useful benchmark for a multi-site group is the per-site GP% range, not a single group average. A blended figure of 68% can mask two locations running at 58%, which is a margin problem that a group-level benchmark will not surface. Track GP% by site before comparing to industry targets.

How do you calculate gross profit margin for a restaurant?
+

Restaurant gross profit margin is calculated as: (Revenue minus Cost of Goods Sold) divided by Revenue, multiplied by 100. Cost of goods sold covers food and beverage purchases adjusted for opening and closing stock. The accuracy of the figure depends on how current the recipe costs in your system are, whether wastage is recorded and deducted, and - for delivery operators - whether revenue is gross order value or the net amount received after aggregator commission. Using gross revenue for delivery orders inflates the GP% figure; the correct denominator is the net payout the restaurant actually receives.

Why is my restaurant's theoretical gross profit margin higher than my actual P&L figure?
+

The gap between theoretical and actual gross profit margin typically has three sources running simultaneously. First, recipe costs in the system are not updated as new invoices arrive, so dishes are costed at prices from months ago. Second, wastage - spoilage, prep waste, staff meals - is not logged and not deducted from theoretical stock, inflating the apparent margin. Third, for multi-site operators, the blended GP% figure hides per-location variance. A 4-5 percentage point gap between theoretical and actual GP% is common in operations where none of these three inputs are closed off systematically.

How often should restaurant recipe costs be updated to keep gross profit margin accurate?
+

Recipe costs should update as each supplier delivery is confirmed, not on a fixed monthly or quarterly cycle. Ingredient prices change with every goods receipt note. A system that writes actual purchase prices back to the recipe cost model when GRNs are approved keeps GP% calculations current without a manual update process. When recipe cost updates are done manually, a 30-60 day delay is common, which means one or two commodity price movements are typically missed per cycle. For high-volume ingredients - proteins, oils, fresh produce - even a 10% price change missed for two months produces a measurable GP% error.

What is the difference between gross profit margin and net profit margin for restaurants?
+

Gross profit margin measures the percentage of revenue remaining after food and beverage costs (COGS). Net profit margin measures what is left after all operating costs - labour, rent, utilities, marketing, and other overheads - are deducted as well. A restaurant can have a 70% gross profit margin and a 5% net profit margin if labour and occupancy costs are high. Gross profit margin is the indicator operators use to evaluate food cost control and menu engineering. Net profit margin is the indicator that shows whether the overall business model is financially viable at its current volume and cost structure.

How do delivery platform commissions affect restaurant gross profit margin?
+

Delivery aggregator commissions reduce the net revenue a restaurant receives per order, which changes the food-cost-percentage calculation depending on whether you use gross or net revenue as the denominator. Using gross order value (before commission) produces a lower food-cost-% than using the net amount received. For a dish that costs $6 to produce and retails at $20, food cost on gross revenue is 30%. With a $5 commission, food cost on net revenue is 40%. For operators running significant delivery volume, this distinction drives real decisions. Reporting GP% on gross delivery revenue can make a 40% food-cost kitchen look like a 30% food-cost kitchen.

Which operational failures cause the largest gaps in restaurant gross profit margin reporting?
+

The three operational failures that cause the largest theoretical-vs-actual gaps in GP% reporting are: stale recipe costs (ingredient prices not updated from recent GRNs, producing a consistently inflated theoretical margin); unrecorded wastage (spoilage and prep waste not logged, leaving the theoretical stock figure higher than physical reality); and blended site averaging (group-level GP% masking underperforming locations that have absorbed supplier price increases not reflected in their recipe cost models). These three failures compound each other. Stale recipe costs inflate the theoretical figure, unrecorded waste inflates it further, and blending hides which sites are most affected.

Ready to transform your operations?

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