The outlet
52 covers, coastal-Maharashtrian and north-Indian mix, Petpooja POS, 38% aggregator share. Forecasting had been 'set and forget' — the owner looked at covers once a week. Prep teams learned from yesterday's waste, not from a structured delta review.
The problem: forecasts that don't learn
Week one of the pilot showed 88% dish-level accuracy — good on paper. But Friday dinners kept missing by 15-22% because a nearby corporate park ran irregular town halls. Saturday lunches under-forecasted when it didn't rain (walk-ins up). The model couldn't learn what nobody logged.
The nightly close-out ritual (4 minutes)
- Open the brief — lands at 11:05pm after POS sync. Shows actual vs yesterday's forecast for covers and top 15 dishes.
- Flag deltas >8% — any dish or cover count that missed by more than 8% gets a reason code.
- Tap one reason — weather, local event, staffing, promo, aggregator outage, unknown. One tap per flag, not an essay.
- Done — reason codes feed the next week's forecast adjustment. Manager doesn't edit numbers manually.
What they log vs what they ignore
| Log (reason code) | Ignore |
|---|---|
| Corporate event within 500m | Single-table walk-in variance |
| Heavy rain / no rain when forecast | One dish off by 6% |
| Aggregator app outage >30 min | Normal Tuesday dip |
| BOGO or Zomato deal running | Long-tail SKUs (<2% of revenue) |
| Short-staffed service (tickets delayed) | Ingredient substitution on one order |
Outcomes at day 21
| Metric | Week 1 | Week 3 | Delta |
|---|---|---|---|
| Next-week prep error (MAPE, top 15) | 14.2% | 9.4% | −34% |
| Friday dinner forecast error | 18.6% | 10.1% | −46% |
| Daily waste from over-prep | ₹2,100-2,800 | ₹1,100-1,500 | −47% |
| Close-out completion rate | 62% | 94% | +32 pts |
| Manager time per close-out | — | 4 min avg | — |
The compounding effect on prep
Prep teams don't read forecasts — they read quantities. When Friday's fish thali batch dropped from 42 to 36 units (adjusted after two weeks of 'corporate event' flags), waste on that SKU fell from ₹680/day to ₹120/day. The kitchen didn't change behaviour; the numbers they received got sharper.
Salary-cycle and weather signals were already in the model. What close-out added was hyperlocal event memory — the corporate park's town halls, a weekly farmers' market two streets away, a school PTA dinner that spikes dessert orders. None of these are in a public calendar; all of them showed up in reason codes within 10 days.
We always knew Fridays were weird. Now the system knows why — and next Friday's fish count is right.