IEMSuite
Inventory & stock control8 min read

Lot genealogy: tracing a batch both ways

How a finished lot resolves back to every component lot it consumed, and forward to every order it shipped in.

Why a lot number on its own is not traceability

Most systems can print a lot number. Far fewer can answer the two questions that

matter when something goes wrong, and they are opposite questions.

Backward: this finished lot is suspect. What went into it?

Forward: this ingredient lot is suspect. Where did it end up?

Answering only one of them still leaves you recalling by date range. Lot genealogy

is the linked record that answers both, and it has to be built while production

happens, because it cannot be reconstructed afterwards.

The chain

Each step consumes specific lots and produces a new one that remembers them.

  1. Receipt. A delivery becomes a lot with a supplier, a received date, an

optional expiry, and the unit cost you actually paid.

  1. Production. A batch consumes specific component lots. The finished lot

records which ones and in what quantity, not just the recipe.

  1. Allocation. An order draws from a specific finished lot, which is the link

between what you made and who received it.

Break any one of those links and the trace stops there. The usual break is step

two: a system that deducts "10 kg of sugar" from a pooled figure rather than

"6 kg from lot A and 4 kg from lot B" has lost the genealogy at the first

operation, no matter how carefully the lot numbers were recorded on paper.

Transformation is the hard part

Traceability is easy while stock sits still. It gets hard when one thing becomes

another. A batch that is consumed into a second batch has to carry its ancestry

forward, or the chain resets and the finished good points back only as far as the

intermediate.

This is where multi-level production usually loses the thread. A semi-finished

subassembly is both an output and an input, and it needs to be both in the record.

What it changes in a recall

Without genealogy, scope is defined by time: everything made in the window when

the suspect material could have been used. With it, scope is defined by fact: the

batches that actually consumed the suspect lot, and the orders that actually

shipped them.

The difference is usually an order of magnitude in product withdrawn, and the

larger number is not the safer one. Recalling product that was never affected

costs the same money and buys no additional safety.

In IEMSuite

Every unit of stock belongs to a lot, and there is no mode that turns that off,

because allocation, QC and costing are all built on it. Production consumes

specific lots by FIFO or FEFO and the finished lot inherits their genealogy.

Movements are append-only, so history cannot be edited after the fact.

FAQ

How far back should genealogy go?

To the supplier receipt. If the chain ends at your own goods-in, you can bound an

internal problem but not a supplier one, and supplier problems are the common case.

Does this work with multi-level BOMs?

Yes. A subassembly is a production batch that becomes an input to another batch,

so the ancestry chains through each level rather than resetting.

What if I merge two lots of the same material?

Then the merged stock has two ancestors and any trace from it widens to include

both. Merging is sometimes unavoidable, but it is worth knowing that each merge

permanently widens every future recall that touches the result.