When nobody trusts the stock number, everybody counts.
It starts small: a count that drifts, an adjustment nobody remembers making, a unit cost that matches no invoice on file. Six months later every batch starts with someone walking to the shelf, because the screen stopped being believed.
BatchDash keeps stock the way an accountant keeps money: every movement is a signed entry, and the level on screen is simply the ledger’s sum. There is no second number to reconcile against, so the screen and the shelf stop drifting apart.
The shelf, priced, and it adds up
Every ingredient with what it costs you, what is on hand, what is already on order, and what the line is worth at that cost. The footer adds up whatever you are looking at, and says so: narrow it to the spice rack, to one cold room, or to just what is running low, and the total follows you there. So the value sitting in your workshop is a figure you can read on a Tuesday rather than one you assemble once a year for the accountant. Low and out are marked where you would look for them, and the column that changes how the week goes is the next one along.

On hand is not the same as free
Nine kilos of habanero on the shelf and none of it available: six planned batches have already spoken for thirty-six, five more kilos are on order, and it is still twenty-six short. That sentence is the difference between a stock screen and a stock system. Available is derived live from the batches and orders that claim it, never stored, so it cannot drift away from them. And the shortfall is the same figure that puts the ingredient on the Buying screen, with the last day the order can leave.

Deliveries, batches, losses: one register
A delivery books in at its landed cost with its supplier lot and best-before date. A batch consumes through the same register its output lands in. The crate the cold room killed is a loss with a reason, and the monthly count writes its variance as an entry instead of papering over it. Scroll any ingredient and you read its whole life, movement by movement, with the running balance beside each one.
Every entry names what caused it, and links to it: the run, the order, the count session, the transfer.

The cost your recipes eat is the cost you paid
Weighted average cost is recomputed at every receipt, fees included, and it is the number every recipe, batch and margin reads. No “standard cost” that somebody set in January and forgot.
- Any figure on any screen walks back to the movements that made it.
- Receipts carry their fees, so the €1.85 vinegar that cost €2.10 landed is €2.10 everywhere.
- A trial batch that gets reverted returns exactly the stock it took, at the cost it took it.
A count is an entry like any other
Count the shelf on a phone, one location at a time, and the session keeps who counted each line and at what hour. Validating posts the differences as ledger entries with their own value, so the count joins the history instead of erasing part of it. And when 500 g of habanero turns out to have walked from the workshop to the cold room, the two lines cancel and the value column says nothing was lost, because a move between your own shelves costs nothing. Four differences across fifty-six items, and only two of them cost anything: that is a session somebody can sign.

Levels that restock themselves onto the buying list
Give an ingredient a restock level and it shows up on the Buying screen by itself the day the shelf drops under it, no batch involved. The level means what you want left after planned production takes its share, so covering the batches never quietly empties your safety stock.