INVENTORY

Shelf Life Expiry & FEFO Inventory Planner

Estimate lot-level consumption before expiry or an earlier dispatch cutoff, sharing each SKU demand stream once across its FEFO stock lots.

Shelf-life / expiry planning calculator

Estimate lot-level consumption before expiry or an earlier dispatch cutoff, sharing each SKU demand stream once across its FEFO stock lots.

How it works
lot_id, sku, expiry_date, quantity, unit_cost, daily_demand1,000 rows maximum

Adjust the example values to match your scenario.

YOUR RESULT LIVE CALCULATION
Stock not covered before its dispatch cutoff
$1,050at-risk value
FEFO SCENARIO AS OF 2026-10-17
Covered inventory value$2,120
At-risk inventory value$1,050
Total entered inventory value
$3,170
Expected value consumed before cutoff
$2,120
Already expired value
$50
Unexpired stock already within buffer
$0
At-risk lots / all lots
3 / 4
Distinct SKU demand streams
3

All stock is assumed available on the as-of date. Demand is shared once across lots of each SKU. The cutoff date itself is excluded; expiry minus buffer defines that cutoff. Equal-expiry lots retain CSV order. Fractional expected units are not dispatch instructions.

FEFO allocation: earliest expiry first

4 rows
LotSKUExpiry dateDispatch cutoffQuantityDaily SKU demandUsable daysExpected consumedAt-risk unitsStock valueAt-risk valueStatus
LOT-CSKU-B2026-10-152026-10-1510500105050Expired
LOT-ASKU-A2026-10-202026-10-2010020360401,000400At risk
LOT-BSKU-A2026-10-272026-10-272002010140602,000600At risk
LOT-DSKU-C2026-11-162026-11-16302303001200Covered
BEHIND THE NUMBER

How the calculation works

All entered lots are assumed available now. Lots are processed earliest-expiry-first, using one constant daily demand per SKU rather than multiplying demand for every lot. Demand must match across all rows of a SKU. The cutoff date itself is excluded: a lot expiring tomorrow with zero buffer has one usable day today. Earlier expired or blocked lots do not consume demand capacity. Equal-expiry lots retain CSV order.

Cutoff = expiry date - buffer; capacity by cutoff = daily SKU demand x usable days; covered lot quantity = min(lot quantity, max(capacity - prior FEFO allocation, 0))

When this calculation helps

Plan lot consumption against one shared SKU demand stream so the same future demand is not used to justify every lot independently. An earlier dispatch buffer can expose stock that expires before it can be supplied.

Check the interpretation

A FEFO simulation does not guarantee future demand or establish a product release decision. Check quality holds, customer minimum remaining shelf life, and receipt certainty. Potential unused quantity is a review indicator, not permission to ship restricted stock or write off inventory.

This is a deterministic inventory scenario, not a quality release, safety assessment, expiry extension, or dispatch instruction. Confirm manufacturer dates, storage conditions, minimum customer shelf life, and local definitions. It excludes replenishment, uncertain demand, backlog, and quality holds. Keep units consistent within each SKU; fractional expected consumption is permitted.

Microsoft shelf-life planning and FEFO reference

Good to know

Does each lot get its own full daily demand?

No. Demand is shared across the SKU, so two lots cannot both claim the same future demand.

Is stock usable on the printed expiry date?

This model conservatively excludes the expiry date itself, or the earlier buffer cutoff. Apply your confirmed product and contractual definitions separately.