Expiry Date Tracking Software
Record expiration dates per batch as stock arrives, get alerted before anything goes bad, and pick nearest-dated lots first with FEFO. This guide covers how expiry tracking works, when FIFO and FEFO disagree, and how to stop expired product from shipping by accident.
Lot-level dates · FEFO picking · Alerts by category
01 — What it is
A date on the lot — not a guess on the carton
Expiry date tracking records when stock expires or stops being usable, so the system can warn you in advance, prioritize older-dated stock for picking, and stop expired goods from shipping out. Dates are usually recorded at the batch level, because every unit in the same production run typically shares one expiry.

Date on the lot
Expiry lives with the batch at receiving — not a sticky note on the fridge.
FEFO at pick
Staff see which lot to take first. Nearest expiry wins, even if it arrived later.
Alerts by category
Produce gets 7 days; shelf-stable gets 90. One global threshold fails both.
Block past-date stock
A sale or shipment of an expired lot should fail loudly, not slip through.
Sort the catalog by what dies next
Standalone date lists drift the moment a new shipment lands. Teams managing perishable or regulated SKUs need remaining quantity, lot, and days-to-expiry on the same record they already use to receive and pick.
- Expiry captured with the lot at receiving
- Item list sortable by nearest expiry
- Use-first flags for short-dated stock
- Works across every warehouse or clinic location
02 — Why it matters
Expired stock is usually a process failure, not bad luck
Without expiry tracking, past-date product is often discovered during a physical count — long after it stopped being sellable. With dates on the lot and alerts tied to those dates, staff can discount, bundle, or return stock while it still has a path.
Write-offs you never saw coming
CostExpired stock found at year-end was usually sellable weeks earlier — if anyone had been warned.
Safety and compliance
RiskFood, pharmacy, and cosmetics businesses cannot afford an accidental out-of-date sale.
Waste you can prevent
WasteFEFO plus early alerts move short-dated stock while it still has a path: discount, bundle, or return.
Act while the product still has a path
An alert that fires the morning something expires is theatre. Thresholds that fire days or weeks earlier create room to discount, kit, return, or move stock between locations — write-off is the last option, not the default.
- Discount or promo short-dated retail stock
- Bundle soon-to-expire with a faster mover
- Return to vendor when terms still allow it
- Write off only after the other paths are closed
Grocery & food retail
Cold chain & produce
Move perishable stock with FEFO and catch soon-to-expire items before they become unsellable waste.
Pharmacy & healthcare
Regulated medicines
Meet traceability expectations and stop expired medication from being dispensed or shipped.
Cosmetics & supplements
Shelf-life batches
Track best-before dates across lots and keep out-of-date product off the shelf and out of kits.
03 — Receive with dates
If the date is not captured at receiving, FEFO is a poster
Rotation rules only work if staff can see which unit to pick — a date on the pick list, not a rule they are expected to eyeball in a fridge. Batch or lot tracking with expiry captured at receiving is what makes that possible.
Lot number and expiry on the same receive step
Assign the supplier lot (or your own), enter the use-by date, and confirm quantity into the right location. Skipping the date to “fix later” is how short-dated cases disappear behind longer-dated ones.
- One lot · one shared expiry for the batch
- Location recorded with the receipt
- Immediate visibility on the dated-stock list
Expiry without a lot is half a system
A single SKU can hold several active lots at once, each with its own quantity and date. Keeping them separate is what lets you pick the short-dated case and quarantine a recalled shipment without freezing the whole product.
How lots and dates pair: batch & lot tracking.
04 — Software types
Sticky notes, spreadsheets, or built into inventory software
A clipboard works for one fridge and fails the moment a second location or a second shift appears. Spreadsheets sit in the middle. Inventory software with lot-level dates is the strongest option for ongoing operations because the pick list always matches the current record.
Sticky notes / clipboard
A single fridge- Fast for one person
- No alert when you are away
- No lot trail for an audit
Spreadsheet
First rollout- You can list SKUs and dates
- Goes stale the next receipt
- No live FEFO pick order
Inventory software
Ongoing operations- Lot + expiry on the live record
- FEFO picks and category alerts
- Block sales of expired lots
| Capability | Sticky notes | Spreadsheet | Inventory software |
|---|---|---|---|
| Lot-level expiry | No | Manual | Yes |
| FEFO pick order | No | No | Yes |
| Category alert windows | No | Reminders? | Yes |
| Block expired sales | No | No | Yes |
| Multi-location rollup | No | Fragile | Yes |
Record expiry on every dated receipt
StockFlow captures lot and expiry at receiving, surfaces short-dated stock for FEFO picking, and helps stop expired lots from shipping.
05 — FEFO picking
Pick nearest expiry, not oldest receipt
FIFO picks the oldest received stock first. FEFO picks the unit nearest its expiry date first — regardless of when it arrived. For anything with a shelf life, FEFO is the rule that actually reduces waste.
The pick list should show the short-dated lot first
When expiry is on the lot, staff do not need to dig for a stamp on the carton. The system points at the use-first case, and longer-dated stock waits its turn.
When FEFO and FIFO disagree, FEFO wins
They usually agree. They diverge when a newer batch has a shorter shelf life than an older one still on the shelf — common when suppliers rotate manufacturing dates. Picking FIFO in that case sells the long-dated lot and leaves the short-dated lot to expire.
- FIFO — oldest received, picked first (default for non-perishables)
- FEFO — nearest expiry, picked first (anything with a shelf life)
- Override FIFO when a newer lot is shorter-dated
- Record expiry per lot at receiving so pickers are not guessing
Rotation rules in plain language: FIFO, LIFO & FEFO.
06 — Alerts
Different products need different warning windows
A single “alert 30 days before expiry” setting treats salad mix and vitamin bottles the same — which means one category gets warned too late and the other gets noise. Configure thresholds per category so staff have time to act.
Fast perishables
~7 days out
Produce, prepared foods, short-dated dairy. Alert early enough to discount or use internally — not the morning it dies.
Chilled & pharmacy
~14–30 days out
Enough runway to rotate stock, return to a supplier, or move between locations before the date hits.
Shelf-stable
~60–90 days out
Supplements, cosmetics, dry goods. Longer windows stop slow movers from quietly becoming write-offs.
Category thresholds, not one global timer
Fresh produce, dairy, pharmacy, and shelf-stable goods each get their own warn-before window. When lots enter that window, they surface on the expiry review so someone can discount, move, or return them.
See what is coming due across every location
Short-dated stock trapped in one clinic or van while another site is clean is still waste. A location rollup shows where the pressure is so you can transfer or prioritize picks before the date hits.
Broader alert patterns: inventory alerts & notifications.
07 — Block expired
The last line of defence is a hard stop
Alerts and FEFO reduce how often stock reaches a past date. When it still happens, the sale or shipment should fail — not quietly go out with yesterday's lot because someone scanned the wrong case.
Flag or block past-date lots at the point of sale
StockFlow can surface expired lots so staff choose an in-date batch or write off residual stock instead of shipping a compliance problem. Blocking is not a substitute for alerts — it is what catches the miss.
- Expired lot cannot complete a normal sale or ship
- In-date lots of the same SKU remain available
- Residual quantity can be quarantined or written off
08 — On the floor
Receive with a date, pick FEFO, act on alerts
Consistency of process outperforms switching tools for minor UI preferences. Revisit thresholds when you add a cold room, a pharmacy line, or a supplier whose lots regularly arrive shorter-dated than the stock you already hold.
Capture lot + expiry at receiving
Every date-sensitive SKU gets a lot number and an expiry (or “no expiry”) before it reaches a shelf.
Set alert thresholds by category
Do not use one global window. Produce and shelf-stable goods need different lead times to act.
Pick FEFO, not whatever is in front
The pick list shows nearest expiry first. Override FIFO when a newer lot is shorter-dated.
Act on alerts before write-off
Discount, bundle, return, or quarantine. Blocking expired sales is the last line — not the first plan.
Quality checklist after every zone
Scan a sample of lots in the cold room or pharmacy cage: the label date matches the lot record, FEFO pick is the short-dated case, and anything past date is quarantined — not left on a pick face for the next shift to discover.
- Record lot + expiry on every receipt of dated goods
- Sort or filter the item list by nearest expiry weekly
- Pick nearest expiry even when that lot arrived later
- Quarantine past-date lots — do not leave them on a pick face
- Confirm the label date matches the lot record after labeling
- Review multi-location rollups so one site does not hoard short-dated stock
Date at receiving
“Fix later” is how short-dated cases hide behind longer-dated ones.
Export is a snapshot
Mail-merged expiry lists go stale the next time a shipment arrives.
One SKU, many lots
Never create a second item because the package or date changed.
Frequently asked questions
What is expiry date tracking in inventory management?
Expiry date tracking records the expiration or use-by date for stock as it is received, so the system can warn you before items expire, prioritize picking older-dated stock first, and prevent expired goods from being sold or shipped. It matters most for food, medicine, cosmetics, and other date-sensitive products.
What is FEFO and how does it relate to expiry tracking?
FEFO (First-Expired-First-Out) always selects the stock closest to its expiration date first, regardless of when it arrived. Expiry date tracking is what makes FEFO possible — without recorded expiry dates per batch, there is no way to know which stock should go out first.
How early should I get alerted before stock expires?
It depends on the product and how it is sold. Many businesses set alerts 30–90 days before expiry for slower-moving goods, and as little as 7 days for fast-turnover perishables. Thresholds should be configurable per product category so fresh produce and shelf-stable goods are not treated the same way.
Does expiry tracking work with batch or lot tracking?
Yes. Expiry dates are normally tracked at the batch or lot level, since all units in the same batch usually share the same expiry date. Batch numbers and expiry dates together support FEFO picking and targeted recalls.
What happens to stock that expires before it is sold?
Without tracking, expired stock is often discovered during a physical count — long after it became unsellable. With expiry tracking and proactive alerts, staff can discount, bundle, or return soon-to-expire stock before it is wasted, which directly reduces write-offs and shrinkage.
Which businesses need expiry date tracking most?
Grocery and food retail, restaurants and food service, pharmacies and healthcare, and cosmetics or supplement sellers all depend on expiry tracking to avoid selling out-of-date products, meet health regulations, and minimize waste.
Can expiry tracking prevent selling expired products by accident?
Yes. When expiry dates are tracked, the system can block or flag a sale or shipment of stock that has already passed its expiration date, preventing accidental sales of expired goods and the compliance and reputational risk that comes with them.
When should I use FEFO instead of FIFO for expiry tracking?
Usually, because older receipts are often closer to expiry. They diverge when a newer batch has a shorter shelf life than an older one still on the shelf. In that case FEFO overrides FIFO so the short-dated lot moves first. Perishables should follow FEFO, not FIFO by default.
Should every SKU have an expiry date?
No. Capture expiry (or an explicit “no expiry”) on date-sensitive and regulated SKUs. Non-perishable hardware does not need a date field cluttering receiving. The habit that matters is: if a product can go bad or lose potency, the date is recorded with the lot at receiving — not guessed later from a carton label.
Is StockFlow free for expiry date tracking?
Yes. Expiry dates on lots, FEFO-oriented picking, and related inventory alerts are available on StockFlow’s free Starter plan. You do not need a separate perishable-inventory product to start recording dates and acting before stock dies.
Track expiry dates and pick FEFO in one free platform
StockFlow records lot-level expiry at receiving, surfaces short-dated stock for FEFO picking, and helps stop expired product from shipping — no separate perishable system required.