EOQ retail example: seasonal apparel
Fashion apparel is the boundary case for EOQ: stable basics (denim, white tees, socks) still answer to Wilson, but fashion-cycle SKUs need a newsvendor model because demand is non-stationary and unsold units carry markdown risk that loads carrying cost up to 30 percent or higher[1].
The worked example
| Annual demand D | 1,800 units |
| Order cost S | $120 / PO |
| Unit cost C | $40 |
| Carrying cost i | 30% (capital + markdown + obsolescence) |
| Holding H = i*C | $12 / unit / year |
| Annual holding | $1,138 |
| Annual ordering | $1,138 |
| Annual total (ex. purchase) | $2,277 |
Why 30 percent carrying cost
Apparel carrying cost decomposes roughly as: capital cost 7 to 9 percent, warehouse + DC 2 to 4 percent, markdown risk 12 to 18 percent, shrinkage 1 to 2 percent, insurance and services 1 percent. Total typically lands 25 to 35 percent depending on category. We use 30 as the SMB default[2].
Where Wilson stops applying
For fashion-cycle SKUs with a finite selling window (back-to-school, holiday, spring/summer capsule), demand is non-stationary and unsold inventory at season end faces near-100% markdown. The right tool is the newsvendor model: optimal order quantity satisfies the critical fractile (cu / (cu + co)) where cu is underage cost and co is overage cost. EOQ’s constant-D assumption is the binding failure.
Running 200 SKUs without 200 spreadsheets
The CSV template walks the same calculation across an arbitrary SKU file. Tag fashion vs basics in the same export; route basics through Wilson EOQ and fashion through newsvendor.