Inventory
What is on hand, what is committed and where it is — a movement ledger that reconciles, valued by the costing method you choose, not a number in a table.
A ledger, not a balance
Every change in quantity is a dated movement with a source. The balance sits beside it as a cache with teeth: an issue that would oversell is refused at the moment it is checked, and an agreement report puts the two back side by side.
Three costing methods, one engine
First-in-first-out, last-in-first-out and weighted average are three readings of the same layered ledger, not three separate systems. The basis is chosen once per organization and locks the moment stock first moves.
A reservation belongs to the order that made it
Quantity promised against a sales order line is unavailable to the next one, and is released the moment that line is delivered, cancelled or closed short — not swept on a timer, because nothing here runs one.
A count is a decision, not a default
A stock count posts through the same movement ledger as everything else. A line nobody reached has no default value: the sheet is refused until somebody states what an uncounted line means.