Stock control
Understanding on-hand vs available stock
Why Stock shows two different numbers for the same ingredient, where each one appears, and how upcoming bookings, order edits and cancellations change them.
Understanding on-hand vs available stock
If you've looked at an ingredient in Stock and wondered "why does it say I have 400 when the shelf has 500?" — this is the article that explains it. Stock deliberately shows you two different numbers, and once you know what each one means, the gap stops being confusing and starts being useful.
The two numbers
On hand is what's physically on your shelf right now. This is the number a stocktake counts against, and it only changes when stock is actually delivered, used, wasted, or adjusted after a count.
Available is what's left to sell once you subtract everything that's already been promised to an upcoming order or booking in the near term:
available = on hand − stock already committed to orders in the near term
A worked example
Say you have 500 units of a syrup on hand. A customer has a catering order booked for tomorrow that will use 100 units. Nothing has been made yet — the syrup is still sitting on your shelf — but that 100 units is already spoken for.
- On hand still reads 500. Nothing has physically left your premises, so a stocktake today would (correctly) count 500.
- Available reads 400. That's what's left for everyone else to order between now and tomorrow, once the catering order's needs are set aside.
Once tomorrow's order is actually made and served, Stock moves that 100 units from "committed" to "consumed" — at that point on hand drops to 400 too, because the syrup has genuinely left the shelf. Until then, the two numbers are supposed to differ.
Where you'll see both numbers
- Ingredients lists On Hand and Available as separate columns. Where an ingredient has demand against it, the amount committed is printed underneath the available figure, so a gap between the two columns always comes with its reason. The warning triangle and the amber highlight are worked out from Available, not from the shelf count — an ingredient every gram of which is promised to Saturday's function is flagged now, not on Saturday morning. Available at zero or below turns red.
- Dashboard → Ingredients At/Below Par shows the same two columns for everything needing attention, and its status — Out of Stock, Below Par or Low — comes from Available too. ("Low" means you're within 20% of par rather than under it yet.)
- Dashboard → Ingredients Oversold counts the ingredients whose committed demand has already outrun the stock you hold, within the near-term window described below. Unlike the other dashboard figures, it always reflects today rather than the date range you've selected.
- Upcoming Demand, in the main navigation, is the full forward picture — see below.
The Upcoming Demand screen
Upcoming Demand answers "what's already sold that I still have to make?" Choose a window — 7, 14, 30 or 90 days — and Stock lists every ingredient with demand in it.
Across the top you get the number of ingredients committed, how many separate service dates fall in the window, and how many ingredients are running short — with the date of the first shortfall.
Each row shows the ingredient's On hand, Committed, Available, the total needed across the window, and a Runs short date if your current shelf count won't cover everything booked. Expand a row and you get the demand date by date: how much is needed on each service date, the running total, and how much would be left (or how far short you'd be) on that date. Dates that sit past the ingredient's horizon are marked beyond horizon — they're real demand, they're just not being held back from today's Available yet.
That last column is the one to plan from: it turns "I'll be short of cream" into "I'll be short of cream on the 14th", which is a date you can order against.
Why depletion waits until the order is actually fulfilled
Stock only deducts an ingredient from on-hand stock when the order is actually made — either because it's sent to the kitchen, a booking is checked in, or its scheduled time arrives. An order placed today for delivery in three weeks doesn't touch today's shelf count; it shows up as committed demand instead, so your low-stock alerts and reorder suggestions already account for it without prematurely subtracting it from what you can sell today.
Why a booking far in the future doesn't reduce today's number
A booking or scheduled order that's weeks or months away is still visible — on the Upcoming Demand screen — and it still feeds your reorder suggestions, but it doesn't reduce what's available today. Each ingredient has a horizon (how many days ahead its commitments start counting against availability), which defaults to a week for your whole business and can be set individually for ingredients with a shorter shelf life. A booking that far out shouldn't stop you from selling what's on your shelf today; it will start counting against availability once it moves inside that window.
Editing an order after it's been paid for
Orders change after payment all the time — a party grows, a line gets added, a customer swaps their milk, a booking moves to the following Saturday. Stock re-reads the order each time it checks for demand to fulfil, so those edits flow through to what's committed: quantities up or down, added lines, swapped modifiers and rescheduled bookings all land on the right ingredients and the right date, and a removed line stops being committed at all.
What that doesn't do is rewrite history. Once ingredients have actually been consumed — the order went to the kitchen, or its service time passed — editing the order won't put them back on the shelf. Only a cancellation touches consumed stock, and it does so as waste rather than as a return.
Refunds, cancellations and waste
This is the most surprising behaviour in Stock, and it's worth understanding before you go looking for a bug.
A refund has no effect on stock at all. Refunding money says the customer got their money back. It says nothing about whether the food was made — a customer refunded for a cold coffee still drank the milk. So Stock keeps the ingredients consumed, which is the honest answer: they really are gone.
Cancelling the order is the step that unwinds demand. In your POS, cancelling becomes available once an order is fully refunded (there's also a tick box on the full-refund screen to do both at once). What happens then depends on timing:
- Nothing made yet — the commitment is released. On hand doesn't change, because nothing had left the shelf; available goes back up, and the ingredients are free to sell to someone else.
- Already made — if the order had been sent to the kitchen, or its service time had already passed, the ingredients are gone. Stock keeps them consumed but re-files them as waste instead of a sale, so a late cancellation shows up in your food-cost reporting rather than hiding inside your sales.
The practical consequence: an order that was refunded but never cancelled still counts as consumed. If a variance report looks wrong, check whether the order was actually cancelled, not just refunded. See Orders for how to cancel one.
What this means day to day
- Use on hand when you're doing a physical stocktake or asking "how much is actually in the building right now?"
- Use available when you're deciding whether you can safely take another order, or when Stock is deciding whether to suggest a reorder.
- If available looks lower than you expect, open Upcoming Demand for that ingredient — there's almost always a booking or scheduled order behind it, not a data problem.