Receiving — overview
The pantry doesn’t grow by magic. Every kilo of tomato, every wheel of cheese, every box of pasta on the shelf got there because somebody walked through the back door with it. Receiving is the room of the system where that walk-in gets recorded — what the supplier brought, what it cost today, what goes on the shelf, and what the dishes that depend on it are now worth.
This page is the entry point. The owner who’s never seen the system reads “Why this page exists” to understand what’s happening here; the head chef who already runs a kitchen jumps to “How the kitchen uses it” for the day-to-day workflow.
Why this page exists
Most kitchens record deliveries on a paper book or — if nothing else — in the chef’s head. The book gets lost. The head is busy. By the time anyone wants to know what the bolognese cost this week, half the deliveries are a guess. Receiving exists so the moment a delivery hits the floor, the cost of it lands on the right row in the pantry, the stock count goes up by the right amount, and every dish that depends on it picks up the fresh number on its next read.
The other reason it exists is paperwork. A delivery note or invoice is a piece of paper with six to thirty lines on it: product name, quantity, unit price, line total. Typing all of that into a phone twice a day is a job nobody wants. So the kitchen photographs the paper, the AI reads it, the operator confirms what matches and corrects what doesn’t, and the boring half of the work disappears. The chef stays on the line; the receiving log stays honest.
The third reason — quieter but just as important — is catching the supplier when prices drift. A 4% rise on Pecorino looks like nothing on one delivery; multiplied over a year on the dish that uses it, it’s the difference between a healthy margin and a loss. Every delivery that lands here stamps a fresh cost on the row, and the dashboard surfaces the drift the next morning. The kitchen sees the move before the accountant does.
The rule
Every kilo that enters the kitchen is one row, one cost, one timestamp. Stock goes up here, cost gets stamped here, the cascade fires from here. If a delivery doesn’t pass through Receiving, the pantry is lying to you — and so is every recipe and every dashboard built from it.
What you can do here
The hub at /admin/receiving opens on the Receiving Hub page — a list of every purchase order that’s currently out in the wild: sent to a supplier, expected to arrive, not yet fully received. The top of the page has five small stat tiles — Due today, Overdue, This week, No date, All open — so the first glance tells you how busy the back door is going to be.
Below that, a row of tabs slices the same list different ways: Due Today, Overdue, Upcoming (7d), All Open, Calendar (a month grid view if you want to see deliveries on a calendar), Pending Review (the queue of scanned deliveries the AI couldn’t auto-confirm, with a count badge), Forwarded (deliveries the system handed off to the accounting team), and Samples (the parallel ledger for product samples a supplier sends free or paid).
The two big buttons at the top right are the ones the kitchen actually uses every shift. Receive a delivery is the default — it’s a touch-friendly picker that lets you scroll the open orders, find the one that matches what just arrived, and confirm the delivery line by line. Scan-first is the alternative — you upload the photo first and let the AI guess which order it matches. Most venues only ever use the first; the second exists for kitchens with hundreds of open orders where browsing the list would be slower than a scan.
Both paths end up in the same place: the stock goes up on the right rows, the cost gets stamped on the right items, and the cascade that recomputes every recipe and every dish margin fires from there.
How the kitchen uses it
The standard delivery. A delivery arrives at the back door. The driver hands over a paper note or invoice. The sous chef opens Receiving on their phone, taps Receive a delivery, and the picker opens. The list is grouped by supplier — Mauro Foods, Caseifici Sant’Angelo, La Cantina Verde — so the supplier on the delivery note is easy to find. Tap the matching order, the receiving form opens with the lines pre-filled from what was ordered. From here there are two ways forward: photograph the delivery note inside the form so the AI fills the quantities and prices for you, or type them by hand. Adjust any line where the supplier shorted you or substituted a product, tap Confirm Receipt & Update Stock at the bottom — done. Stock goes up, the cost is stamped on every row, the page returns to the hub list.
The phone order with no paperwork. Sometimes the chef calls the supplier the night before and no order ever gets written up in the system. The driver shows up with the boxes anyway. In that case, in the same Receive a delivery flow, scroll to the bottom of the picker and tap No PO for this delivery. Photograph the note, tap Send — the photo goes to the accounting team’s invoicing app. No stock updates on the kitchen side; the accounting team handles the invoice and gets back to you if anything needs reconciling.
The fast lane for big kitchens. A venue with eighty open orders doesn’t want to scroll. Tap Scan-first instead — upload one or more photos, the AI reads them, the page tells you what happened. If the match is confident the order auto-confirms and stock updates immediately. If the AI isn’t sure, the scan lands in Pending Review waiting for your judgment. If it didn’t even recognise the supplier, it goes to Forwarded — the accounting team picks it up from there.
Pending Review at the end of the day. Once or twice a service the kitchen does the rounds on the Pending Review tab. Each row shows the supplier the AI thinks it saw, the invoice number, the count of lines, and when it was scanned. Tap Open — the photo on the left, the action panel on the right. Confirm against the suggested order, pick a different one, or reclassify as a one-off delivery from a known supplier. Confirm; the row leaves the queue.
Samples and free product. A new supplier drops off two bottles of olive oil for tasting. That’s not a delivery against an order — it’s a sample. The Samples tab is a parallel ledger; stock doesn’t move until the kitchen approves the product and converts it into a real pantry row.
What happens behind the scenes
Every confirmation, by whichever path, runs the same final step. The system walks every line on the delivery, finds the pantry row it points at, adds the quantity received to stock, and stamps the cost paid as the row’s new last purchase price. The pack chain on the row — how many tins per case, how many grams per tin — converts the supplier’s pack into the recipe unit so the cost-per-gram or cost-per-millilitre on the row is now the new number.
That last bit is where the leverage shows up. Every recipe that uses that ingredient — directly, or through a prep that uses it — gets recomputed in the cascade. The bolognese base recomputes; the lasagne that uses the bolognese recomputes; the menu item Lasagne al Forno picks up a fresh food-cost percentage on the dashboard. Nobody touches a recipe. One delivery confirmed, dozens of numbers reconciled across the system before the next coffee.
The system also writes a price-variance entry on every line where the received price differs from the ordered price by more than 1%. The cost dashboard reads those entries the next day, so the owner sees a small chart of suppliers whose prices are drifting — if a supplier raises olive oil 7% across three deliveries, the chart catches it before anyone has to. Photos of the delivery note are kept on the order, available later if you ever need to argue a charge with the supplier.
Worked example — Thursday morning vegetables
It’s a Thursday morning at your venue. Three crates of vegetables come in from the produce supplier. The driver hands over a paper delivery note with six lines on it. Marco, the sous chef, has fifteen minutes before service prep starts.
He opens Receiving on his phone and taps Scan-first because the vegetable order has more lines than he wants to type. He photographs the note, taps Scan. Twelve seconds later the page tells him the AI extracted six lines: 5 kg of tomatoes at €1.20/kg, 2 kg of basil at €18.00/kg, 10 kg of potatoes at €0.80/kg, 3 kg of onions at €1.10/kg, 1 kg of garlic at €6.50/kg, 8 kg of zucchini at €2.10/kg. Invoice total: €87.40.
The AI recognised the supplier instantly — thirty deliveries behind them — and confidently matched the order the head chef wrote up Tuesday evening. Three of the six lines match products already approved on the supplier’s price list, so the AI auto-confirms them: tomatoes, potatoes, and zucchini go straight into the pantry at their new costs. The other three — basil, onions, garlic — the supplier wrote a slightly different product description than the system’s canonical name, so they land in Pending Review for a one-tap confirmation each.
Marco opens Pending Review, sees a row for the basil. The AI says “Basilico Genovese fresco — match with Basil, fresh in your pantry?” — yes. Tap Confirm. Same for the onions (“Cipolle bianche → White onion?”) and the garlic (“Aglio rosa → Garlic, pink?”). Three taps, eleven seconds total.
By the time he closes the page the work is done. Stock is up across all six rows. The supplier’s price list now records €1.20/kg as the latest paid price for tomatoes — up from €1.00/kg three weeks ago. That single change cascades: the bolognese base recipe that uses 2 kg of tomatoes per batch recomputes from a €2.00 ingredient cost to a €2.40 ingredient cost; the lasagne that uses the bolognese recomputes; the Lasagne al Forno menu item on the dashboard picks up a fresh food-cost percentage. Marco sees the change on the morning briefing the next day and decides whether to raise the menu price or absorb it.
The whole sequence took under a minute. The same delivery in the chef’s notebook would have been twenty minutes of typing and a guess at the new ragù cost a week later.
Related features
- Scan a delivery — the photo-first flow in detail, with the four outcomes the AI can land on
- Receive a delivery — the touch-friendly picker for the default flow
- Pending Review queue — what to do with scans the AI couldn’t auto-confirm
- Inventory — overview — where the stock additions land, and the cascade that recomputes recipes and menu items from there
- Prices, costs, and margins — the rule about how one new cost stamped here ripples through three different prices downstream
- Where your information lives — the five rooms of the system; receiving is the door on the back wall of the pantry
- Product samples — the parallel ledger for free or paid samples, tracked apart from live stock until you convert them