1. Introduction and Objectives
Inventory management requires balancing two competing forces: Holding Costs (storage, insurance, obsolescence) and Ordering Costs (shipping, processing, setup fees). Quantitative optimization identifies the exact point where these costs are minimized.
Â
2. Economic Order Quantity (EOQ) Framework
EOQ calculates the ideal order size that minimizes total annual inventory costs. The classic model assumes constant demand, fixed lead times, and no stockouts.
- Mathematical Formula:
Q = √((2 × D × S) / H)
- Where:
- Q = Economic Order Quantity (units per order)
- D = Annual Demand volume (units)
- S = Fixed Setup or Ordering Cost per order
- H = Annual Holding Cost per single unit
(Unit Cost × Carrying %)
- Where:
3. Reorder Point (ROP) and Safety Stock
To prevent stockouts caused by variable delivery schedules, companies establish a Reorder Point—the inventory level that triggers a fresh purchase order.
- Formula (Without Safety Stock): \
ROP = Daily Usage Rate × Lead Time (Days) - Formula (With Safety Stock): ROP = (Average Daily Usage × Average Lead Time) + Safety Stock
4. Computational Scenario
A factory requires 20,000 components annually. Each order costs $50 to process, and the annual cost to hold one component in storage is $2.00. The delivery lead time from the supplier is exactly 5 working days. The factory operates 250 days a year.
python
import math
D = 20000 # Annual Demand
S = 50 # Ordering Cost
H = 2.00 # Holding Cost
lead_time_days = 5
operating_days = 250
# EOQ Calculation
eoq = math.sqrt((2 * D * S) / H)
# ROP Calculation
daily_usage = D / operating_days
rop = daily_usage * lead_time_days
print(f"Optimal Order Quantity (EOQ): {eoq:.0f} units")
print(f"Daily Usage Rate: {daily_usage:.1f} units/day")
print(f"Reorder Point (ROP): {rop:.0f} units")
Â
The mathematical computation shows:
-
EOQ = √((2 × 20,000 × 50) / 2.00) = √1,000,000 = 1,000 units.
Daily Usage = 20,000 / 250 = 80 units per day.
ROP = 80 × 5 = 400 units. When inventory drops to 400 units, the system automatically fires a fresh PO for 1,000 units.
Â