HomeBusiness & Marketing › Economic Order Quantity (EOQ) Calculator

Economic Order Quantity (EOQ) Calculator

Computes the economic order quantity that minimises the sum of annual ordering and holding costs (Harris–Wilson formula √(2DS/H)), plus orders per year, days between orders and the resulting annual costs.

When to use

You reorder a product with steady demand and want the order size that balances ordering cost against holding cost.

Do not use when: Demand is highly variable or seasonal, quantity discounts apply, or the item is produced in-house at a finite rate (use the economic production quantity model); for when to order, use reorder-point.

Formula

EOQ = √(2 × annual_demand × ordering_cost / holding_cost); orders_per_year = D / EOQ; ordering_cost = D / EOQ × S; holding_cost = EOQ / 2 × H; total = ordering + holding (+ D × unit_cost)

Classic Harris (1913) / Wilson EOQ model: constant demand, instantaneous replenishment, no stockouts and no quantity discounts. The total cost curve is flat near the optimum, so rounding the EOQ to a practical pack size changes cost very little.

Inputs

ParameterTypeUnitRequiredDescription
annual_demand_unitsnumberunits/yearyesUnits sold or used per year (D). Range: > 0, ≤ 1000000000000
ordering_cost_per_ordernumberyesFixed cost of placing one order: paperwork, shipping, setup (S). Range: > 0, ≤ 1000000000
holding_cost_per_unit_per_yearnumberyesCost of keeping one unit in stock for a year: storage, capital, insurance, obsolescence (H). Range: > 0, ≤ 1000000000
unit_costnumbernoOptional purchase price per unit, to report total annual cost including purchases. Range: ≥ 0, ≤ 1000000000
working_days_per_yearintegerdaysdefault 365Days used to convert orders per year into days between orders. Range: ≥ 1, ≤ 366

Outputs

OutputTypeUnitDescription
eoq_unitsnumberunits√(2 × D × S / H).
orders_per_yearnumberD / EOQ.
days_between_ordersnumberdaysworking_days_per_year / orders_per_year.
annual_ordering_costnumber(D / EOQ) × S.
annual_holding_costnumber(EOQ / 2) × H (average inventory is half the order size).
total_annual_inventory_costnumberMinimum combined cost; at the EOQ the two components are equal.
total_annual_cost_including_purchasenumberD × unit_cost + ordering + holding (only when unit_cost given).

Example

D = 1,000, S = 10, H = 0.50: {"annual_demand_units":1000,"ordering_cost_per_order":10,"holding_cost_per_unit_per_year":0.5}{"eoq_units":200,"orders_per_year":5,"days_between_orders":73,"annual_ordering_cost":50,"annual_holding_cost":50,"total_annual_inventory_cost":100}

D = 12,000, S = 50, H = 2.40, unit cost 8: {"annual_demand_units":12000,"ordering_cost_per_order":50,"holding_cost_per_unit_per_year":2.4,"unit_cost":8}{"eoq_units":707.11,"orders_per_year":16.97,"days_between_orders":21.5,"annual_ordering_cost":848.53,"annual_holding_cost":848.53,"total_annual_inventory_cost":1697.06,"total_annual_cost_including_purchase":97697.06}

GET https://tttkmbb.com/api/v1/calculate/eoq?annual_demand_units=1000&ordering_cost_per_order=10&holding_cost_per_unit_per_year=0.5

Machine access

Sources

FAQ

How do I estimate the holding cost?

Commonly 20–30 % of the unit cost per year (capital cost, storage, insurance, shrinkage, obsolescence). Enter it as a currency amount per unit per year.

Why are ordering and holding costs equal at the EOQ?

That is the optimality condition of the model: total cost D·S/Q + Q·H/2 is minimised where its two terms cross, at Q = √(2DS/H).

Related calculators