EOQ for perishable inventory
For perishable goods, Wilson EOQ is bounded above by shelf life: Q_max = d * shelf_life. Within that cap, carrying cost loads upward with shrinkage (typically 4 to 8 percent for ambient dry goods, up to 15 to 20 percent for fresh produce[1]). When the Wilson Q* exceeds the shelf-life cap, you are at the boundary of EOQ’s validity and should switch to a deteriorating-inventory model[2].
The worked example
| Annual demand D | 12,000 units |
| Daily demand d_bar | 33 units |
| Order cost S | $65 / PO |
| Unit cost C | $8 |
| Carrying cost i (incl. shrinkage) | 40% |
| Shelf life | 30 days |
| Cap: Q_max = d * shelf_life | 990 units |
| Annual holding | $1,117 |
| Annual ordering | $1,117 |
| Annual total (ex. purchase) | $2,234 |
The Ghare-Schrader extension
For exponential decay (e.g. enzymatic spoilage), Ghare and Schrader (1963) derive an EOQ-like formula where the holding cost effectively rises over the cycle as remaining units lose value[2]. The closed form is a transcendental equation; numerical solution gives Q* that is typically 10 to 20 percent smaller than Wilson at the same H.
USDA shrinkage benchmarks
USDA ERS food-loss data puts retail-level loss at roughly 10 percent for fresh fruits and vegetables and 4 percent for dairy[3]. Use category-specific shrinkage to load i; don’t apply a blanket 30 percent across a mixed perishable SKU list.