Stock & stocktakes

The ledger

Quantity stock never gets edited in place. Every change — purchase, consumption, transfer, loan, count adjustment — is a movement row, and the level you see is the sum of the movements. That's why the numbers stay honest: the history of how a level got where it is can always be replayed.

Stocktake sessions

A stocktake is a guided count of a location:

  • Open a session for the location; it lists expected stock and serialized items.
  • Count by hand or scan items into the count with the batch tray — found items check off, a counted quantity per product replaces guesswork.
  • Commit: quantity differences land as count_adjust movements, and serialized items still unaccounted for flip to missing — audited, so the flip is traceable to the session.
A committed stocktake reconciles the ledger by definition — the adjustment movements carry exactly the difference between expected and counted.

Low stock

Set a minimum per stock level (per product, per location). Levels under their minimum show on the dashboard and ride along in the weekly digest email. Converting stock to serialized items — when those thirty LED pars suddenly deserve individual histories — is a supported admin flow that spawns tagged items from a level.