Knowing which batch went where — before somebody asks
A recall, an expiry query, or a customer complaint all start with the same question: where did this batch go? If the answer takes two days to assemble, that is the real problem.
If you distribute anything with a batch number and an expiry date — pharmaceuticals, food, chemicals, cosmetics — you will eventually be asked to trace one. Sometimes it is a supplier recall. Sometimes it is a single customer with a complaint. Occasionally it is a regulator. The question is always the same shape: this batch came in, where did it go, and who still has it.
Many businesses can answer it, given time. The stock ledger shows what came in, the invoices show what went out, and somebody spends a day matching them. The difficulty is that a recall is measured in hours, and the answer needs to be complete rather than approximately right. A batch missed in the matching is a batch still on a shelf somewhere.
Tracing works properly when the batch is captured at the point it enters and carried on every movement afterwards, rather than reconstructed later. When a goods received note books stock in, the batch and its expiry date are recorded against the location. When a line is sold, the batch leaves that location specifically — not an anonymous unit of the same item. The chain is then a matter of reading, not of matching.
That makes the trace bidirectional, which is the part that matters in practice. Given a batch, you can list every customer who received it and how much. Given a customer complaint, you can work backwards to the batch and from there to the supplier and the goods received note it arrived on. Both directions come from the same record.
The same data answers a quieter question that costs more money over a year: what is expiring. Stock nearing its expiry date is visible while it can still be sold or returned, rather than discovered when someone finds it. For most distributors that is the feature that pays for itself, and the recall capability is the insurance policy sitting behind it.