Recipe costing
Per-recipe ingredient breakdown with a live cost roll-up, and cost-per-serving derived automatically from yield.
A multi-outlet food manufacturing and catering ERP. Live recipe costing, batch planning, and procurement tied directly to stock - replacing outlet-specific costing sheets with one shared runtime.

Saffron Bay ran several kitchens off disconnected spreadsheets. We built a system where every recipe costs itself from live ingredient prices, batches plan against par levels, and procurement, inventory and wastage all read from the same numbers across every outlet.
Per-recipe ingredient breakdown with a live cost roll-up, and cost-per-serving derived automatically from yield.
A weekly production calendar per outlet - planned versus produced quantity, with variance flagged as it happens.
Auto-suggested reorder lists from par levels and upcoming batches, with purchase orders and supplier lead-time tracking.
Current stock per ingredient, per outlet, with low-stock and near-expiry badges reserved for genuine inventory state.
Logged wastage by ingredient, outlet and reason, rolled up to a weekly wastage-cost figure the kitchens actually see.
FSSAI licence tracking per outlet, with expiry reminders surfaced before they lapse rather than after.
function recipeCost(lines, unitCost) { return lines.reduce((total, line) => total + line.qty * unitCost[line.ingredient_id], 0)}// costPerServing = recipeCost(...) / recipe.yield_qtyfunction shouldAlert(wastageCost, procurementCost) { const ratio = wastageCost / procurementCost return ratio > 0.08 // alert past 8% of procurement spend}Saffron Bay cut ingredient wastage cost by roughly a third within the first two months, with all four kitchens working off the same live stock and recipe-cost numbers instead of outlet-specific spreadsheets.