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.

Track expiry dates free

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-sensitive inventory on shelves that needs lot-level expiry tracking

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
Dated stock · item list
Sorted by nearest expiry
2 use-first
Salad mix 500g
PER-0502
4 days
Organic milk 1L
DAI-0101
18 days
Vitamin C 500mg
SUP-2204
74 days
Amoxicillin 250mg
PHA-4410
11 days

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

Cost

Expired stock found at year-end was usually sellable weeks earlier — if anyone had been warned.

Safety and compliance

Risk

Food, pharmacy, and cosmetics businesses cannot afford an accidental out-of-date sale.

Waste you can prevent

Waste

FEFO 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
Before it becomes waste
LOT-2209 · 4 days
Discount / promo
Move short-dated retail stock before it dies
Bundle or kit
Pair soon-to-expire with a faster mover
Return to vendor
If purchase terms still allow it
Write off
Only after the other paths are closed
Alert fired 7 days out — time to act

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
Receive · Organic milk 1L
Step 2 of 3
Lot
LOT-7730
Expiry
25 Sep 2026
Qty 48 · Cold room AConfirm receive
Salad mix 500g
LOT-2209
11 Sep
Nitrile gloves M
LOT-8841
18 Sep
Syringe 5ml
LOT-5510
8 Nov

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.

Trace LOT-2209
Salad mix 500g
Received 8 Sep · 24 units
Expires 11 Sep · shared by lot
6 remaining · flagged use-first
One lot number · one expiry date · one pick rule

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
“Use milk first — expires Friday?”
No lot · no alert · no audit trail
  • Fast for one person
  • No alert when you are away
  • No lot trail for an audit

Spreadsheet

First rollout
SKU
Expiry
Notes
PER-0502
??/??
Check fridge
PHA-4410
—
Box label?
  • You can list SKUs and dates
  • Goes stale the next receipt
  • No live FEFO pick order

Inventory software

Ongoing operations
LOT-2209Use first
Salad mix 500g · 6 remaining
Expires in 4 daysPick this lot
  • Lot + expiry on the live record
  • FEFO picks and category alerts
  • Block sales of expired lots
CapabilitySticky notesSpreadsheetInventory software
Lot-level expiryNoManualYes
FEFO pick orderNoNoYes
Category alert windowsNoReminders?Yes
Block expired salesNoNoYes
Multi-location rollupNoFragileYes

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.

No credit card required
Free Starter plan
Cancel anytime

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.

Pick list · FEFO
Nearest expiry first — not oldest receipt
2 due this week
Salad mix 500g
LOT-2209
4 days
Nitrile gloves M
LOT-8841
11 days
Organic milk 1L
LOT-7730
18 days
Syringe 5ml
LOT-5510
62 days

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
FIFO would pick
LOT-1090
Received 1 Mar · expires 15 Oct
Oldest receipt — longer shelf life
FEFO picks
LOT-2209
Received 8 Sep · expires 11 Sep
Shorter dated — use first

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.

Alert thresholdsPer category
Fresh produceWarn 7 days out
Dairy & chilledWarn 14 days out
Pharmacy RxWarn 30 days out
Shelf-stableWarn 90 days out
3 lots enter the alert window this week

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.

Due in 7 days
3
Due in 30 days
11
Locations
3
Expiry by location
Main · Cold A2 lots
Clinic B1 lot
Van 12Clear

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
Sale blocked
Amoxicillin 250mg
LOT-3301 · expired 2 days ago
This lot is past its expiry date. Choose an in-date lot or write off residual stock.
LOT-4410
11 days left
LOT-3301
Expired

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.

1

Capture lot + expiry at receiving

Every date-sensitive SKU gets a lot number and an expiry (or “no expiry”) before it reaches a shelf.

2

Set alert thresholds by category

Do not use one global window. Produce and shelf-stable goods need different lead times to act.

3

Pick FEFO, not whatever is in front

The pick list shows nearest expiry first. Override FIFO when a newer lot is shorter-dated.

4

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
Cold room A verification
1 quarantine
LOT-2209
FEFO pick confirmed
LOT-8841
Expiry matches label
LOT-3301
Past date — quarantine
LOT-7730
Alert threshold set
LOT-5510
Location match
Scan five random lots after every zone

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.

No credit card required
Free Starter plan
Cancel anytime