Stock leaves when the sale does
Selling picks the batch that expires first and writes the movement as it goes. There is no separate step to remember and no end of day reconciliation.
- Batch and expiry aware issue, first expiry first out
- Every movement recorded with stock before and after
- Counts stay right across locations

