Perishable Inventory Calculator with FEFO and Expiration Control

Perishable spoilage can represent up to 15% of your purchases. Every kilo in the trash is lost margin.

  • Instant result
  • No sign-up
  • Visible assumptions
  • Deterministic calculation

In 30 seconds: Model the full cycle from purchase to expiration and find the exact order quantity that minimizes spoilage. Deterministic calculation with auditable formulas. The result is indicative — adjust the assumptions to reflect your real operation.

For perishable inventory, the classic EOQ model understates the real holding cost by ignoring spoilage. The effective holding cost is: H_effective = H_classic + (Spoilage rate × Unit cost × 365 / Shelf life). If your product costs $40, lasts 7 days, and observed spoilage is 5%, the effective holding cost goes from $14/year to $14 + (0.05 × 40 × 52) = $118/year — 8x more. This calculator gives the theoretical EOQ; adjust H if real spoilage exceeds 2%.

Methodology

Average daily demand = Annual demand ÷ 365

EOQ = √((2 × Annual demand × Order cost) ÷ Holding cost per unit/year)

Safety Stock = Z × σ × √Lead time (days)

Reorder Point (ROP) = (Daily demand × Lead time) + Safety Stock

Total annual cost = (Demand ÷ EOQ × Order cost) + (EOQ ÷ 2 × Holding cost) + (Safety Stock × Holding cost)

Variables

Annual Demand
Units sold or consumed in a year for the SKU.
Order Cost
Administrative and logistics cost of placing an order (regardless of size).
Holding Cost
Annual cost of keeping one unit in stock (storage, tied-up capital, insurance, obsolescence).
Lead Time
Days between placing the order and receiving it.
Daily Standard Deviation
Observed variability in daily demand — how much it fluctuates day to day.
Service Level
Target probability of not stocking out during lead time (90%, 95%, 97.5%, 99%).

Practical example

Butcher shop with annual demand of 9,000 kg of steak (25 kg/day), unit cost $180/kg, 14-day shelf life, 5-day lead time, $600 order cost (receiving, counting, freezer).

Classic holding cost (15% of unit cost): $27/kg/year. Applying observed 4% spoilage: H_effective = 27 + (0.04 × 180 × 365 ÷ 14) = $215/kg/year.

EOQ with classic H: √(2 × 9,000 × 600 ÷ 27) = 632 kg → 25 days of inventory, exceeds shelf life. Theoretical result not applicable.

EOQ with effective H: √(2 × 9,000 × 600 ÷ 215) = 224 kg → 9 days of inventory, within shelf life but tight.

Right decision: order 175-200 kg every 7 days (fixed interval) instead of following EOQ. Safety stock: 25 × 5 = 125 kg base + 1.65 standard deviations = 152 kg for 95% service level.

Operating recommendation: if spoilage exceeds 6%, the primary lever is lowering order quantity and raising frequency (from weekly to twice weekly). Every 1% point of spoilage cut = $4,500 annual savings in this profile.

Interpretation

EOQ minimizes the total cost between ordering and holding. Orders below EOQ raise ordering cost; above EOQ raise holding cost.

Raising the service level from 95% to 99% usually increases safety stock 30-50%. Only worth it if the cost of a stockout (lost sale + lost customer) exceeds the extra inventory cost.

Long or variable lead time is the main driver of safety stock. Cutting supplier lead time in half can reduce your safety stock by 30%.

If your calculated ROP is above the inventory you usually carry, you're at recurring risk of stockout. If it's much lower, you're over-stocking.

Assumptions and limitations

  • Assumes independent, normally distributed demand (valid for SKUs with a stable history; fails for new or highly seasonal products).
  • Assumes a fixed, known lead time (lead-time variability can also be modeled but needs more data).
  • Assumes constant ordering and holding costs — no volume discounts or warehouse capacity limits.
  • The Wilson EOQ model doesn't consider warehouse capacity constraints or product shelf life (perishables need different models).

When to use this calculator

  • For A-class SKUs (high volume, high rotation): the difference between theoretical EOQ and operating EOQ translates directly into thousands in avoidable cost.

  • When a supplier changes price, lead time or minimum order — recalculate EOQ and ROP to adjust the purchasing policy.

  • Before negotiating annual contracts: EOQ tells you the optimal order size to use as an anchor in negotiations.

  • To set reorder points in WMS or ERP systems: many businesses operate with inherited ROPs with no statistical basis.

  • When evaluating a supplier with a shorter lead time: quantify the safety stock savings that could justify a higher unit cost.

Common mistakes

  • Using average demand without measuring the standard deviation. Without volatility, safety stock is zero and stockout risk is huge.

  • Ignoring the cost of capital when calculating holding cost. In high-rate environments, tied-up capital can represent 60% of holding cost.

  • Applying EOQ to perishables without adjusting for shelf life — you'll end up ordering quantities that expire before selling.

  • Defaulting service level to 99%. Low-contribution products don't justify such expensive safety stock; segment by margin.

Industry use cases

Fruits and vegetables

Shelf life 5-14 days. Theoretical EOQ almost always needs truncation: the practical rule is to never order more than what you sell in 70% of shelf life. Weak cold chain multiplies spoilage 2-3x — investing in calibrated thermometers (~$800 USD one-time) typically pays back in under 60 days.

Dairy and meat

Shelf life 14-30 days. EOQ applicable with strict FIFO adjustment. Real holding cost includes spoilage from expired product (typically 3-7%). Front-facing earliest-expiration display cuts spoilage 30-40%.

Frozen products

Shelf life 90-180 days. Traditional EOQ applies well. High holding cost (refrigeration) — typically 30-45% per year. A 2°C variation at the freezing point accelerates oxidation 2x; continuous monitoring is direct ROI.

Bakery / pastry

Shelf life 1-3 days for fresh, 7-14 days packaged. EOQ barely applies for fresh (daily production), but fits well for dry inputs. Pre-selling 30% of next-day product via WhatsApp Business cuts spoilage from 12% to 4% in observed bakeries.

Methodology and assumptions

How results are calculated, what we assume when modeling, and where the method loses precision.

Formula

EOQ = √(2·D·S ÷ H) · ROP = d × LT + Safety stock

Assumptions

  • Annual demand D known and reasonably stable.
  • Order cost S and holding cost H expressed in the same currency and time unit.
  • Deterministic lead time LT; safety stock covers variance.

Applicability limits

  • EOQ assumes instant replenishment — for in-house production use the EPQ variant.
  • When demand is seasonal the formula understates peak inventory.
  • Volume discounts are not included: evaluate the quantity discount separately.

Sources

  • Harris, F.W. (1913) — How Many Parts to Make at Once (origin of the EOQ formula).
  • APICS / ASCM — CPIM Body of Knowledge on inventory and demand.

You calculated EOQ and ROP. Now quantify how much capital is locked in inventory month over month in your cash flow. Advanced Cash Flow Simulator

Want to go beyond the quick calculation?

Sign up to access advanced simulators with multiple scenarios, data export, and detailed projections.

No spam. Just early access to the perishable inventory management simulator.

Complete guide

The real cost of shelf life

In perishables — dairy, meat, seafood, produce, bakery, flowers, refrigerated pharma — inventory isn't measured in units: it's measured in units × days of remaining shelf life. A gallon of milk with 14 days of shelf life is worth more today than tomorrow, and zero on day 15. The real cost of shelf life isn't the accounting write-off at expiration; it's the combination of (a) last-day forced markdown, (b) physical spoilage before sale, (c) opportunity cost of refrigerated space tied up by old product, and (d) brand damage when the customer buys product at 80% of its life and finds it 'already close to expired' at home.

Industry benchmarks (Nielsen Fresh Categories Scan 2024 + IDFA Dairy Industry Report 2024):

  • Fluid dairy: total shrinkage 4.5–7.8% of volume acquired.
  • Fresh meat: 6.5–11%.
  • Seafood: 8–14%.
  • Produce (fruit + vegetables): 10–18%.
  • Industrial bakery: 5–9%.
  • Refrigerated ready-to-eat: 7–12%.

One percentage point of shrinkage on a US$5M annual category represents US$50K of net loss — and typically 5–8 percentage points of operating margin.

FEFO vs FIFO: when to use each

FIFO (First In, First Out) sells first what entered first. It works well when inventory receipt matches production date and there's no large shelf-life variability across lots. It's the default in warehouses without granular expiration-date visibility.

FEFO (First Expired, First Out) sells first what expires first, regardless of when it entered. It is superior when there are:

  • Multiple suppliers with different useful lives
  • Lots with variable production dates arriving out of order
  • Field harvest (fruit, vegetables) where the freshest lot may be yesterday's due to logistics
  • Refrigerated pharma where regulation requires lot traceability

FEFO requires a WMS or POS that captures expiration date at lot level and suggests picking in that order. Operations that migrate from FIFO to FEFO report shrinkage reductions of 20–35% in categories with high shelf-life variability (Nielsen Fresh 2024).

Cold chain and temperature excursion

The cold chain is the continuous maintenance of target temperature from production to consumption. Temperature excursion is any deviation outside the allowed range — and every minute outside range accelerates deterioration exponentially.

Critical ranges (IDFA + HACCP frameworks):

  • Refrigerated dairy and meat: 0–4°C. Every hour above 7°C cuts shelf life by ~12 hours.
  • Frozen: –18°C or below. Excursion above –12°C initiates irreversible recrystallization.
  • Refrigerated pharma (vaccines, insulin): 2–8°C. Out of range >30 min forces quarantine and potency testing.
  • Climacteric fruit (banana, mango): 12–14°C. Below 10°C chilling injury appears.

The most frequent excursion causes in retail: doors left open during peak restocking, poorly programmed defrost cycles, case overloading (airflow blocked), and transport without a data logger to claim against the supplier when the lot arrives warm.

Shrinkage and spoilage: how to measure them

Shrinkage is the gap between book and physical inventory — it includes spoilage, waste, theft, and capture errors. Spoilage specifically is the portion lost to physical deterioration or expiration.

Operational formulas:

  • Shrinkage % = (Book inventory − Physical inventory) ÷ Sales × 100
  • Spoilage % = Units written off for expiration or deterioration ÷ Units received × 100
  • Sell-through before expiration = Units sold before last day ÷ Units received × 100

A monthly audit against the system, segmented by category and by supplier, lets you attribute shrinkage to its real cause. The common mistake is aggregating everything under 'shrinkage' — which hides which supplier is arriving with short shelf life, which category has insufficient turnover, and which shift generates more mishandling.

Benchmarks by category (fresh, dairy, frozen)

From Nielsen Fresh Categories Scan 2024 and IDFA 2024:

  • Fluid dairy: shrinkage 4.5–7.8%. Best-in-class operations <3.5%.
  • Dairy yogurt/cultured: 3–6%.
  • Beef/pork meat: 6.5–11%. Best-in-class 4–5%.
  • Fresh poultry: 8–13%.
  • Seafood: 8–14%. High variance; the toughest category.
  • Produce: 10–18%. US retail leaders run 7–9% with AI-driven ordering + FEFO.
  • Frozen all: 2–4%.
  • Industrial bakery: 5–9%.
  • Artisan in-store bakery: 12–20% (by design — abundant display sells but wastes).

Real case: a dairy distributor cut spoilage from 7.8% to 3.1%

Lácteos Cordillera is a Chilean B2B distributor with a Santiago DC moving 1.8M liters/month of milk, yogurt, and cheese to 340 retailers and foodservice across the metro region. 2023 shrinkage: 7.8% of received volume — equivalent to US$340K/year in written-off product.

The simulator diagnosis identified four concurrent problems. First, supplier orders based on 30-day moving average without adjusting for real route forecasts; result: DC inventory at 2.4 days average age at picking (should be <1 day for fluid dairy). Second, strict FIFO on lots from multiple suppliers with variable shelf life (14 vs 18 days); short-life lots stacked up and expired in the DC. Third, two of the five distribution trucks had no active data logger; the quality-claim lot analysis showed 62% came from those two trucks. Fourth, mini-market segment retailers were getting delivery 2x/week when their turnover required 3x/week — 38% of final spoilage happened at retailer's point of sale, not in the DC.

2024 plan: (1) FIFO → FEFO transition with lot-scanner read at picking; (2) route-level order forecast including retailer promotions and seasonality; (3) data loggers on all 5 trucks with automatic excursion alerts; (4) delivery-frequency segmentation by retailer turnover. Results 12 months later: shrinkage 3.1%, US$205K/year recovered, gross margin up 2.8 points. The ops manager puts it: 'we stopped fighting expired product and started predicting where it would expire before it ever ripened.'

Dynamic pricing for near-expiry products

One of the highest-ROI interventions in perishable inventory management is end-of-shelf-life markdown pricing — reducing the price of products approaching expiration to accelerate sale rather than waste. The economics are straightforward: a product sold at 40% discount recovers 60% of margin; the same product written off recovers 0%.

Optimal markdown timing by category:

  • Fluid dairy: begin marking down at 3–4 days remaining (50% of shelf life consumed). First markdown 20–25%, second markdown 35–40% at 1–2 days remaining.
  • Fresh meat and poultry: first markdown at 2 days remaining, 20–30%. Tray sealing or vacuum repackaging extends by 2–3 days when feasible.
  • Produce: gradual markdown starting at 50% of expected shelf life. Irregular/cosmetically imperfect items can be sold in 'imperfect produce' segments at 30–50% discount — a growing category in US and LatAm with explicit consumer willingness to pay for the discount.
  • Bakery: day-end 30–50% markdown on fresh-baked items unsold by 6PM. Chains like Panera Bread and Bon Appétit (campus dining) deploy automated price reductions on unsold items in the last 2 hours.

Digital tools accelerating this practice: Too Good To Go (operating in 17 countries including UK, France, Germany, Spain, Mexico, and Brazil) connects restaurants and supermarkets with consumers for end-of-day surplus bags at 30–50% of menu price. In Europe, participating stores report food waste reduction of 25–40% and incremental revenue of €800–€2,500/month per location. Flashfood (US/Canada, Loblaw grocery partnership) sells near-date grocery items at 50% off through a dedicated app, generating $50M+ in annual GMV from food that would otherwise be written off.

Demand forecasting precision: the upstream solution

Shrinkage reduction ultimately depends on ordering accuracy — buying only what will sell within the product's shelf life. The gap between ordering accuracy and actual demand at the category level:

  • Manual/historical average method: forecast error (MAPE) typically 25–40%. Results in systematic overbuying on slow days and stockouts on promotional days.
  • Moving average with promotional adjustment: MAPE 15–25%. Requires promotions to be flagged in the system 7–14 days ahead.
  • Machine learning (gradient boosting, neural nets on weather + POS + promotions + holidays): MAPE 7–13% in best implementations. US grocery chains (Kroger, Walmart) and LatAm (Grupo Éxito, Chedraui) deploy ML forecasting at the SKU-store level with 7-day rolling models that incorporate weather API data for produce and ice cream.

A 10-point MAPE reduction (from 30% to 20%) typically translates to 2–4 percentage points of shrinkage reduction in dairy and produce — the difference between a 9% spoilage rate and a 5–7% rate.

SKU rationalization: fewer items, lower shrinkage

A counter-intuitive but evidence-backed lever: reducing the number of perishable SKUs in a category reduces shrinkage per unit while maintaining category revenue. The mechanism: a smaller SKU count concentrates volume on fewer items, increasing units per SKU per day, which tightens the ordering forecast and reduces the number of items at risk of low-velocity expiration.

Produce departments that reduced fresh-cut salad SKUs from 24 to 14 reported 22% lower shrinkage with <5% revenue impact (Nielsen Fresh 2024). The 10 eliminated SKUs had individually low velocity that the remaining 14 SKUs absorbed. This is the long-tail shrinkage problem: each SKU ordered in small quantities generates disproportionate shrinkage risk compared to the revenue it contributes.

The practical rule for perishable categories: if a SKU has average daily velocity below 2 units/day and shelf life under 7 days, it is a structural shrinkage risk. Either discontinue it or shift to made-to-order/prepared-to-order fulfillment.

Regulatory and donation frameworks

In the US, the Bill Emerson Good Samaritan Food Donation Act protects retailers and distributors from liability when donating near-date food to registered nonprofits. The IRS allows enhanced deductions for food inventory donations: the lesser of twice the basis or basis + 50% of appreciation. For a retailer donating $50,000 of cost-basis near-date product, the tax deduction can reach $75,000 — converting a write-off into a positive tax event.

In Mexico, LISR Article 27 (food donations) and the Ley General para la Prevención y Gestión Integral de los Residuos provide similar donation protection and partial tax deductibility for certified food bank donations (BAMX network). Colombia's Ley 1990/2019 (Ley Anti-Desperdicio) mandates that grocery chains with revenue above COP 10B must report food waste metrics annually — incentivizing structured donation programs to reduce reportable waste.

Common mistakes and red flags

  • No temperature logging on transport: without a data logger, you cannot prove thermal excursion to the supplier and cannot claim on spoiled lots. Every perishable delivery route needs continuous temperature recording.
  • Aggregating shrinkage without category decomposition: a 10% overall shrinkage hides that seafood is at 18% and frozen is at 2%. Fix the seafood category first.
  • FIFO on multi-supplier perishables with variable shelf life: the wrong lot comes out first and expires in the DC while a shorter-life lot from a different supplier was available. FEFO is not optional in this configuration.
  • No markdown policy for near-date items: writing off product rather than marking it down at 40–60% is a cash flow error. Even 40 cents recovered on a dollar of cost is better than zero.
  • Ordering by weight/volume instead of units-with-date: bulk ordering without date visibility makes FEFO impossible. Lot-level tracking is the prerequisite for every shrinkage-reduction strategy.

Illustrative case

Composite case for instructional purposes: combines sector dynamics with realistic figures. Names are fictional and do not represent a specific company.

Lácteos Cordillera is a Chilean B2B distributor with a Santiago DC that moves 1.8M liters/month of milk, yogurt, and cheese to 340 retailers and foodservice across the metro region. 2023 shrinkage: 7.8% of received volume — equivalent to US$340K/year in written-off product and a loss of 3.1 points of operating gross margin.

The simulator diagnosis identified four concurrent problems. First, orders to the producer based on 30-day moving average without adjusting to real route forecast; result: DC inventory averaged 2.4 days of age at picking (should be <1 day for fluid dairy). Second, strict FIFO over lots from multiple suppliers with variable shelf life (14 vs 18 days); short-life lots stacked up and expired in the DC without priority by date. Third, two of the five distribution trucks had no active data logger; analysis of retailer quality-claim lots showed 62% came from those two trucks — undetected thermal excursion. Fourth, mini-market segment retailers received deliveries 2x/week when their turnover required 3x/week; 38% of final spoilage happened at the retailer's point of sale, not in the DC.

2024 remediation plan: (1) migration from FIFO to FEFO with lot reading via scanner at picking and automatic outbound-order suggestion; (2) replacement of moving average with route-level forecast including retailer promotions, seasonality, and day-of-week; (3) data loggers on all 5 trucks with automatic alerts on excursion >7°C for more than 30 minutes; (4) segmentation of delivery frequency by real retailer turnover, upgrading mini-markets to 3x/week.

Results 12 months later: shrinkage fell to 3.1%, recovering US$205K/year in product previously written off, and gross margin rose 2.8 points. Retailer quality claims dropped 71%. The ops manager sums it up: 'we stopped fighting expired product and started predicting where it would expire before it ever ripened.'

From theory to calculation

The calculator on this page runs with your numbers — no forms, no login. Scroll up and try it.

Try the calculator

Sector reference ranges

Indicative ranges based on public sector literature and operational observation. Your business may differ — use the numbers as a starting point, not as a target.

MetricValueSource
Shrinkage — fluid dairy, standard retail4.5–7.8% of volume purchasedIDFA Dairy Industry Report 2024 + Nielsen Fresh Categories Scan 2024
Shrinkage — produce (fruit and vegetables), retail10–18% (best-in-class 7–9% with AI ordering + FEFO)Nielsen Fresh Categories Scan 2024
Shrinkage reduction — migrating FIFO to FEFO20–35% in high shelf-life variability categoriesNielsen Fresh Categories Scan 2024
Shelf life lost per hour above 7°C — refrigerated dairyapprox. 12 hours of shelf life lost per hour of excursionIDFA + HACCP frameworks 2024
Shrinkage — frozen categories2–4% (lowest category due to temperature stability)Nielsen Fresh Categories Scan 2024

Frequently asked questions

1What is FEFO and how does it differ from FIFO?
FIFO (First In, First Out) sells first what entered first. FEFO (First Expired, First Out) sells first what expires first, regardless of when it entered. FEFO is superior when multiple suppliers deliver lots of variable shelf life or when receipt order doesn't reflect expiration order. Migration FIFO → FEFO reduces shrinkage 20–35% in high-variability categories.
2What is an acceptable shrinkage for a food store?
Depends on category: fluid dairy 4.5–7.8%, fresh meat 6.5–11%, seafood 8–14%, produce 10–18%, frozen 2–4%, industrial bakery 5–9%. Best-in-class operations hit half the lower bound with AI-driven ordering, FEFO, and delivery frequency segmented by turnover.
3How do I calculate the real cost of my perishable waste?
It isn't enough to count written-off units: add (a) acquisition cost of lost product, (b) forced last-day markdown on units sold at reduced price, (c) opportunity cost of refrigerated space tied up by old product, (d) future loss from brand damage when customers found product at 80% of its life. The total is typically 1.4–1.8x the purely accounting cost.
4What temperature should the cold chain maintain for dairy?
Continuous 0–4°C from production to consumption. Each hour above 7°C cuts shelf life by approximately 12 hours. Use data loggers in transport and automatic alerts; reject lots where the logger shows significant excursion. Without a data logger, supplier claims have no evidence.
5How often should I receive deliveries of perishables?
Segment by real SKU turnover. Fluid dairy and fresh meat at high-turnover retailers: 3–5 times/week. Mini-markets and mid-size foodservice: 2–3 times/week. Small foodservice or convenience: 1–2 times/week with order tuned to demand days. Insufficient deliveries create stockout or spoilage depending on which side of the trade-off you miss.
6How do I handle close-date products before expiration?
Laddered strategy: day N-3 foodservice pre-sale at 25% markdown; day N-2 in-store 40% markdown with clear 'consume soon' signage; day N-1 60% markdown or tax-deductible foodbank donation; day N write-off with lot traceability for analysis. Selling at 60% markdown recovers more cash than writing off at 100%.

Tools from the same topical cluster. Use them together to close the loop on your analysis.

Last updated: April 30, 2026 · Reviewed by the Simúlalo editorial team. Figures and benchmarks are indicative; verify with your own data before deciding.

View methodology