Inventory practice

FEFO expiration tracking — what it is, why pharmacies need it, what to look for.

FEFO stands for First Expired, First Out. It's the inventory rotation principle that says you dispense (or pull, or use, or return) the package that expires soonest, regardless of when it arrived on your shelf. For pharmacies, FEFO is non-negotiable — and the tools that surface it cleanly are surprisingly hard to find.

FEFO vs FIFO

Most general inventory systems are built around FIFO (First In, First Out): the oldest received stock leaves first. That's fine for non-perishable goods, but it's wrong for pharmaceuticals. Two scenarios:

FIFO and FEFO produce the same answer when expiration dates correlate cleanly with arrival date, which they don't, especially in a pharmacy where you're juggling lot rotations, manufacturer back-orders, and wholesaler short-dated specials.

What good FEFO software looks like

The minimum bar for "FEFO-aware" software is a list of inventory sorted by expiration date ascending. Beyond that, the things that actually move the needle:

How RxRescue does FEFO

The dashboard sorts by expiration date ascending by default — the most urgent bottles are at the top. Each row shows the badge color, drug name (resolved from a products catalog), lot, serial, expiration date in days-to-expiry format, and a "Mark Pulled" action. Filter chips let you switch between "All," "Below PAR," "Narcotics," and "Refrigerated" instantly.

Thresholds are set in Settings → Display:

Both thresholds are validated (red < yellow, yellow ≤ 730 days) and persisted per-pharmacy. Bumping them to 90/180 for institutional use takes 5 seconds.

Auto-expiration sweep

Once a bottle's expiration date passes, it's no longer eligible for any wholesaler's saleable-return credit window — and depending on the medication, may be hazardous to keep on the active shelf. RxRescue runs a daily sweep at app startup that automatically transitions any bottle whose expiration date is in the past from "Active" to "Expired." Expired rows drop off the active dashboard but stay in the audit log forever, so the post-expiry waste-disposal report is generated from real data, not memory.

The sweep runs once per calendar day, debounced via a per-device flag so the same bottle isn't auto-expired twice. It respects the same license-gate read-only mode that blocks manual writes, so an expired-license install can't accidentally rewrite expiration history.

Where FEFO connects to credit recovery

FEFO is the visibility piece. The action piece is pulling expiring stock for wholesaler return before the credit window closes. The two are the same workflow viewed from different angles, and we cover the credit-window mechanics in detail in our pharmacy returns guide.

Start a 30-day free trial →

Related