Operations
Food Cost by Branch
The same burger rarely costs the same to produce at two branches of the same brand. Differences in supplier prices, recipe yields, channel mix, and waste compound into materially different margins. Calculating food cost by branch turns those differences into something you can manage.
Why branch-level food cost differs even when the menu is identical
Headline food cost percentages calculated at the brand level hide the variance that actually drives profit. Two branches preparing the same recipe from the same approved supplier list can land several percentage points apart on cost of goods sold. The drivers are structural, not random: ingredients are sourced through different invoices, kitchens operate at different yield rates, sales mix between dine-in, delivery, and kiosk changes the effective margin of each item, and waste patterns track local volume and shift discipline. Treating food cost as one number per brand masks the branches that subsidise the others.
The components of true food cost per branch
A defensible branch-level food cost calculation rolls up from the ingredient, not down from the P&L. Each finished item is decomposed into its recipe, each recipe priced against the branch's actual purchase cost for the period, and the result reconciled against counted inventory and sold quantities.
- Ingredient-level cost feed: latest invoice or weighted-average cost per SKU, captured per branch.
- Recipe yields: how much usable output a raw input produces after trim, cooking loss, and portioning at that kitchen.
- Theoretical vs actual usage: what the recipes say should have been consumed against what counts and transfers show actually was.
- Channel mix: the share of revenue from dine-in, delivery aggregators, own delivery, drive-thru, and kiosk.
- Waste and comps: tracked at the line level so they are attributable to a station, shift, or menu item.
- Branch overheads that touch food: rent-allocated prep space, energy used in production, and staff prep hours where you cost them in.
Supplier price variance between branches
Two branches in different districts often pay different prices for the same ingredient. Volume tiers, distance from the supplier's depot, contract terms negotiated at opening, and informal substitutions made by branch managers all create drift. Without a per-branch price book, the central recipe cost is fiction. The minimum hygiene is to capture every purchase invoice line against a normalised SKU, store it with the branch identifier, and recalculate moving-average cost on a defined cadence. Variance reports then surface which branches are paying above or below the network median and why.
Recipe yields are a branch metric, not a brand constant
A recipe card states that one kilogram of trimmed beef yields ten 100-gram patties. In practice, yield depends on the cut delivered that week, the prep cook, and the equipment. Branches with newer staff or older slicers will report lower yields. If the recipe-aware system assumes brand-standard yields, theoretical food cost will systematically understate reality at the weaker branches. The fix is to run periodic yield tests per branch on the SKUs that dominate cost (typically the top ten ingredients by spend) and feed the measured yield back into recipe costing.
Channel mix and channel-aware costing
An item sold through a third-party delivery aggregator does not carry the same margin as the same item sold dine-in. Packaging is an added cost, commission reduces revenue, and the menu price may be marked up to partially offset it. A branch with 60 percent delivery share has a structurally different cost profile from one at 20 percent, even if their recipe costs are identical. Branch food cost analysis should split COGS and contribution by channel, then weight by the branch's actual mix.
Waste, transfers, and the reconciliation gap
Theoretical food cost is what the recipes and sales mix predict you should have consumed. Actual food cost is what inventory counts and purchases say you did consume. The gap between them is the sum of waste, theft, transfers between branches, portioning drift, and unrecorded comps. A branch with a 3 percent gap is normal for most full-service categories; an 8 percent gap is a problem regardless of how profitable the branch looks on paper. The reconciliation only works if waste, transfers, and comps are captured at the point they happen, not reconstructed at month-end.
Rolling it up: from ingredient to branch P&L
A workable monthly close for branch food cost follows a fixed sequence. Each step is owned by a system or a person; skipping one means the next is unreliable.
1.Lock the purchase ledger
All supplier invoices for the period are entered against branch and normalised SKU. Credits and returns are matched. Moving-average or FIFO cost is recalculated.
2.Count inventory
Physical count of raw and semi-prepared inventory at each branch, valued at the locked cost. Spot-counts during the period reduce end-of-period surprises.
3.Pull sales by item and channel
From the POS, by branch, by daypart, by channel. Comps and voids itemised separately.
4.Compute theoretical usage
Sales quantities multiplied by recipe quantities multiplied by branch-specific yields gives expected consumption per SKU.
5.Reconcile and attribute the gap
Actual usage (opening + purchases - closing) minus theoretical usage is the variance. Attribute it to waste logs, transfers, and unexplained shrinkage.
6.Roll into the branch P&L
COGS by branch, food cost percentage by branch and by channel, contribution margin by item and branch. Compare to plan and to network median.
A worked example using POSMena
In POSMena, the components above sit in connected modules rather than separate spreadsheets. The POS records sales by branch, channel, and item. The KDS captures preparation events and voids. Recipe-aware inventory holds the bill of materials per menu item, with branch-level overrides for yields and substitutions where they exist. Branch costing applies the branch's own moving-average cost from the purchase ledger to those recipes, so the theoretical food cost reported for branch A reflects branch A's invoices, not a brand-wide blend. Channel mix is read directly from the POS, so contribution can be split between dine-in, own delivery, aggregator, and kiosk without manual reclassification. For markets requiring ZATCA Phase 2 e-invoicing, supplier invoices captured for compliance also feed the cost ledger, removing a duplicate entry step. Where a separate ERP holds the general ledger, the integration pushes COGS journals by branch and cost centre rather than as a single brand-level figure. None of this removes the need for physical counts and yield tests; it removes the manual reconciliation between them.
Operating habits that make the numbers usable
Calculation is the easy part. The numbers only change behaviour if they reach the branch manager weekly, attribute variance to something specific, and tie to a decision.
- Weekly variance review per branch, with the top three SKUs driving the gap named explicitly.
- Yield tests on the top-ten ingredients by spend, repeated quarterly or whenever a supplier changes.
- Waste logged at the station in real time, not reconstructed.
- Recipe changes versioned with an effective date so historical cost analysis stays comparable.
- Channel-level menu engineering: items that lose money on delivery flagged for repricing, repackaging, or removal from that channel.
أسئلة شائعة
What is a reasonable food cost percentage to target per branch?
It depends on the category. Quick-service and fast-casual concepts typically run 28 to 35 percent food cost, full-service restaurants 30 to 35 percent, and pizza or beverage-led concepts often lower. The more useful benchmark is the variance between branches in the same brand: a spread wider than two to three percentage points usually points to supplier price drift, yield drop, or unattributed waste rather than genuine local conditions.
Why does theoretical food cost differ from actual food cost?
Theoretical food cost is what recipes and sales say should have been consumed. Actual food cost is what inventory counts say was consumed. The gap is waste, portioning drift, comps, transfers between branches, and shrinkage. A small gap is normal; a persistent or growing gap indicates a process problem at a specific branch.
How often should branches be costed?
Sales-driven theoretical food cost can be calculated daily from POS data. Actual food cost requires a physical inventory count, which is typically done weekly for high-volume branches and at minimum monthly for the close. Yield tests are run less often, usually quarterly or when a supplier or recipe changes.
Should delivery and dine-in be costed separately?
Yes. Delivery channels carry added packaging costs and aggregator commissions that change the contribution of every item sold through them. Without channel-aware costing, a branch with high delivery share can look profitable on theoretical food cost and lose money on actual contribution.
What is the minimum system setup needed to cost branches accurately?
A POS that records sales by branch, channel, and item; recipe-aware inventory that decomposes every item into ingredients; a purchase ledger that captures invoices per branch with normalised SKUs; and a way to log waste, transfers, and comps at the point they occur. Without all four, branch food cost numbers will be approximations rather than something you can act on.
