Multi-location stock becomes dependable when every movement has a source, a destination, a quantity and a reason. Batch and expiry details add another layer of identity for goods that must remain traceable.
Give each location a clear purpose
Define warehouses and sub-locations around physical custody rather than informal team names. Include receiving, saleable, damaged or quarantine areas when those states affect whether stock can be used.
Assign default locations carefully so a convenient entry does not silently place goods in the wrong warehouse.
Record movement as a two-sided event
A transfer should reduce the source and increase the destination through one connected record. Dispatch and receipt states can explain stock that is in transit without pretending it is available at both locations.
- Use adjustment reasons for counts, damage and write-offs.
- Retain the person and time behind each movement.
- Investigate negative availability instead of masking it with a new balance.
Make batch decisions before expiry
Capture batch numbers and expiry dates at receipt when possible. Use expiry views to prioritise inspection or issue and to prevent affected quantities from being mixed into a general total.
During a return or recall, trace the specific batch through receipts, transfers and outward movement rather than relying on an item-level summary.