prep_started_at timestamp on each item, starts the live prep timer, and pushes the status change to every device on the floor.
Overview
Preparing an order is a two-scale action:- Per item — tap the item’s status button to move just that line into
preparing. Use this when your station only cooks part of the ticket (e.g. Grill takes the steak, Hot Kitchen takes the side). - Per ticket (bulk) — tap Prepare All on the ticket card header to move every item on this station into
preparingat once.
- Writes
kds_status = preparingandprep_started_at = now()totable_order_items. - Broadcasts the change over LAN so the Waiter App and POS Bill Summary reflect it instantly.
- If offline, queues the status change and shows it in the header X QUEUED badge.
Claiming a ticket

Preparing an order — timer starts, ticket flips amber-ready
1
Read the ticket
Quantity, item name, modifiers (
+), and notes (!) — top to bottom. Notes are bold for a reason: allergies, cook temps, and cut requests live there.2
Tap Prepare
Either the per-item button or Prepare All on the ticket header. The item turns amber and the timer starts counting up from
00:00.3
Cook
The ticket stays on the board until you mark items Ready. See Completing Orders.
The prep timer
Every item carries a prep-time target (prep_time_target_minutes) configured per menu item. Once preparing is set, the timer starts and the colour shifts:
Prep-time targets live in Menu Items. If a target is missing, the timer still runs but does not colour-shift. Set realistic targets — a Wagyu steak is not a 4-minute cook.
Station queue alerts
Each kitchen station can define an alert_after_minutes threshold (configured in the Kitchen Stations settings panel). If any item at that station sits in the queue without anyone tapping Prepare for longer than the threshold:- The station chip on the filter bar flashes amber.
- The item card pulses a warning border.
- A subtle audible tick fires (distinct from the new-ticket chime).
Per-item vs bulk prepare
Use per-item when:- The ticket contains items from mixed stations and only some are yours.
- The guest asked for staggered service (starters now, mains later).
- One item on the ticket is a “when ready” line and the rest must fire first.
- Every item is at your station and will fire together.
- A ticket has been sitting green too long and needs a batch claim to get the timer honest.
Editing while preparing
If the waiter voids or corrects an item while you’re mid-prep:- A realtime patch arrives on the KDS.
- The line flips to
cancelled(full void) or updates its quantity (partial correction). - A short highlight animates the change so you notice.
- Stop cooking the affected item immediately. If you’ve already plated it, discard it — the fiscal record no longer includes it.
Offline behaviour
When the KDS is offline:- Prepare taps still work — they update the local UI and queue the status change.
- The X QUEUED header badge shows the number of pending status changes.
- Timers continue running on-screen (they read from
prep_started_at, which was stamped locally). - LAN broadcasts still fire — other devices on the same Wi-Fi see the update.
- On reconnect, the queue drains automatically. Any conflicts (e.g. the item was voided remotely while offline) reconcile server-side.

