An expiry date field and an earliest-expiry picking list do not make a material expiry management system safe. A manufacturer must also decide whether a received lot has passed quality checks, whether a particular container has been opened or exposed to adverse conditions, and whether it will remain eligible through the relevant production step. This guide turns those decisions into requirements for a Thai factory implementing FEFO, quality quarantine, ERP–WMS–MES integration, an RFP, and FAT/SAT acceptance tests.
Define the scope of material expiry management before selecting software
Expiry control matters beyond food and pharmaceuticals. Adhesives, coatings, resins, rubber compounds, chemicals, solder paste, films, and some electronic components can change with storage conditions and time. The valid period and the disposition of expired stock depend on the material specification, customer requirements, product risk, and applicable regulations. Do not apply one formula to every item just because ERP has a shelf-life field.
Classify materials first: (1) materials with a manufacturer’s unopened expiry date; (2) materials for which opening, thawing, or mixing starts another clock; (3) materials with a retest or reevaluation date; and (4) materials without an expiry date that still need FIFO and lot traceability. A retest date is not an automatic extension of an expiry date. Conversely, inventing an expiry date for an item that has none can cause false rejects and disposal.
Separate four questions: Is there a book quantity? Can a warehouse operator pick the stock? Has quality authorized its use? Is this container eligible for this production order? Correct stock totals do not prevent a quality event if eligibility is wrong. Correct quality status does not prevent shortages if the planning and issue processes disagree. The target is a reproducible decision before the material enters production, not merely a dashboard of dates.
Translate FIFO and FEFO into a usable shop-floor rule
FIFO prioritizes the earliest receipt. FEFO prioritizes the earliest expiry. FEFO does not mean blindly selecting the first lot to expire. First filter for lots that have been released by quality, meet storage requirements, have sufficient remaining life through the contracted milestone, match the product specification, and have available quantity. Then sort the eligible candidates by expiry.
WHO’s pharmaceutical storage guidance recommends FEFO stock rotation and quarantine for rejected materials. This is useful design evidence, but it does not make pharmaceutical rules a legal obligation for every Thai factory. Confirm the requirements for the product, customer, and market separately.
Imagine lot A expiring 20 October under quality hold, lot B expiring 25 October and released, and lot C expiring 5 November and released. B is the first eligible FEFO candidate. If the contract requires validity through a final operation on 27 October, B is also ineligible. Select C or change the production plan. Define whether remaining life is checked at receipt, issue, consumption, completion, or shipment; “valid today” is often too weak.
SAP documentation describes checks of remaining shelf life at goods receipt against material or purchase-order requirements, with a configurable warning or error. It also describes batch determination by expiration date at goods issue. Where standard software supplies these functions, the project still needs rules for overriding warnings, propagating WMS status, and checking again in MES.
Separate supplier lot, factory lot, and individual container
The supplier lot expresses a shared origin. One lot can arrive as several cans, bags, drums, or reels. Opening time, remaining quantity, location, and temperature excursions can then differ by container. Keep a one-to-many relationship between lot and container, and use container ID as the smallest issue and consumption trace unit. When decanting, preserve parent and child IDs, source lot, transfer time, operator, quantities, new label, and the inherited or newly started expiry rule.
GS1 Application Identifiers include (01) for GTIN, (10) for batch/lot, and (17) for expiration date. A GS1 barcode can carry these supplier data into receiving. The factory still needs its own container ID, open state, location, and quality authorization. Scanning a valid barcode never proves that the container is eligible for use. When a damaged label forces manual entry, retain an image of the original label and an approval record.

Assign one system of record per fact. An example is ERP or PLM for item and basic storage master data, a verified receipt/lot record for supplier lot and original expiry, WMS for container location and balance, QMS for quality status and retest decision, and MES for actual consumption. Product architecture may combine these roles, but several systems must not edit the same date independently. Corrections should be events with old value, new value, supporting document, approver, and time. Do not silently rewrite the value used by an earlier production record.
Check remaining life and quality status at receiving
Capture item, supplier, purchase order, manufacturer lot, manufacture date, expiry, receipt date, container count, quantity, storage temperature, and transport deviations. Normalize displayed date formats and record a timezone for time-critical materials. Do not turn a month-only date into the first or last day without checking the supplier’s meaning and the applicable standard. GS1 AI (17) has defined encoding rules, but the business meaning of the supplier label must still be verified.
Define the receipt requirement as the minimum time between receipt and expiry for each material. Distinguish that purchase requirement from the time needed by the actual production plan. An accepted batch might still expire before it can be consumed. A short-life batch might be approved for a specific order after a documented quality decision. Do not implement that narrow exception as unrestricted release to general inventory.
Physical receipt and quality release are separate events. Hold the material while labels, appearance, quantity, certificates, temperature logs, sampling, and testing are checked. Quarantine must prevent allocation in WMS and consumption in MES, not merely place goods behind a cage. Pass the status version and effective time between systems so a disconnected terminal does not keep using yesterday’s authorization.
EU GMP Chapter 5 discusses labeling of starting materials with status such as quarantine, under test, released, or rejected, and an expiry or retest date where appropriate. Its direct applicability depends on the regulated product and market. The general system-design lesson is to keep status and date as distinct facts. An “in stock” flag cannot represent a pending quality decision.
Treat storage conditions and opening events as part of expiry
A valid printed date does not make a container usable after an adverse temperature, humidity, light, or atmosphere excursion. Link logger data to location, period, calibrated device, missing readings, and door or movement events. On an excursion, identify affected containers and time windows; let quality decide hold and release. Do not automatically scrap an entire warehouse, but keep affected stock unavailable until assessment is complete.
Many materials have a shorter life after opening than in unopened storage. Retain both the manufacturer’s expiry and the open-container limit, and use the governing rule for that material. Thawing, mixing, dilution, removal from dry storage, and opening can start different clocks. Let the terminal record a specific operation event rather than a vague “open” button. A late entry must be marked as retrospective; do not move a timestamp backward to create apparent safety margin.
Transfers between storage and line require source and destination conditions, transport duration, temporary holding time, and seal state. Material taken from a refrigerator to a line and returned unused does not regain its original state. Accumulated ambient exposure, number of openings, and quantity may matter. Begin implementation with a representative material family and prove its exception flow before expanding to every material.
Divide issue and return responsibilities across ERP, WMS, MES, and QMS
A practical division is ERP for purchasing, item master, costing, and production order; WMS for container, bin, pick, and movement; MES for actual container and quantity consumed at each operation; and QMS for quality decisions. Several roles can live in one product, but each event needs one authoritative owner. Receipt, release, allocation, pick, line handoff, consumption, return, and scrap are not interchangeable “issue” events.
When WMS suggests a FEFO container, MES should scan its ID again immediately before use. Expiry, quality hold, allocation to another order, or environmental excursion can occur after pick. At scan time, validate quality status, governing expiry, product compatibility, required remaining life, quantity, and order revision. If offline use is allowed, specify the limited validity of preauthorized lists, exception approval, and conflict resolution on reconnection. A red screen alone cannot reliably stop the wrong material from being loaded.
Returns must distinguish unopened and opened containers. Even an unopened unit may have spent too long under line conditions. Measure the return balance and reconcile MES consumption with WMS quantity. Do not force the numbers to match by an unexplained adjustment. Classify consumption, scrap, sample use, cleaning loss, and measurement variance; give corrections to an authorized role.
Our inventory allocation guide covers the quantity promise to an order. Expiry management removes ineligible held or short-life containers from that allocation pool. The MSD management guide explains floor life and exposure rules specific to moisture-sensitive devices. Those clocks should be modeled explicitly rather than hidden in a single generic expiry field.

Design exception handling as a controlled workflow
Most failures occur outside the normal pick. List cases in the RFP: imminent expiry, unreadable supplier label, a temperature excursion affecting only part of a lot, unknown opening time, pending tests, unused line-side material, and mismatched MES/WMS balances. Give each case a stop point, quarantine scope, approver, evidence, restart condition, and audit log.
Be particularly careful with “extension.” A retest or reevaluation may be permitted for a defined material, but method, sample representativeness, storage history, authority, and allowed products or uses need an approved quality procedure. Keep the original manufacturer expiry and record the approved new conditions as a separate revision. Confirm applicable regulatory and customer requirements. Do not provide a convenience function that simply edits the printed expiry.
Releasing a quality hold is more than changing a screen field. Tie the affected containers to test results, deviation ID, any product restriction, approver, and effective time; distribute the event to WMS and MES. Design retry, idempotency keys, and acknowledgements so a failed interface cannot make “released by quality” appear identical to “safe to use at line.” A new emergency hold should block use first and show affected allocations, picked containers, and waiting orders.
Put the data model and decision rules in the RFP
Draw the relationships among item, supplier, supplier lot, factory lot, container, location, quality decision, expiry event, production order, and consumption. Use a concrete example: five cans from one lot, two opened, one returned from the line. If the receipt line is the smallest unit, different can conditions cannot be distinguished. If only containers are modeled, recall scope and lot-level quality decisions become obscure.
Keep the source of each date: manufacturer expiry, calculated shelf life from master data, calculated open life, and an authorized reevaluation condition. Even if the UI shows one “last usable” date, the system must explain which source controls it. Specify whether date-only values last through end of day, and the timezone of time-critical limits. Preserve the source label date when supplier and Thai factory use different timezones.
Define a small set of states such as awaiting receipt review, under test, released, restricted use, on hold, rejected, expired, and awaiting disposal. Combine states with identical stop behavior; split them only where permissions differ. A restricted release must carry the allowed product, production order, quantity, and end time. A green “released” icon alone can let a one-order exception leak to another order.
Specify the supplier’s lot code, date format, manufacture date or life, storage and transport conditions, certificate, temperature log, and machine-readable label where necessary. GS1 is useful but need not be imposed on every material. If a label is replaced, retain the mapping to the original and who relabeled it. A supplier’s correction needs a document and affected-lot scope, not a phone instruction.
Internally, purchasing owns the contractual minimum remaining life, warehouse records receipt and movement, quality approves holds and releases, production verifies consumption, and IT maintains integration and permissions. Include segregation of duties, delegated approval, and night-shift escalation in test scenarios. Decide in advance whether absence of an approver stops use or invokes an approved alternative procedure.
Near-expiry stock should be considered alongside production demand, changeovers, inspection lead time, and travel from storage to line. Never relax product compatibility or minimum remaining life just to consume old material. Route unusable stock to supplier return, reevaluation, an approved alternate use, or disposal. Disposal value is a lagging metric; poor remaining life at receipt and over-ordering are causes worth tracking.
Available-to-plan quantity needs more than physical stock minus held stock. Distinguish units valid through the required milestone, units restricted to a specific order, already-picked units, and opened units with insufficient time left. A container eligible during planning may become ineligible by consumption. Use the same rule revision at plan, pick, and use, and log why the decision changed.
The RFP must request lot/container structure, expiry types, state transitions, FEFO eligibility, approval powers, event ownership, offline limits, audit trail, and migration. “Barcode capable” and “expiry alert included” do not show whether the line can be interlocked.
| Requirement | Buyer question | Evidence to request |
|---|---|---|
| Data granularity | Can one lot contain many separately managed containers? | Parent-child ID and history demonstration |
| Expiry rules | How are unopened, opened, thawed, and retest clocks separated? | Rule table and boundary-case results |
| FEFO | Are quality, storage, and remaining-life filters applied before sorting? | Candidate and exclusion-reason log |
| Receiving | What happens on short life, missing date, or label mismatch? | Real scan and receipt record |
| Quarantine | Are allocation, pick, and MES consumption blocked? | State evidence from each system |
| Returns | Are exposure and balance preserved? | Container history and variance workflow |
| Interfaces | What happens on failure and duplicate resend? | API contract, retries, recovery procedure |
| Audit | Are old value and approval basis visible? | Exportable audit log |
Compare offers beyond license cost: master-data cleanup, labels and scanners, terminals, quality workflow, ERP interfaces, MES interlocks, test data, training, and support. Ask vendors to mark which needs standard configuration, development, or procedure. Demonstrate a held early-expiry lot, an opened later-expiry container, a lost connection, an unreadable label, and a return. Request exportable result data and replay steps, not only screenshots.
Test boundary cases in FAT and SAT
FAT exercises functions and interfaces in the supplier environment. SAT repeats critical scenarios with actual labels, scanners, storage, lines, and shifts. Write acceptance as “prohibited issue and consumption are stopped; approved exceptions pass with evidence,” not “screen opens.” Test exact date boundaries, timezone transitions, month ends, leap days, and just-after-midnight use.
| Test | Expected result |
|---|---|
| Earliest-expiry lot on quality hold | Excluded; next eligible lot and reason shown |
| One day below minimum life at receipt | Configured warning or rejection; no unauthorized override |
| Open-container limit before manufacturer expiry | Container-specific limit governs pick and use |
| Unknown opening time | Hold or documented approval route; no automatic release |
| Quality hold after pick | MES blocks consumption and identifies affected order/container |
| Temperature excursion for one container | Affected container held; other containers assessed per procedure |
| Offline terminal crosses expiry | Stale authorization not reused; approved stop/exception path |
| Open container returned from line | Exposure, balance, and history retained |
| Duplicate release event | State changes once; no duplicate audit event |
Build test data with item, supplier lot, container ID, date types, quality state, storage condition, order, and actual scan string. Compare expected and actual results in an exportable form. A FAT pass can fail at SAT because of glare, gloves, weak Wi-Fi, or labels that detach in refrigeration. Acceptance must include the physical operation.

Migrate by finding unknown dates, not by inventing them
An item-level stock total cannot recover each container’s expiry. Count and scan containers, then reconcile supplier lot, original expiry, opening status, balance, and quality state. Do not fill missing values with a distant dummy date. Count “expiry unknown,” “opening time unknown,” and “label mismatch” separately and route them to quality for disposition.
Pilot one material family with clear container handling. Complete receipt, storage, pick, consumption, return, and scrap; compare book, physical, and system balances. Then expand across shifts, sites, and suppliers. Define cutover date, discrepancy owner, and rollback criteria. A long parallel-entry period with two competing ledgers creates more ambiguity.
Track more than expired-stock disposal value. Monitor unknown-date containers, insufficient remaining life at receipt, FEFO override rate, time on quality hold, holds after pick, return variance, prevented expired consumption, and integration delays. Prevented events may increase at first because the new process detects problems that were previously invisible; investigate the causes before weakening rules.
Break these measures down by material family, supplier, warehouse, line, and shift. High disposal may come from poor remaining life on delivery, purchase lots that are too large, slow quality testing, incorrect pick order, or unsuitable handling of opened returns. A single total cannot identify an owner. If overrides are frequent, examine master-data rules, supplier label quality, and production-plan changes before blaming operators.
At a regular review, quality, warehouse, production, purchasing, and IT should inspect the same event history. Quality reviews hold/release evidence and lead time; warehouse compares proposed and actual picks; production examines rescan and return; purchasing checks delivery life; IT checks delays, retries, and offline operations. Change requests should identify a material, exception, approval, and test rather than ask to “reduce alerts.” Version each rule and replay boundary tests so a newly loosened condition is visible.
For a customer or audit query, trace a finished lot back through production order, consumed container, decanting parent, supplier lot, receipt, quality decision, expiry calculation, and storage excursion. In reverse, identify all products, operations, stock, and shipment candidates affected by a problematic material lot or container. Include both directions in FAT/SAT and require an exportable result, rather than accepting a generic “traceability available” claim.
Frequently asked questions
How is a material expiry management system different from basic inventory software?
Basic inventory focuses on item, quantity, location, and movement. Expiry management connects lot/container-specific date types, exposure and opening history, quality status, required remaining life by use, and actual consumption. Existing ERP, WMS, and MES modules may meet the requirement if their decisions are integrated. Assess whether they prevent prohibited use, not whether a product carries a particular name.
Does FEFO prevent expired material from entering production?
Not on its own. Filter held or environmentally compromised stock, enforce remaining-life requirements, and scan and reassess at consumption. Return and emergency-hold events must propagate after the original pick recommendation.
Is supplier lot tracking sufficient?
Only if every container remains in the same condition. With opening, partial use, movement, or excursions, maintain lot as the quality-origin unit and container as the use, balance, and location unit. Preserve parent-child identity on decanting.
Can an expired material be retested and extended?
There is no universal answer. The material specification, quality procedure, customer agreement, and regulation determine what is permitted. When reevaluation is allowed, retain the original date and record results, approval, and scope. Do not return a batch to unrestricted inventory by simply changing a date.
How should cost and schedule be estimated?
They depend on the number of material families, warehouses and lines, interface complexity, label quality, approval workflow, and container-level stocktake. Give vendors scenarios, API information, device needs, and FAT/SAT scope; ask for separate configuration, development, migration, training, and support costs. Avoid generic price or duration claims without plant data.
Can a Thai factory apply pharmaceutical FEFO guidance to every product?
WHO and EU GMP can inform design, but direct obligations differ by product and sales market. Food, pharmaceutical, electronic, and chemical materials have different meaning of expiry and quarantine. Distinguish applicable requirements from reference guidance in the RFP.
Conclusion
An effective material expiry system separates lot and container, distinguishes unopened, opened, and retest dates, and filters FEFO candidates by quality status and storage conditions. It connects ERP quantities, WMS containers, MES consumption, and QMS decisions through explicit events and checks eligibility again at use. The RFP defines exceptions, authority, interface failure, and evidence. FAT and SAT prove boundary cases on real equipment. The result is a controlled decision about which material may enter a process, not just an earlier-date pick list.
If your Thai factory is defining its scope, FEFO and quarantine rules, ERP–WMS–MES ownership, an RFP, or FAT/SAT scenarios, you can contact TOMAS TECH while the project is still being planned. A current ledger and one representative material flow are enough to start identifying the decisions and exceptions that matter.
Sources
- GS1, Application Identifiers: https://www.gs1.org/gs1-application-identifiers
- GS1, Logistic Label Guideline: https://www.gs1.org/standards/gs1-logistic-label-guideline/1-3
- WHO, Good Storage Practices for Pharmaceuticals, TRS 908 Annex 9: https://iris.who.int/bitstream/handle/10665/42613/WHO_TRS_908.pdf
- SAP Help Portal, Expiration Date Check for Materials Handled in Batches: https://help.sap.com/docs/SAP_S4HANA_ON-PREMISE/91b21005dded4984bcccf4a69ae1300c/c763bd534f22b44ce10000000a174cb4.html
- SAP Help Portal, Calculating and Checking the Shelf Life Expiration Date: https://help.sap.com/docs/SAP_S4HANA_CLOUD/32da8359c8ee4e8b8e8c5e15cacba5aa/1effb753128eb44ce10000000a174cb4.html
- European Commission, EudraLex Volume 4, Chapter 5 Production: https://health.ec.europa.eu/document/download/4a1fdb4f-6f6f-49c4-b264-8056e5bbe078_en?filename=chapter_5.pdf