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 %)

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.


Â