Cold chain: expired stock, manual inspection and unplanned forklift failure
Northwind Fresh distributes dairy from three distribution centres. 4,200 SKUs are batch-tracked with shelf lives between 7 and 45 days. At last month-end on-hand was $410,000, of which $38,000 had passed its expiration date but was still reservable and pickable. Pickers work the pallet nearest the dock rather than the pallet nearest expiry. Inbound inspection is manual: the quality team creates quality orders by hand for roughly one lot in twenty, and about 6% of inspected lots fail. Forklifts - 14 units across the sites - are tracked in a spreadsheet with preventive maintenance every 250 operating hours; two unplanned failures last quarter cost 31 hours of outbound throughput. All three warehouses run warehouse management processes, and goods are received through licence-plate-controlled receiving.
1. Design the inbound hold so received dairy cannot be reserved or picked until quality releases it. Compare a quarantine warehouse, inventory statuses and inventory blocking, and say when each is the right tool.
Read the worked answer
The inspection trigger
Attach a quality association to the item (or item plus site) so a quality order is created automatically on product receipt, with a sampling plan and a test group covering fat content, temperature at receipt and seal integrity. This removes the manual 'one lot in twenty' guess - sampling becomes a property of the item, not of who is on shift.
Where the goods physically sit - the three options
- Quarantine warehouse: a separate warehouse flagged as quarantine. Location directives send put work there; the outbound directives never query it. Strongest physical segregation, clean for audit and regulators, but it forces a physical transfer (and a transfer order or WHS movement) before the goods can be sold, which adds labour and cuts the effective shelf life available for sale.
- Inventory statuses: locations carry a status such as Available, Quarantine, Rejected. Put directives send new receipts to Quarantine-status locations, outbound directives exclude anything not Available, and releasing a batch means a status change, not a physical move. Best fit here: one dock, one buffer, dairy that must be sold fast. It also makes expired stock genuinely non-reservable once you move it to a Rejected location, which the spreadsheet-and-blocking approach never achieved.
- Inventory blocking: a quantity or owner-level block. Fast to apply, good for an emergency recall or a supplier dispute, but it is a manual hold with no directive logic behind it and no status-based exclusion from reservation. It should be the exception, not the architecture.
Recommendation: inventory statuses as the primary control plus quality orders as the trigger, quarantine warehouse only for the lots with a documented regulatory or customer requirement. Whatever you choose, the expired $38,000 tells you the control must be automatic at receipt - a manual step will be skipped on a busy dock.
2. FEFO picking is not working: the system still reserves the pallet nearest the dock rather than the nearest expiry date. What must be configured, and what data is usually missing?
Read the worked answer
Work through it in this order, because the cause is almost always one of the first three.
- Dates on the batch. FEFO can only sort on a date that exists. Best-before and expiry dates must be populated on the batch at receipt - either derived from the shelf-life periods maintained on the released product, or captured as batch attributes at registration on the mobile device. If the mobile menu item does not prompt for them and the shelf-life periods are blank, every batch is dateless and FEFO silently degrades to receipt order.
- FEFO enabled for the item and on the directive. The item must be set to pick by FEFO, and the location directive that selects bulk/pick locations must use a FEFO strategy rather than a fixed location list or a plain location sequence. A directive that names a specific location will always win over any strategy.
- Existing reservations. If the sales order or the release-to-warehouse process reserved a specific batch at order entry, picking honours that reservation - FEFO never gets a vote. Decide deliberately whether reservation happens at order entry or at work creation, and keep it consistent across the order types, or you will get FEFO on some channels and dock-nearest on others.
- Picking restrictions. Use the batch restrictions for above/below best-before-date together with the inventory status model from the previous question, so a batch that is inside its final days cannot be picked at all rather than being picked and returned.
Data checks worth running before go-live: how many batches on hand have a blank best-before date; how many open sales lines already hold a batch reservation; and which location directives in the outbound zone lack a FEFO strategy.
3. Forklift maintenance every 250 hours lives in a spreadsheet. How would you model it in asset management, and how would downtime records change the 250-hour interval?
Read the worked answer
Structure
- Functional locations mirror the physical hierarchy: site, then warehouse, then zone, then dock. This is what lets you report downtime by zone and see that failures cluster at the busiest dock.
- Asset type Forklift, with assets for the 14 units, serial number and criticality captured on each asset.
- Meter for operating hours, with readings registered on the mobile device at the end of each shift or at work order completion. Without meter readings the whole model collapses back into a spreadsheet.
- Maintenance plan with a meter-based interval of 250 hours. Where the OEM also specifies a calendar interval, combine the two so whichever comes first triggers the work order.
- Asset BOM on each forklift for filters, belts and hydraulic oil, so the preventive work order reserves the right spare parts and the parts consumption is visible per asset.
Using downtime
Register downtime on the work order with start, end and a reason code for every failure, including the two unplanned ones. That gives you hours lost per asset and per functional location, and a failure-versus-runtime trend against the 250-hour interval.
If failures consistently appear at 180–220 hours, the interval is too long and you shorten it based on evidence, not opinion. If the two failures were unrelated to wear - hydraulic hose failures at a specific dock, say - the answer may be a condition-based inspection at that functional location rather than a shorter fleet-wide interval, which would add 14 sets of planned downtime to buy protection against one localised problem.