Home / Help Center / pos-app-restaurant / rest-kitchen / Production Schedule
📋 rest-kitchen

Production Schedule

Production Schedule plans and tracks batch production runs — schedule a recipe (or a free-text item) with a quantity and date, move it through Planned → In Progress → Done, and on completion automatically deduct the recipe's ingredients from stock based on actual quantity produced. It also surfaces a sales-based demand forecast and a same-name suggested purchase order for any shortfall.

📍 Menu path: Kitchen Operations → Production Schedule
👤 Who uses it: All roles with the Billing feature enabled

Overview

This is the same Production Schedule feature used by the bakery variant (FnbProductionPage) — restaurant does not have its own separate production table.

A run can be linked to a Recipe (pulling its ingredient list, scaled to the quantity being produced) or entered as free text with no recipe link, in which case no stock is auto-deducted.

Moving a run from In Progress to Done opens a completion dialog where you confirm the Actual Qty Produced (vs planned), see the exact quantities that will be deducted from stock per ingredient, and set/confirm an Expiry Date (auto-suggested from the recipe's Shelf Life).

A Demand Forecast panel suggests quantities to produce for upcoming days based on recent sales history per recipe, with a one-click "Schedule" button to pre-fill a new run.

A "Today's Bake List" panel aggregates quantities needed today from other sources (e.g. cake orders, standing orders) and lets you schedule a run directly from it, or generate a suggested purchase order for any ingredient shortfall across all planned runs for the day.

Once a run is Done, you can print a product label showing item name, batch/production date, best-before date (from the expiry date set at completion), quantity and who prepared it; runs can only be deleted once Done or Cancelled.

Before You Start

Step-by-Step Guide

1 Schedule a production run

  1. Open Kitchen Operations → Production Schedule and click the schedule button.
  2. Pick a Recipe from the dropdown (or leave it as "No recipe" and type an Item / Product Name), set the Date, Start Time, Quantity to Produce and Assigned To.
  3. If a recipe is linked, review the scaled ingredient preview showing exactly how much of each ingredient this batch needs — unlinked ingredients are flagged with a ⚠ since their stock will not be auto-deducted.
  4. Click "Schedule" to add the run as Planned.

2 Move a run through its lifecycle

  1. Click "Start" on a Planned run to move it to In Progress.
  2. Click "Mark Done" on an In Progress run — if it is linked to a recipe, a Confirm Completion dialog opens.
  3. In the dialog, adjust Actual Qty Produced if it differs from planned (a yield variance is shown), set/confirm the Expiry Date, add Completion Notes if needed, and click "Confirm & Deduct" — this deducts every linked ingredient's quantity (scaled to the actual quantity produced) from stock.
  4. Any ingredient whose stock drops critically low after the deduction triggers a toast warning.

3 Use demand forecast and the bake list

  1. Open the Demand Forecast panel, choose a lookback window (3/7/14/30 days) and click "Generate" to see suggested quantities per recipe based on recent sales.
  2. Click "Schedule" next to a forecast row to pre-fill a new run with that recipe and suggested quantity.
  3. Check "Today's Bake List" (only shown if items are needed today) to see aggregated demand from other order sources, and "Suggest PO" to auto-generate a purchase order covering any ingredient shortfall across today's planned runs.

4 Print a label and manage finished runs

  1. On a Done run, click the tag icon to open and print a product label with batch date, best-before date, quantity and prepared-by.
  2. Cancel a Planned or In Progress run if it will not go ahead, or delete a Done/Cancelled run to remove it from the list entirely.

Every Field & Button, Explained

Field / ButtonWhat it does
Recipe / Item NameLink a Recipe to get ingredient scaling, stock deduction and expiry auto-fill; or leave unlinked and type a free-text item name (no stock effects).
Scheduled Date / TimeWhen the run is planned to happen; used to filter the list and to compute the Demand Forecast's "next day" suggestion.
Quantity to Produce / Actual QtyPlanned quantity set when scheduling; Actual Qty is entered at completion and drives both the ingredient deduction scaling and the yield variance shown.
StatusPLANNED → IN_PROGRESS → DONE, or CANCELLED at any point before Done; only Done/Cancelled runs can be deleted.
Expiry Date (at completion)Auto-suggested as today + the recipe's Shelf Life (days) if set; otherwise left blank unless manually entered — printed on the product label.
Assigned To / NotesFree text for the staff member responsible and any special instructions.

Tips & Best Practices

Troubleshooting & FAQ

Completing a run did not reduce my ingredient stock.
Stock is only deducted for ingredients that are linked to a Product on the recipe (shown with a ⚠ warning if unlinked in both the schedule and completion previews) — free-text runs with no recipe link never deduct stock at all.
The Expiry Date field is blank when completing a run.
It only auto-fills if the linked recipe has a Shelf Life (days) greater than 0 set — otherwise you must enter it manually, or leave it blank if not applicable.
"Today's Bake List" is not showing.
It only appears when there is at least one item needed today from another order source (e.g. cake orders, standing orders) — an empty list hides the whole panel.