The Problem
The diner had no food cost tracking at all. Not bad tracking. None. Invoices came in, product got used, and at the end of the month the owner had a rough sense of whether food costs felt high or low based on how the bank account looked. That is how most independent diners actually operate.
The classic food cost formula requires a full inventory count at the beginning and end of every period: beginning inventory plus purchases minus ending inventory, divided by sales. Most operators know the formula. Most operators also know that a full inventory count in a working kitchen is a two-hour exercise that nobody wants to do consistently. So it doesn't get done, or it gets done badly, and the number is wrong anyway.
The goal was not a perfect system. The goal was something better than nothing, that a manager who was also the owner could actually maintain without hating it, at a cost that made sense for a single-unit independent.
The Formula
The solution sidesteps inventory entirely. Sacrilege you say, but it does it by using a weighted rolling average of purchases against sales. Every week, invoice totals get logged. The calculation looks back six to eight weeks, weights the most recent week more heavily than older weeks, and produces a food cost percentage that accounts for recent purchasing trends without requiring a physical count.
Monthly, this number reconciles within 1-2% of what the classic beginning-plus-purchases-minus-ending formula would produce. That gap is operationally irrelevant. What matters is that the number exists, it updates automatically, and it is directionally accurate enough to act on.
The AI does not just produce a percentage. It surfaces which categories are driving cost. Protein spend trending up over the last three weeks. Dairy costs spiking on a specific delivery. The weighted average tells you where you are. The trend data tells you why and where to look.
The Stack
Tools Used
How It Works
The Result
Food cost dropped 5% in under two months. Not because the system recommended a specific action. Because the manager could see the number for the first time and respond to it.
The first thing visibility does is kill the assumption that everything is fine. When you can see that protein spend is running three points higher than it was six weeks ago, you go look at the walk-in. You find the waste. You find the over-portioning. You find the delivery that got shorted. None of those problems were new. They just had not been visible.
The AI also surfaced a pattern the owner had not noticed: a specific vendor's prices had crept up on four consecutive deliveries, each increase small enough to pass without comment but significant in aggregate. That finding alone justified the build time several times over.
The system also pointed naturally toward key item inventory. Once you can see which categories are driving cost, you do not need to count everything. You count the things that matter. Full weekly inventory counts became targeted spot checks on the two or three items the AI flagged as high-variance. That is a twenty-minute task, not a two-hour one.
What This Actually Is
This is not a sophisticated AI deployment. It is a single-purpose automation that does one thing well: it removes the friction between an invoice arriving at the back door and that invoice becoming a number a manager can act on.
The AI component is doing real work: reading handwritten and printed invoices accurately, categorizing line items, identifying trends across weeks of data. But the system works because the workflow was designed around how managers actually behave, not how they theoretically should behave. They text. They check email. They do not log into dashboards.
It was built in a day and a half. It costs nothing to run beyond the existing POS subscription. It shows what AI is when it actually does something, and it is still running.
That is the standard every AI implementation in a restaurant should be held to: does it fit the actual workflow, does it produce a number someone can act on, and is the maintenance burden low enough that it survives contact with real operations?
If it does not pass all three, it is not a solution. It is a demo.