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.

Lot-level tracking
Expiration dates tracked at lot or serial level in NetSuite
FEFO allocation
Earliest-expiring lots automatically assigned to fulfillments
Expired lot blocking
Expired inventory blocked from allocation and shipment automatically
Expiry alerts
Proactive notifications before lots reach expiry thresholds

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.

1

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.

Lot receipt capture Mandatory validation Date format enforcement
2

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-sorted allocation Customer shelf-life rules Multi-lot fulfillment
3

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.

Expired lot quarantine Approaching-expiry alerts QA notification
4

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.

Days-to-expiry report Write-off history
Lot Traceability & Audit Trail
Every lot's expiration date, allocation history, blocking event, and disposition is recorded in NetSuite.
A lot traceability report links each lot to its receipts, fulfillments, and any quarantine or write-off actions — providing the documentation required for regulatory inspections and customer audits.
Lot traceability report Disposition history Regulatory audit pack
Configurable per-item and per-customer rules
Expiry warning thresholds, minimum remaining shelf-life requirements, and quarantine rules are configurable per item or customer — supporting complex scenarios where different products or trading partners have different requirements.
Integration with WMS or 3PL systems can extend FEFO enforcement into physical picking operations.
Per-item thresholds Customer shelf-life rules WMS integration Multi-warehouse

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.
Talk to us about expiration date management

Explore more capabilities on the NetSuite Solutions hub or read about our customization services.