TL;DR. Food cost control in Vietnam 2026: target ratios by format, recipe-costing math, daily variance loop, and the 8 leaks that quietly burn 4–9pp of margin.

Food cost control 2026: Recipe costing & variance for F&B

By LOOP Research

2026-05-19

Last updated: 2026-05-24

Food cost control 2026: Recipe costing & variance for F&B

Food cost control 2026: Recipe costing & variance for F&B

Food cost is the only line item where one focused month of work returns 4–9pp of margin permanently. This is the operator playbook for 2026.

TL;DR

  • Target food cost % by format: QSR 28–32, café 24–30, full-service 30–36, bar 18–24, bakery 26–32.
  • Recipe-costing without yield % and shrinkage is wrong by 3–7pp.
  • Daily variance loop (expected vs actual) is the single highest-ROI ops habit.
  • 8 leaks account for ~80% of overage: portioning drift, waste, theft, supplier creep, modifier mispricing, free pours, prep over-production, dead SKUs.
  • A 60-day disciplined cycle pulls 4–9pp in nearly every brand we audit.

1. Targets that survive 2026 input costs

Format Target food cost % Trigger to act
QSR / fast-casual 28–32 >34
Café / specialty 24–30 >32
Full-service 30–36 >38
Bar (drinks-led) 18–24 >26
Bakery 26–32 >34

2026 inputs: dairy +6–9%, robusta volatile +/-20%, imported spirits +4–7%, fresh produce flat. Re-cost quarterly.

2. Recipe costing the right way

Wrong: cost per item = sum(ingredient cost × spec qty). Right: cost per item = sum(ingredient cost × spec qty ÷ yield %) + packaging + shrinkage allowance.

Example — phin sữa đá:

  • Coffee 18g @ 380K/kg = 6,840 VND ÷ 0.92 yield = 7,435
  • Condensed milk 25ml @ 75K/L = 1,875 ÷ 0.97 yield = 1,933
  • Ice 120g @ negligible = 120
  • Cup + lid + straw = 1,450
  • Shrinkage 2% = 224
  • Total COGS = 11,162 VND

At a 38K sell price, food cost = 29.4%. Without yield/shrinkage, the same recipe reads 26.0% — 3.4pp invisible leak per cup.

3. The daily variance loop

Every morning, look at one report:

  • Expected COGS (sales × theoretical food cost from recipes)
  • Actual COGS (stock movement: opening + purchases − closing)
  • Variance = actual − expected; flag if |variance| > 2pp

If variance >2pp, the cause is one of the 8 leaks (next section). Investigate within 24h; the trail is fresh.

This loop is impossible without recipe-deduct on the POS. With it, the loop takes 8 minutes/day.

4. The 8 leaks (~80% of all overage)

  1. Portioning drift — eyeball pours. Fix: scoop/jigger discipline + weekly spot weigh-in.
  2. Prep waste — over-prep that doesn't sell, then bins. Fix: 14-day rolling forecast at the daypart.
  3. Theft / "family meals" — staff comp creep. Fix: comp policy + auth code + cap.
  4. Supplier price creep — invoices ladder up 2% every 3 months. Fix: quarterly re-cost + multi-supplier bids on top-20 SKUs.
  5. Modifier mispricing — add-ons priced 2024, ingredient cost is 2026. Fix: re-cost modifiers separately.
  6. Free pours / over-toppings — bar / bingsu / milk tea. Fix: spec card + visual gauge cup + audit.
  7. Prep over-production — banh mi pâté made for 200, used 130. Fix: par-level + push-pull from POS.
  8. Dead SKUs — items <0.4% mix carrying inventory and waste. Fix: 86 quarterly.

5. The 60-day program

Week 1–2: Map. Recipe-cost the top 80% of mix. Identify the 8 leaks present. Week 3–4: Tighten. Spec cards posted on the line; portion tools issued; modifier pricing refreshed; comp policy live. Week 5–6: Measure. Daily variance loop. Expected vs actual every morning. Week 7–8: Negotiate. Top-20 SKU supplier bids; switch on what wins; consolidate to 3 suppliers max.

Result across 40+ audits: 4.4pp average food cost reduction. On a 400M VND/mo café, that's 17.6M VND/mo preserved.

6. Yield % cheat sheet

  • Citrus juice (lime, lemon): 38–44%
  • Pineapple peeled: 52%
  • Avocado flesh: 62–68%
  • Beef trim (chuck): 78–84%
  • Chicken (whole → portions): 65–72%
  • Coffee bean (brewed yield): 88–94% depending on grind
  • Boba (dry → cooked): 250–290% expansion (cost per cooked g matters)

Using package weight instead of yield is the #1 recipe-costing error.

7. Tooling

You need three things:

  • POS with recipe-deduct (LOOP, iPOS, Misa CukCuk; see POS guide)
  • A weekly stock-count workflow — physical count of top-50 SKUs
  • A variance dashboard — expected vs actual, daily

Spreadsheets work; software is faster and survives turnover.

8. Common operator mistakes

  • Re-costing once a year, not quarterly
  • Costing only "main" items, ignoring modifiers
  • Treating yield as 100% for produce
  • Tracking food cost monthly, not daily
  • Letting suppliers raise without re-bid

FAQ

What's a healthy food cost % in Vietnam 2026? Depends on format; see §1. Outside ±2pp of those bands, investigate.

How do I cost recipes properly? Include yield % and shrinkage. See §2. Without them, costs read 3–7pp too low.

What's the fastest pp to recover? Portioning + modifier re-pricing — usually 1.5–2.5pp in 2 weeks.

Do I need software? Not strictly. But the daily loop is impossible to sustain manually for >12 SKUs.

How often should I re-cost? Quarterly minimum; monthly on commodity items (coffee, dairy).

Is "shrinkage 2%" universal? No — bar is 4–6%, produce-heavy kitchens 3–5%, dry-store-heavy 1–2%.

Related

  • ai pos
  • multi-outlet
  • LOOP vs kiotviet
  • LOOP vs ipos

Why this matters in 2026

Multi-outlet F&B operators across Vietnam and Southeast Asia are running into the same wall in 2026: aggregator commissions compress margins, food-cost drift compounds across outlets, labour cost climbs faster than ticket size, and a traditional POS only surfaces the damage at month-end when the only response left is firefighting. Operators who win in 2026 close the loop in hours, not weeks — variance flags before the next shift, demand forecasts before purchasing, daypart promos drafted automatically for slow slots, and a single morning brief instead of five dashboards. That is the bar this guide is written against, and the reason LOOP exists. The cost of a missed signal is no longer a single bad week — it is the difference between a chain that compounds outlet-level profitability and a chain that opens new outlets to mask the leaks at the old ones.

The SEA F&B operator landscape in 2026 also looks materially different from 2023. Aggregator commissions in Vietnam have settled in the 22–28% band; Thailand and the Philippines run higher, Singapore lower. Labour minimums have moved twice in eighteen months in Vietnam. E-invoice (TT78) is now non-negotiable and enforced. Loyalty has shifted from punch cards to messaging-native (Zalo OA, LINE, WhatsApp, Messenger) — and the chains that ride that shift are seeing repeat visits double inside ninety days. None of that lands as an upgrade on a legacy POS; it lands as a different operating model.

SEA benchmarks (2026)

  • Median food cost across SEA QSR chains: 30–34% in 2026.
  • Median labour cost across SEA F&B chains: 22–28% in 2026.
  • Repeat-visit rate for loyalty-enabled cafés: 38–46% in 2026.
  • Average ticket time for SEA QSR in peak: 6.8–9.2 minutes in 2026.
  • Aggregator commission band in VN: 22–28% per order in 2026.
  • AI demand forecast MAPE on LOOP cohorts: 14–22% per outlet in 2026.
  • VAT e-invoice (TT78) compliance among LOOP outlets: 100% by 2026.
  • Average POS uptime LOOP cohorts: 99.92% rolling-90-day in 2026.

Operator playbook — first 30 days on LOOP

Week 1 — Foundations. Import menu, recipes, modifiers, customers, loyalty balances and 24 months of sales via CSV. Connect aggregators (GrabFood, ShopeeFood, Be, foodpanda, Gojek). Configure e-invoice provider (MISA / Viettel / VNPT). Confirm payment rails (VietQR for VN; PromptPay / QRIS / DuitNow / PayNow / QR Ph for the rest of SEA). Train two staff per outlet on voice and text commands; the rest pick it up by observation in days 4–7.

Week 2 — Variance and forecast online. Switch demand forecasting on at daypart level. Set variance alert thresholds (default: food-cost ±3pp, labour ±2pp, void rate ±0.5pp). Let the system run a full week without intervention so the baseline calibrates. Review the morning brief each day; ignore the urge to override — by day 10 the forecast typically holds within MAPE 18% and stays there.

Week 3 — Promo and loyalty loop. Turn on daypart promo drafting for the two slowest hours per outlet. Connect Zalo OA / LINE / WhatsApp for delivery; start with a single segment (e.g. lapsed-30-day) and a single offer. Measure incremental visits, not coupon redemptions.

Week 4 — Compound. Roll the same flow to a second outlet, then a third. The operating model is the same at outlet 2 as outlet 20 — that is the point of LOOP.

KPI table — what to watch

KPI Target band 2026 LOOP signal
Food cost % 30–34% (QSR), 27–32% (café) Variance alert within 6 hours of shift close
Labour cost % 22–28% Daypart staffing recommendation in morning brief
Repeat-visit rate (90d) 38–46% (café), 28–36% (QSR) Loyalty segment drafted weekly
Aggregator share of revenue 18–32% One queue across 5 aggregators; per-aggregator margin in dashboard
AI forecast MAPE per outlet 14–22% Recalibrates weekly per outlet
Ticket time (peak) 6.8–9.2 min KDS routing recommendation when over band
Void rate <0.8% Pattern-detection on staff/outlet/daypart

Common pitfalls SEA operators hit in 2026

Treating aggregator orders as a separate business. Operators who keep five aggregator tablets running in parallel lose roughly 4–7 minutes per peak hour to context-switching alone, and miss the per-aggregator margin picture entirely. Unifying the queue (one tablet, one KDS, one accounting line per aggregator) is usually the single highest-leverage move in the first 60 days.

Letting variance live in spreadsheets. A weekly food-cost review is a 7-day reaction time on a 24-hour problem. Variance has to live in the operating layer — flagged, attributed and routed to the responsible manager within hours, not aggregated to a Friday email.

Loyalty as a punch card. A 2026 loyalty programme is a messaging channel with attribution. If the only metric is "points issued", the programme is a cost centre. If the metric is "incremental repeat visits per segment per month", it compounds.

Forecasting at the wrong resolution. Chain-level forecasts are wallpaper. Daypart-and-outlet is the smallest unit that pays back — coarser is too vague to act on, finer is noise.

How LOOP solves this

LOOP is an AI-native restaurant operating system built for SEA F&B chains. Operators run their venues by voice or text command instead of clicking through dashboards. AI forecasts demand per outlet at daypart resolution (MAPE 14–22% on LOOP cohorts), flags food-cost and labour variance within hours of the shift closing, drafts promos for slow daypart slots and pushes them to Zalo OA / LINE / WhatsApp, and delivers a three-item morning brief at 06:30 local time so the operator's first action of the day is informed. LOOP unifies GrabFood, ShopeeFood, Be, foodpanda and Gojek into one queue, supports VietQR / PromptPay / QRIS / DuitNow / PayNow / QR Ph, and ships VAT e-invoice (TT78) via MISA, Viettel and VNPT. Pairs with Peko loyalty (50% lifetime discount on LOOP for Peko customers).

Under the hood, LOOP is offline-first with a 90-second resync window so orders, payments and KDS keep firing through ISP drops; recipe-level COGS is computed at order time so every plate's contribution margin is visible before the shift ends; and the morning brief is generated from the previous day's variance, the current day's forecast and the next 14 days of bookings, weather and local events — not a static template. The result is fewer dashboards, faster decisions, and a noticeably calmer week for the operator.

Related guides

  • LOOP blog — AI POS guides for SEA
  • LOOP Smart POS
  • Peko Rewards loyalty
  • VeLoop delivery aggregator unification
  • LOOP pricing
  • Compare LOOP vs other POS