Advanced Batch and Expiry Date Management in WMS

FEFO handles the basic case of shipping the earliest-expiring stock first, but real-world batch and expiry management involves several layers of nuance that a simple date-sort doesn't capture: shelf-life windows required by customers, status changes as product ages, and the interaction between expiry and quality holds.

Multiple Date Types on a Single Lot

A single lot often carries more than one relevant date: manufacture date, best-before date, expiry date, and sometimes a retest date for materials that can be re-certified rather than discarded. The WMS needs to track these as distinct fields rather than collapsing them into one "expiration" value, because allocation rules, regulatory reporting, and customer requirements may reference different dates for different purposes.

Remaining Shelf Life Percentage Rules

Many customers, especially in food, pharma, and cosmetics distribution, will not accept a shipment unless a minimum percentage of shelf life remains at time of delivery, commonly expressed as a rule like "80% of shelf life remaining." The WMS allocation engine needs to calculate this dynamically per customer contract at the moment of order allocation, since the same lot might be valid for one customer's requirement and invalid for a stricter one.

Manufactured Expiry 80% threshold Customer cutoff Sellable window
Status Transitions Tied to Age

Beyond a hard expiry cutoff, some products pass through intermediate quality states as they age, such as moving from full-price saleable to markdown-eligible to donation-only. The WMS should support configurable age-based status rules that automatically re-flag a lot as it crosses each threshold, feeding downstream workflows like automated markdown pricing or diversion to secondary channels.

Retest and Requalification Cycles

In pharmaceutical and chemical distribution, some materials have a retest date rather than a hard expiry: at that date, a sample must be re-tested and, if it passes, the usable life is extended under a new date. The WMS needs a workflow that holds the lot at the retest date, routes it to a quality function for sampling, and either extends the date on pass or converts it to expired stock on failure, all without losing the chain of custody on the lot record.

Blending and Lot Genealogy

When lots with different expiry dates are blended or repacked into a new lot, the resulting lot's expiry should inherit the earliest date among its components, not an average or the latest. The WMS needs lot genealogy tracking robust enough to compute this correctly and to preserve traceability back to each original component lot for recall purposes.

Practical Considerations
  • Expiry-driven markdown and short-date alerts should fire well ahead of the deadline, not on the day it's reached
  • Customer-specific shelf-life rules belong in the customer master, not hardcoded into general allocation logic
  • Reporting on expired write-off value by root cause (over-buying, slow-moving SKU, poor rotation discipline) turns expiry loss into an actionable metric rather than a sunk cost