Skip to content

Prep — overview

Prep is what the kitchen does before service starts. The morning crew makes the bolognese base, mixes the pizza dough, simmers the stock, bakes the brioche, sets out the mise-en-place — all the cooking that has to be done in advance so the line can plate to order when the doors open. Every one of those is a batch of something the kitchen produces: a recipe runs, ingredients go in, a quantity of a prep comes out, and that prep goes onto a shelf to be consumed later.

This page is the entry point for the prep area. The owner who’s never run a service reads “Why this page exists” to understand what they’re looking at. The head chef who already runs a kitchen jumps to “How the kitchen uses it” for the workflow.

Why this page exists

Most kitchens already do prep. The question is how it’s tracked. The default is a whiteboard, a notebook, or “I told Marco at 6 AM.” The cost: forgotten items, double work, no visibility on what’s in flight, and an inventory figure that’s always a few hours behind reality.

Prep replaces all of that with a single live screen the head chef plans the day before — or that fills itself in on a schedule — and that the morning crew works through one item at a time. Each completed batch posts to stock the moment it’s logged, so the number on the inventory list is what’s actually in the walk-in. The owner sees the same number from the dashboard. The till deducts from the same number when a dish goes out.

The other reason this area exists is cost. A bolognese base the kitchen makes is not free: it’s two kilos of beef, a bottle of red, four onions, a tin of tomatoes, and ninety minutes of stove time. The cost of that pot of sauce is the sum of what went into it — and the dish that uses it inherits the share. Without a prep workflow, that cost is a guess. With one, it’s a number that updates itself every time an ingredient price moves.

The rule

A prep is a pause-and-store recipe. It runs once, produces a quantity of something, and the quantity goes onto a shelf — to be drawn down later by the dishes that consume it. Nothing the kitchen makes ahead of service exists outside this loop: if it’s batched, it’s prep; if it’s prep, it’s tracked here.

What lives in the prep area

Three things, stacked on the same screen.

The daily tasks queue. A checklist of what the kitchen should make today. The head chef builds it the evening before, or a saved template lands it on the date automatically at six in the morning. Each row is one of two kinds. A recipe task points at a specific batched recipe and a planned quantity — Bolognese base, 12 kg, Pizza dough, 50 balls. A freeform task is just a checkbox with a title — Check walk-in temperature, Clean the pasta machine, Order chicken from the butcher. Recipe tasks tie into the rest of the system; freeform tasks are pure reminders.

The live batches board. Every prep that’s been started but not yet logged to stock sits here as a card. The card tells you what recipe is running, how much was planned, when it was started, who started it, and what stage it’s in — In progress, Resting, Ready. As the morning runs, cards appear, slide through the stages, and clear off when their output is logged to stock. At a glance the whole kitchen knows what’s in flight.

Templates and schedules. A template is a saved version of a day’s checklist — Morning prep weekday, Saturday brunch prep, Pizza station opening. The head chef writes it once and applies it to any future date with one tap. A schedule attached to a template makes that application automatic — every weekday at six, drop the morning prep checklist on today’s date. The kitchen walks in and the list is already there.

These three things share one filter: the Kitchen tabs along the top let you narrow everything to one prep area at a time — Kitchen, Bakery, Bar — so the pizzaiolo only sees pizza prep, the baker only sees bread, the bartender only sees bar mise-en-place.

How to use it

Open Back of House → Work in Progress in the sidebar — the page lives at /admin/prep-wip. A typical kitchen day has the chef using it in three bursts.

The night before. The head chef opens the page on tomorrow’s date and adds the recipe tasks the kitchen will need: bolognese, pizza dough, stock, gnocchi, tiramisu. Quantities are pre-filled from the recipe’s default yield but easy to override. The chef can also pin a freeform task — Defrost two kilos of guanciale at 5 AM — and assign rows to specific cooks. If a saved template covers most of it, Templates → Apply brings in the list with one tap.

Six in the morning. The morning crew opens the page on today’s date. The list is already there — either applied the night before, or stamped by a schedule at exactly six. The pizzaiolo taps ▶ Start on Pizza dough, 50 balls. A card appears in the Live batches section below; the task on the checklist shows In progress. The pasta cook does the same with the bolognese. Within ten minutes the whole list is in flight, every card visible to anyone walking past the screen.

Mid-prep and after. A cook glances at the board and sees three cards: pizza dough is In progress with an ETA chip counting down, bolognese is Resting (passive simmering), stock is Ready waiting to be logged. When the cook finishes weighing the stock, they tap ✓ Log to stock on its card, type the actual yield, save. The inventory row updates immediately, the cost-frozen-onto-the-batch is the sum of what actually went in, and the next dish that consumes from this row will cost against that real number.

What happens behind the scenes

Adding a recipe task records the recipe, the planned quantity, the date, and the kitchen — nothing moves yet. Tapping ▶ Start creates a live batch card carrying recipe, quantity, start time, and cook — still nothing in inventory, only a status change.

Tapping ✓ Log to stock is the one action with consequences. In one transaction the system walks the recipe’s ingredient list, deducts each quantity from the relevant inventory row (oldest stock first), freezes the cost of those exact ingredient quantities into a single number — the cost of this batch, not an average — and increments the prep’s own inventory row by the actual yield the cook entered. The card disappears from the live board; the task on the checklist ticks itself.

When the chef saves a template, the system snapshots the day’s checklist as a reusable list. When a schedule on that template fires, the snapshot is stamped onto today’s (or tomorrow’s) date. The first time someone opens the page on that date, the list is already there.

The whole area is a thin layer on top of inventory and recipes. The recipe says what to make and how; the inventory row says how much is on the shelf; prep is the bridge. Every stock movement that comes out of prep is attached to a single batch with a single cost — so when the cost-of-goods-sold report at the end of the month surprises you, you can find the batch, find the ingredients, find the cost.

Worked example — Wednesday morning prep

It’s Wednesday, 7:15 AM at your venue. Marco walks in, makes coffee, opens Back of House → Work in Progress. The list for today is already there — the Morning prep weekday template fired at six on schedule. Three recipe tasks are queued:

  • Bolognese base — 12 kg, kitchen: Cucina
  • Pizza dough — 50 balls, kitchen: Bakery
  • Tiramisu — 1 tray (12 portions), kitchen: Cucina

Plus one freeform task: Check walk-in thermometer reading.

7:30. Marco taps ▶ Start on the bolognese, sets an ETA of four hours. A card appears in Live batches: Bolognese base · 12 kg · started 0m ago · Marco. Stage chip: In progress.

7:45. The pizzaiolo starts the pizza dough with a one-hour ETA for mix-and-knead.

8:30. The pastry cook starts the tiramisu. Three cards now on the board.

8:45. The pizzaiolo taps → Resting on the dough card; the chip flips to sky blue, the ETA disappears. He benches the dough, walks away.

11:30. The tiramisu is done. The pastry cook taps ✓ Log to stock. The dialog pre-fills 1 tray; she confirms, saves. The card disappears. The tiramisu inventory row now reads 12 portions in stock, the cost frozen onto the batch is €18.40 — €1.53 per portion, which the menu engine will use on every tiramisu sold today.

13:30. The bolognese is done. Marco weighs the pot: 11.2 kg, not the 12 kg the recipe targeted — evaporation took 800 g. He taps ✓ Log to stock, types 11.2, saves. The bolognese row goes from 0 to 11.2 kg. The cost frozen onto the batch is €58 — so the live cost-per-kilogram is €5.18/kg, slightly higher than the recipe-target €4.83/kg because the same ingredients spread across less yield. Every Tagliatelle al Ragù tonight will be costed against €5.18/kg, not the recipe-target number.

14:15. The pizzaiolo logs his dough at 50 balls, exactly as planned. The card clears.

By 15:00 the checklist is fully ticked, Live batches is empty, and three inventory rows are sitting at the numbers the cooks just put in. The food-cost percentage on every dish that uses one of those preps is fresh, ready for service. One screen, three batches, three inventory rows reconciled.