Tiraverse logo

Batch and expiry tracking for regulated distributors

T.R. 8 min read
Batch and expiry tracking for regulated distributors

If you distribute medical devices, pharmaceuticals, or food and drink, your stock is not a single number. A box of 500 units is not 500 interchangeable items. It is a specific lot, made on a specific date, that expires on a specific date, and one day you may need to know precisely which customers received it. A generic stock system was never designed to hold that information, and the day you discover the gap tends to be the worst possible day to discover it.

This is the quiet structural problem underneath a lot of distribution software. Most systems are built around a quantity-on-hand figure: a part has a number, you sell some, the number goes down, you receive more, the number goes up. For a hardware merchant or a stationery wholesaler that model is perfectly adequate. For a regulated distributor it is missing the dimension the whole regulatory framework is built on — the identity of each batch and where it went.

A quantity is not a batch

Consider what your system actually knows when it tells you there are 1,200 units of a product in stock. In a generic system, it knows the number 1,200. That is the whole story. It cannot tell you that 800 of those came in on one delivery with an expiry of next March, and 400 came in last week with an expiry eighteen months out. It cannot tell you the manufacturer’s lot codes. It cannot tell you which of those units have already been allocated to an order.

The moment you need any of that — and in a regulated category you will — the number alone is useless. You end up keeping the real answer somewhere else: a spreadsheet, a folder of delivery notes, the memory of the person who has run the warehouse for fifteen years. That works right up until it doesn’t, and it doesn’t scale past a certain volume or survive that person taking a holiday.

A system built for regulated distribution treats the batch as a first-class record. Each receipt creates a lot with its own attributes — supplier reference, manufacture and expiry dates, the manufacturer’s batch identifier, and the quantity received. Stock is the sum of those lots, not a figure that floats free of them. When you ask how much you hold, you get the number and the composition.

First-expired-first-out, enforced not hoped for

In any business handling dated stock, the picking rule is first-expired-first-out: ship the lot that expires soonest, so that nothing reaches its date sitting on your shelf. Most operations know this. Plenty still run it as an instruction rather than a control.

The difference matters. “Always pick the oldest stock” is a sound policy and a poor safeguard. On a busy day, a picker reaches for the carton at the front, or the one already open, or the one nearest the door. Without the system steering the pick, FEFO is only as good as the attention of whoever happens to be on shift. The losses show up later as write-offs, and the dangerous version shows up as out-of-date stock leaving the building.

When batch and expiry data live in the system, FEFO stops being a hope and becomes the default. The pick list names the lot to take. Where it makes sense, the system can hold back stock that is too close to its date for a particular customer’s requirements, or flag short-dated lots before they become dead stock. The warehouse follows the screen, and the screen follows the rule.

A few things FEFO done properly gives you:

  • Less avoidable write-off, because short-dated stock is surfaced and moved while it still has shelf life.
  • Fewer customer rejections on receipt, because you are not shipping stock with less remaining life than the customer accepts.
  • An honest forward view of what is about to expire, so purchasing and sales can act before it is a loss rather than after.

This is also where good batch handling quietly pays for itself. Recall readiness and audit trails are the obligations; reduced expiry write-off and fewer rejected deliveries are the everyday return.

Recall readiness: the question you must answer in an hour

The real test of a traceability system is a recall. A supplier or a regulator tells you that batch X is affected. From that single piece of information you need to answer, quickly and completely: did we ever hold that batch, how much, what remains in our stock right now, and — the hard part — which customers did we ship it to, on which orders, in what quantities.

In a generic system this is an investigation. Someone trawls delivery notes and invoices, cross-references by product and rough date, and assembles a best-effort list that nobody can fully stand behind. It takes days, it is error-prone, and “best-effort” is not a standard that survives scrutiny.

In a system that records the batch on the way in and carries it through every movement, it is a query. You search the affected lot and the system returns the inbound receipt, the current on-hand position, and every outbound line that drew from it — customer, order, date, quantity. You can quarantine remaining stock in one action and produce the customer notification list as a report. The work shifts from reconstruction to retrieval, and the answer is one you can defend.

That capability cuts both ways. The same lineage that traces a batch forward to your customers also traces it backward to your supplier, which matters when the problem turned up on your shelf rather than in a notice. Traceability is bidirectional or it is not really traceability. For a fuller picture of how lot tracking, FEFO and recall reporting fit together in a single operational flow, see our SFA and logistics solution for regulated distribution.

The audit trail is the product

Regulators in the medical, pharmaceutical and food sectors do not, in the main, prescribe which software you run. What they expect is that you can demonstrate control of your stock — that you know what you held, where it came from, where it went, and that the records were not assembled after the fact to suit the question. The published rules vary by sector and change over time, so the sensible posture is to design for the underlying expectation rather than to a regulation number: maintain a complete, timestamped, tamper-evident record of every batch movement.

A proper audit trail means every event leaves a trace that you did not have to remember to create. Goods in, putaway, allocation, pick, dispatch, return, adjustment, quarantine — each recorded with who, what, when, and which lot. The value is precisely that it is automatic. A trail you have to maintain by hand is a trail with gaps, and the gaps are always in the place an auditor looks.

This is the deeper reason generic stock software fails the regulated distributor. It is not that you cannot bolt batch fields onto it. It is that the audit trail is not a feature you add at the edge; it is the spine the whole system has to be built around. Retrofitting traceability onto a quantity-first design produces something that records most movements most of the time, which is the one thing a regulated record cannot be.

Frequently asked questions

Can we not just add batch numbers to our existing stock system?

Sometimes, partially. Many general systems let you type a batch reference into a field. The trouble is that the field is usually decorative — it sits beside the quantity rather than driving it. FEFO picking, batch-level stock positions, and recall reporting need the batch to be the unit the system actually moves and counts, not a note attached to a movement. If the underlying model is quantity-on-hand, a batch field gives you somewhere to write the number, not the ability to act on it.

How fast should a recall actually be?

Fast enough that the constraint is your decision-making, not your data retrieval. The point of carrying batch lineage through every movement is that producing the affected-customer list is a report, not a project. When the lookup itself takes days, you lose those days at the exact moment speed matters most. A well-kept system should return the inbound, on-hand and outbound picture for any lot in minutes.

Does this apply to us if we mostly handle long-dated stock?

Yes, though the emphasis shifts. Long shelf lives reduce day-to-day expiry pressure, but they do nothing to reduce recall exposure or the traceability expectation. A two-year shelf life simply means a longer window in which an affected batch can be sitting with your customers. The batch identity and the audit trail matter regardless of how far out the expiry date is.

The pattern is consistent across regulated categories. The businesses that handle a recall calmly are not the ones with the most staff or the thickest procedures folder. They are the ones whose systems recorded the batch on the way in and never lost track of it, so that when the difficult question arrives the answer is already there, accurate and ready to stand behind. That readiness is not something you can assemble in the moment. It is built quietly, one correctly recorded movement at a time, long before anyone asks.

— T.R.