FEFO Inventory and Expiry Management in Pharma Warehouses

By David Cook on September 21, 2026

pharma-fefo-inventory-expiry-management

Pharma warehouses cannot do FIFO. First-in-first-out is the default logic in almost every WMS on the market, and for consumer goods it is the right answer. In pharma it is the wrong answer, because receipt date has no relationship to remaining shelf life — a batch received in February may expire in August while a batch received in January expires in December. Picking by receipt order leaves the shortest-dated stock on the shelf until it expires. The correct discipline is FEFO — first-expiry-first-out — and it has to be enforced at the pick, not left to operator judgment. Every batch that expires on the shelf is money the plant already paid for walking straight to the incinerator.

iFactory / FEFO inventory & expiry management

Prevent Expiry Write-Offs — Enforce FEFO at the Pick

First-expiry-first-out logic enforced by the WMS scan, near-expiry alerts weeks in advance, transfer and return workflows for short-dated stock, and expiry loss quantified continuously against target.
Why FIFO Fails Pharma
Two shelves, two pick strategies
FIFO pick
Rcv JanExp Dec
Rcv FebExp Aug
Aug lot left behind → expires on shelf
FEFO pick
Rcv FebExp Aug
Rcv JanExp Dec
Aug lot picked first → zero expiry write-off
Receipt order is meaningless in pharma. Expiry order is the only safe pick sequence.
FEFO
enforced at the scan
Weeks
of near-expiry warning
Continuous
expiry-loss visibility

The Problem on the Floor

A pharma warehouse holds batches of the same SKU with different expiry dates side by side. The right pick order is not the order they arrived — it is the order in which they expire. A February arrival with an August expiry has to leave before a January arrival with a December expiry, and the WMS has to enforce that at the moment the picker scans a bin. Where the WMS falls back on FIFO, the shortest-dated stock stays on the shelf until it expires. On a 50-store pharmacy chain the average expiry write-off runs about $800 per store per month — $480,000 a year in margin FEFO would have saved.

What Escapes Into the System of Record Today

Expiry data exists on the label and often in the ERP batch record. What is missing is the enforcement — the automatic “no, pick this bin instead” that prevents short-dated stock from being skipped over.

Paper batch log
Expiry check done visually by the picker. Batch selected by whichever bin is easier to reach. Short-dated pallets get passed over in favour of fresher stock at the front.
Spreadsheet
Near-expiry list circulated by email monthly — typically after month-end when the write-off is already committed. No live short-dated dashboard visible on the floor.
Chart recorder / data logger
ERP batch master has expiry dates but does not drive pick logic. WMS falls back on FIFO. The two systems technically agree; the pick behaviour ignores both.
Nowhere at all
Expiry write-offs appear in the month-end variance report as a line — no per-SKU breakdown, no per-batch cause, no visibility into whether short-dated stock could have been transferred, returned, or discounted before it expired.

What the WMS Actually Does

A working FEFO discipline is not a report — it is a scan-level enforcement layer. The WMS sees every bin’s remaining shelf life, ranks the pick candidates by expiry, and refuses to release a longer-dated bin when a shorter-dated one exists.

Expiry at Receipt
Expiry date captured with barcode scan at goods receipt. Batch master updated. Location assigned with expiry awareness — short-dated stock placed for easy pick.
Capture: scan-verified
FEFO at Pick
Pick task presents the shortest-dated bin first. Operator scans; if wrong bin is scanned, WMS refuses and directs to the correct one. Named-authority override with reason code.
Enforce: at scan
Near-Expiry Alert
Configurable alert windows (30, 60, 90 days before expiry) fire per SKU per site. Short-dated dashboard visible to stores, planning, and commercial.
Alert: weeks ahead
Disposition Workflow
Short-dated stock enters transfer, return-to-supplier, or mark-down workflow before expiry. Decisions recorded with the batch — not lost to email.
Route: before expiry

What Gets Written to the System of Record

What lands in the system of record is the discipline itself. Every pick that respected FEFO, every override that didn’t and why, and every batch that reached the disposition window with time to act.

FEFO Pick Log
WMS
Every pick with batch, expiry, and pick sequence. Overrides captured with named-authority and reason code — the audit trail for FEFO compliance.
Near-Expiry Dashboard
WMS / BI
Live short-dated stock per SKU per site. Value at risk quantified continuously. Shared with planning and commercial for transfer or promotion decisions.
Expiry Loss Record
ERP + WMS
Every expiry write-off captured against the batch — root cause, prevention opportunity, whether disposition workflow was triggered in time.
Disposition Trail
QMS
Transfer, return, mark-down, or destruction decisions per batch — the record that answers “why was this stock allowed to expire?” before an auditor asks.

Take the last three expiry write-offs on your top-value SKU. Ask whether a near-expiry alert 90 days out would have given time to transfer, return, or discount. If the answer is yes on any of them, that write-off is a data problem, not a demand problem. Book a demo — we’ll show FEFO enforcement on your own SKUs.

12-Week Pilot Shape on One Warehouse

One warehouse, top 20 SKUs by expiry-write-off history, twelve weeks. The pilot is scoped to prove that FEFO enforcement plus near-expiry disposition workflow reduces the write-off number visibly — not to prove that FEFO logic works.

Weeks 1–2
Baseline & Rules
Extract 12 months of expiry write-off data. Configure FEFO logic per SKU, near-expiry alert thresholds, override authority, and disposition workflow routing.
Weeks 3–4
Scan Enforcement
FEFO enforced at pick for pilot SKUs. Operator training on scan-refusal and override path. Override rate measured — rising rate is a signal, not a problem.
Weeks 5–8
Disposition Live
Near-expiry dashboard live for planning and commercial. Transfer, return, and mark-down workflows tested against real short-dated stock.
Weeks 9–12
Write-Off Reduction
First 12-week window closes. Expiry write-off compared to prior 12-week baseline. Override reason-code analysis surfaces process issues to fix.

Who Owns the KPI

FEFO enforcement crosses stores, planning, commercial, and finance. If no one owns the write-off number, the discipline reverts to the operator’s judgment.

Stores Head
FEFO compliance % at pick
Owns the scan-level discipline — what percentage of picks followed the FEFO recommendation without override, and where overrides cluster.
Planning
Short-dated value at risk $
Owns the live near-expiry number. Rising value at risk means either supply-demand mismatch or disposition workflow bottleneck — either way, actionable.
Commercial
Short-dated stock rescued vs written off %
Owns the disposition outcome — what share of near-expiry stock got transferred, promoted, or returned before it expired versus what got written off.
Site Director / CFO
Expiry write-off $ per quarter
Owns the P&L consequence — the number that reaches the ops review and the board. This is what everything above rolls into.

FAQ

What if our SKUs have multi-tier expiry — primary expiry, retest, and secondary shelf life extension?
This is the case for many APIs and some biologics. The system holds all three dates per lot and drives workflow from whichever is closest. Retest triggers QC re-test workflow with the defined method; the retest result either extends the usable window or moves the lot to disposition. Extension of shelf life based on supplemental stability data is captured with the regulatory reference. All three date types respect FEFO — the pick logic uses the effective usable-through date, not any single one of them in isolation.
How does the override authority actually work — won’t operators just override every FEFO decision?
Override requires a named authority with a reason code from a controlled list — not a free text box — and every override lands in the audit log. The override rate itself becomes a KPI: a rising override rate on a specific SKU is a signal that FEFO rules need adjustment (maybe a customer requires minimum remaining shelf life that current stock can’t meet) or that specific operators need retraining. Most facilities find override rate drops from 15–20% in the first month to under 3–5% by month three, once the operators trust the FEFO recommendation and the disposition workflow is working. Book a demo to see the override analytics on a live warehouse.
Can it handle customer-specific remaining-shelf-life requirements at shipping?
Yes. Many hospital and specialty pharmacy customers require minimum remaining shelf life at delivery — often 60, 90, or 180 days depending on product class. The WMS holds the customer-specific SLR per contract, and at ship-picking it filters candidate batches to only those meeting the customer’s SLR requirement. Batches that don’t meet SLR for one customer may still be shippable to others, so the filter is per-order, not per-batch. This eliminates the shipping-time surprise where a batch meets your expiry but not your customer’s SLR contract.
Stop paying for expiry the WMS logic caused.

See FEFO Enforced on Your Own Warehouse’s Top-Loss SKUs

Bring your top 20 SKUs by expiry write-off from last year. We’ll show FEFO enforcement at pick, near-expiry disposition workflow, and quantify the write-off avoidable with weeks of warning.
FEFO
at pick scan
Near-expiry
alerts
Disposition
workflow
Write-off
reduction

Share This Story, Choose Your Platform!