Expiration Date Management (FEFO)
What it does
This NetSuite customization enforces First-Expiry-First-Out (FEFO) inventory management — automatically tracking expiration dates at the lot or serial number level, prioritizing earliest-expiring stock for fulfillment, blocking expired lots from being allocated or shipped, and alerting warehouse and procurement teams as inventory approaches expiry.
Companies in food, pharmaceutical, cosmetics, and chemical industries rely on FEFO to reduce waste, prevent shipping expired product, and maintain regulatory compliance. This solution embeds FEFO logic directly into NetSuite fulfillment and pick workflows — removing the manual lot selection that leads to FIFO-instead-of-FEFO errors, customer complaints, and potential compliance violations.
Common use cases
FEFO and expiration date management in NetSuite is critical for any industry where product age affects safety, quality, or regulatory compliance.
Food & Beverage
Enforce FEFO across perishable product lines to minimize write-offs, prevent shipping expired goods to retail customers, and maintain compliance with food safety regulations that require lot traceability and rotation documentation.
Pharmaceutical & Nutraceuticals
Track lot expiration dates with the precision required by FDA and GMP regulations — blocking expired lots, generating expiry-approaching alerts for QA review, and maintaining a complete chain of custody for each lot in NetSuite.
Chemicals & Specialty Materials
Manage shelf-life constraints for chemicals, adhesives, and specialty materials where potency or stability degrades over time — ensuring that oldest-expiring lots are consumed first and that expired stock cannot be issued to production.
Expiry-Driven Write-Off Reduction
Alert procurement and operations when lot inventory is approaching expiry with insufficient demand to consume it — enabling markdowns, transfers, or promotional actions before the inventory crosses into waste-off territory.
Retailer Shelf-Life Requirements
Enforce minimum remaining shelf-life rules per customer or trading partner — automatically validating that lots assigned to a fulfillment meet the customer's minimum acceptable remaining life before the pick list is generated.
Regulatory Audit Readiness
Maintain a complete, lot-level record of expiration dates, disposition decisions, and fulfillment assignments in NetSuite — providing the traceability documentation required for FDA inspections, customer audits, and recall investigations.
How it's built
FEFO logic extends NetSuite's native lot tracking with SuiteScript and SuiteFlow — enforcing expiration-based allocation at the fulfillment and pick level without external warehouse systems.
Expiration Date Capture
Custom fields and validation scripts ensure expiration dates are captured at lot receipt — mandatory on purchase receipts and manufacturing work orders, with validation preventing lot creation without a date.
FEFO Allocation
A SuiteScript User Event Script intercepts fulfillment creation — sorting available lots by expiration date ascending and automatically assigning the earliest-expiring lots to meet the order quantity, overriding default NetSuite lot selection.
Expiry Blocking & Alerts
A daily Scheduled Script scans all lot inventory — blocking expired lots from allocation, moving them to a quarantine status, and sending alerts to warehouse and QA teams for lots approaching the configured expiry warning threshold.
Expiry Reporting
Saved searches and a lot aging dashboard show all inventory by days-to-expiry, highlight lots in the warning window, and report on historical write-offs and near-miss events — giving procurement and operations the data to reduce future losses.
Before → After
Before
- Lot expiration dates are tracked in spreadsheets or not at all — warehouse staff rely on visual inspection or memory to select the correct lot for fulfillment.
- FEFO is a policy intention rather than an enforced system control — wrong lots are regularly picked because NetSuite does not guide pickers to the earliest-expiring stock.
- Expired inventory is not blocked in NetSuite — it can be allocated and shipped until someone notices, creating regulatory and customer recall risk.
- Approaching-expiry lots are discovered only during cycle counts or when a write-off is inevitable — proactive markdown or redistribution opportunities are missed.
- Retailer shelf-life minimum requirements are checked manually before shipment — an inconsistent process that occasionally allows non-compliant shipments through.
- Lot traceability documentation for regulatory audits or customer requests requires significant manual compilation from multiple sources.
After
- Expiration dates are captured at lot receipt and stored in NetSuite — the system of record for all lot expiry information, not a spreadsheet.
- FEFO is enforced automatically at fulfillment creation — the earliest-expiring lots are always assigned first, regardless of how the picker or planner selects inventory.
- Expired lots are automatically quarantined and blocked from allocation — they cannot be shipped without a deliberate override with documented approval.
- Warehouse and QA teams receive automated alerts as lots approach the expiry warning window — time to act on markdowns, transfers, or disposal before write-off.
- Customer shelf-life minimum requirements are validated automatically at fulfillment — non-compliant lot assignments are rejected before the pick list is generated.
- Complete lot traceability is available in NetSuite on demand — regulatory audits and customer inquiries are answered in minutes rather than days.
Explore more capabilities on the NetSuite Solutions hub or read about our customization services.