Batch, Lot & Serial Traceability
Follow a specific batch or serial number from receipt through transfer, count, sale, adjustment, and expiry review — and trace forwards and backwards when something has to be recalled.
Traceability lives at Inventory → Traceability. Where the item pages answer "how much do we have", traceability answers "which stock exactly, where did it come from, and where did it go". You can trace by item, by batch or lot number, or by serial number.
Three Depths Of Tracking
Not every item deserves the same tracking burden, so you can match the control to the risk:
| Depth | Use it for | What you get |
|---|---|---|
| Plain stock | Consumables, low-risk items. | Quantity history by location and movement. |
| Batch / lot | Food, chemicals, pharma, anything with an expiry. | Lot number, expiry, supplier, source purchase order, received date, quality and recall status, unit and landed cost. |
| Serial | Equipment, devices, high-value units. | A record per individual unit, a status that changes on every movement, and its own movement history. |
What A Trace Shows
A trace is built from trace events raised by the modules that actually move stock — receipts and check-ins, warehouse transfers, counts, adjustments, POS sales, and scanner workflows. Because the events come from the work rather than being typed in afterwards, the history is not confined to one screen: a batch's page shows where it entered, every place it went, and what it was consumed by.
Serial Numbers On Every Movement
Turn serial tracking on per item: edit the item and set Track serial numbers to Yes. From then on each unit is named as it moves, and its status follows it:
- Receiving (a check-in, or a completed build) needs exactly one new serial per unit, and the units become available.
- Check-outs name the units leaving; they become issued, or sold when the checkout was raised from an invoice. On a pending adjustment you enter the serials on the adjustment’s page, and they are checked when it is approved.
- POS sales name the units sold (sold), and a POS return can only bring back serials that line actually sold and that have not already come back.
- Stock transfers name the units on the truck (in transit); on arrival you record which of them arrived, and any dispatched unit that did not arrive is marked missing.
- Supplier returns mark the units returned to supplier.
- Assembly orders name the components used and the finished units built (see Bills of Materials).
Any serial you give must be real, belong to that item, and be in stock where it is leaving from. Every status change is recorded as a trace event against the serial, so its page answers “where has this unit been?”.
Adoption is gradual. Switching tracking on for an item that already has stock leaves that stock usable: units on the shelf with no registered serial can still leave without one. New stock must arrive with serials, and once the registered units are all that is left at a location, every movement has to name them.
Expiry And Recall
Batches carry an expiry date and a quality and recall status. Two things follow from that:
- The Batch Expiry report (under Reports) lists what is expiring, so you can act before it becomes a write-off.
- When a supplier issues a recall, trace the batch to see every location holding it and every document that consumed it, then place the remaining stock on a quality hold so it cannot be picked or sold while you decide.
Getting Batch Data In
Batches are created as stock arrives — a batch number entered on a check-in or receipt creates the batch, and later movements attach to it. If a trace looks thin, it is almost always because the batch or serial was not captured at receipt. Make the field part of the receiving routine before you rely on the trace: see Receiving Stock.
Need help with this topic?
Capture the module, record number, branch or warehouse, user, visible message, and what you expected to happen before contacting support.