The phone woke me at 2 a.m. On the line was one of our food fulfillment clients, voice shaking: one of their energy bar lots had tested positive for suspected raw-material contamination, and the regulator wanted a complete distribution record for that lot within 24 hours.

I hung up and felt my stomach drop. Three of their lots had been sitting mixed together in our bulk area for two full months. Lot labels? A paper slip stuck on at receiving, long gone. In the WMS? The lot field was blank — at receiving, someone had taken a shortcut and booked everything in by SKU alone.

Four of us spent that night digging through every outbound order, matching pallet by pallet. The records we submitted were barely accepted, and the client decided on the spot to move their business elsewhere. What we lost that night was not just one account — it was the reputation of our entire food fulfillment operation.

That is the nightmare of every multi-client 3PL warehouse: lot mixing. Not lost inventory, not mispicks — different lots physically and systematically tangled together so that when a recall comes, nobody can say which unit belongs to which lot. Lot mixing does not happen every day, but when it does, it is existential: you lose the client, you eat the fine, you make the news.

How lot mixing actually happens

Here is my verdict up front: lot mixing is never about careless employees. Every post-mortem I have seen starts with some receiving or putaway operator cutting a corner, and every root cause ends in the same place — the WMS never gave the lot its own identity.

There are three classic ways to die.

First, the lot is just a comment field. In plenty of WMS products, the lot is one line of free text on the receiving document. Scanning, putaway, and picking never validate it. A comment is written for humans; the system does not read it, so a mix goes unnoticed.

Second, no labeling at receiving. The lot information is printed on the carton inkjet code, the receiver does not bother keying it in, or keys it in but never sticks it on the pallet. The lot enters the building as an undocumented resident, and every downstream step runs blind.

Third, two lots in one location. The bulk area is short on slots, so one lane holds two lots; during replenishment, the new lot gets stacked right on top of the old one. Physically mixed, while the system still believes it is one lot — at that point nobody can sort it out.

Multi-client warehouses add one more headache: every client brings their own lot-numbering convention. Without a unified rule, receivers improvise, and every improvisation adds chaos.

See the pattern? All process and system failures. If your plan to fix lot mixing is more training, let me save you the trouble — people will always make mistakes. Poka-yoke means building a system that does not give them the chance.

The lot's ID card gets issued at the receiving dock

The first line of defense against lot mixing is not on the rack — it is at the receiving dock. My iron rule: a pallet with incomplete lot information does not go to stock. Write it into the SOP, enforce it as a hard WMS validation, no exceptions for anyone.

Fix the lot-number rule first and never change it casually. I recommend: client code + production date + line/shift. Something like "ABC-20260314-A" tells you the client, the production date, and the shift at a glance. It does not need to be fancy, but it must be uniform across the building — one rule version per client, stored in the WMS dictionary, never improvised by the receiver.

Then label it. One code per pallet is the laziest effective poka-yoke: print a lot label at receiving with all three elements — lot number, production date, expiry. For food and export clients, I strongly recommend going straight to SSCC — an 18-digit globally unique serial number, a public GS1 standard flagged with AI (00) in the barcode. Stick it once and the whole supply chain recognizes it; in a recall, one scan tells you that pallet's entire history. Any label printer can do it.

One note for food headed to Europe: EU Directive 2011/91/EU requires prepackaged foodstuffs to carry a lot mark, generally preceded by the letter "L" — no mark, no market. If your client sells into Europe, verify lot-mark compliance at receiving, not when customs holds the container.

On the WMS side, a lot needs more than a text box for the lot number. Production date, expiry, QC status, supplier lot — structured lot attributes, captured once at receiving, because FEFO allocation, expiry alerts, and recall freezes all run on them later.

Mixing storage is fine; mixing lots is not

A multi-client warehouse never has enough slots, so mixed storage is normal. But keep two concepts apart: mixed storage is a space strategy; mixed lots are a management failure. Different clients' goods in adjacent lanes — fine. Two lots in one location or on one pallet — red line.

My putaway isolation playbook has three tiers.

Full-pallet area: one pallet, one slot, one lot. The pallet is a natural isolation unit — bind the pallet ID to the lot in the WMS, and the forklift driver only does full-pallet in and out. Mixing becomes nearly impossible.

Bulk area: one lane, one lot. Put bulk away by lot, full lane at a time, and configure location lot-exclusivity in the WMS — if location X already holds lot A, the system flat-out rejects lot B at scan time with an alarm. This is a hard configuration, not a suggestion.

Piece-pick area, where mixing happens most. Replenish new lots behind old lots, or in a separate lane; let the system direct picks by FEFO (first-expired, first-out), and never let pickers grab whatever is closest. If the system does not lock it down, people will take the easy way.

The common thread: the enforcer is the system, not the person. In the WMS, lot must be an independent inventory dimension — client × SKU × lot pinpoints a pallet — not a comment hanging off the SKU. When evaluating a WMS, check this first: any product that implements lot as a free-text note gets an instant fail from me. That is my veto item.

When the recall notice arrives: four steps back

On recall day, what saves you is not courage — it is the data you banked on ordinary days. I compress the drill into four steps.

Step one, freeze the lot. Take the suspect lot number (or production-date range) and freeze every unit of that lot in the WMS — no outbound. Freezing must take minutes, one click for the whole building. A WMS that cannot do this should be replaced.

Step two, pull three reports: outbound sales detail for the lot (who got it, how much, when), current on-hand distribution (which locations, how many pallets), and in-transit (shipped, not yet received). The three must reconcile — shipped plus on-hand equals received.

Step three, widen the time window. Contamination rarely respects one lot: lots from the days before and after on the same line, and other lots made from the same raw material, all become suspects. Under the FDA's FSMA 204 traceability rule (final rule published November 2022, enforcement extended to July 20, 2028), companies must produce sortable electronic traceability records within 24 hours of a request. If your lot data lives in scattered spreadsheets, you will never make that window. Compliance debt always comes due — with interest — on recall day.

Step four, isolate and notify. Quarantine suspect lots on the spot with red tags, and notify every receiving customer. The faster you move, the lighter the penalty. That one I learned the hard way.

Pallet racking in a multi-client warehouse with goods stored by lot zone

The last look before putaway: an anti-mixing checklist

  • Is the lot-number rule uniform across the building, and can a receiver invent a lot number on the spot? (If yes: fail.)
  • Is every pallet labeled at receiving with all three elements — lot, production date, expiry?
  • Is lot an independent inventory dimension in the WMS, enforced by scan validation at putaway and picking?
  • Is location lot-exclusivity configured, so the system alarms when a second lot enters the same location?
  • Is bulk replenished by lot per lane, and are picks system-directed by FEFO?
  • Can you freeze a lot building-wide in minutes with one action?
  • Did you run a mock recall last month, and how long did it take from notice to the three reports? (Over 24 hours: fail.)

Pin this checklist on the receiving office wall. Process discipline stops lot mixing. Wishful thinking does not.