Connects with ERP & MES systems like

Manufacturing Efficiency

Economic Order Quantity: Calculate a Better Purchase Lot

Find the economical purchase quantity for a recurring component, check supplier constraints, and connect its arrival with production orders that need it.

Jussi Mäntylä Production Planning Specialist, SkyPlanner Updated October 23, 2026 11 min read
A balance scale weighs a delivery parcel and purchase paperwork against boxes of components and a bearing.
In this article
  1. Why ordering more can cost more
  2. Get the three EOQ inputs right
  3. D: use component consumption, not sales revenue
  4. S: separate the order event from the purchase price
  5. H: convert a carrying percentage into money
  6. Worked example: buying bearings for production
  7. Turn the calculated quantity into a feasible supplier order
  8. Pack sizes and minimum order quantities
  9. Quantity discounts and delivery agreements
  10. Storage, shelf life and uneven demand
  11. EOQ tells you how much, not when to order
  12. What if you manufacture the replenishment lot yourself?
  13. Make the chosen receipt support production with SkyPlanner
  14. Put the quantity decision to work

Home » Resources » Economic Order Quantity: Calculate a Better Purchase Lot

Estimated reading time: 10 minutes

Economic order quantity (EOQ) is the replenishment quantity that minimizes the combined ordering and inventory holding costs in the basic EOQ model. For a manufacturer buying a recurring component, it answers: how much should we order each time, given our consumption and costs?

The formula is EOQ = √(2 × D × S / H), where D is annual demand in units, S is the fixed cost per order and H is the holding cost per unit per year.

The answer is a useful starting point, not a finished purchasing decision. A supplier’s pack size or minimum order may change the feasible quantity. And an economical purchase cannot support tomorrow’s production if it arrives next week. SkyPlanner APS connects expected material arrivals with the production orders that depend on them, helping purchasing and production work from the same schedule rather than reconcile separate lists.

Why ordering more can cost more

Every replenishment has a cost beyond the components themselves: preparing the purchase order, processing the receipt and handling the delivery. Buying larger quantities spreads that fixed effort over fewer orders.

But larger deliveries also create more stock between replenishments. That stock ties up money and brings storage, insurance and obsolescence costs. Buying twice as much is not automatically economical just because it halves the number of orders.

EOQ balances those two effects. In the basic model, the whole replenishment lot becomes usable at once, then stock falls steadily as production consumes it. Average cycle stock is therefore half the order quantity. Safety stock, if required, is an additional allowance rather than part of that half-lot calculation.

Get the three EOQ inputs right

Use a consistent unit of measure and time period. Annual demand needs an annual holding cost; a monthly cost cannot go into the same calculation unchanged.

InputWhat it means for a purchased componentUnit
DExpected annual consumption of that componentUnits/year
SFixed cost of placing and receiving one replenishment orderCurrency/order
HCost of holding one unit for one yearCurrency/unit/year

D: use component consumption, not sales revenue

For purchased bearings, D is the number of bearings production expects to consume over the year. It is not the sales value of the machines that use them, nor necessarily last year’s purchase quantity: purchases may have increased or depleted stock.

Use the requirements of all products consuming the component, with appropriate allowances for expected process losses. Check whether the annual total represents a reasonably steady pattern. A component used only for two large customer projects needs a dated purchasing plan, not a smooth consumption rate invented from the yearly total.

S: separate the order event from the purchase price

S covers the fixed effort or charge associated with each replenishment event, such as order administration, a fixed delivery charge and receiving work. It is not the invoice value of all the components in the order.

Use a defensible cost for the event you are comparing. If several items share a purchase order or truck, charging every item the entire shipment cost overstates S. Likewise, freight that changes with weight is not simply a fixed cost per order. Align the estimate with your supplier and receiving arrangements.

H: convert a carrying percentage into money

If a component costs $20 and the annual carrying-cost rate is 25%, the corresponding holding cost is:

H = $20 × 0.25 = $5 per component per year

Put $5 into the EOQ formula, not 25 or 0.25. Include the relevant capital, storage and inventory-risk costs in your chosen holding-cost basis, without counting the same cost twice.

A broad accounting allocation is not automatically a cash saving from buying a smaller lot. The calculation is most useful when purchasing and finance agree on which costs reflect the quantity decision.

Worked example: buying bearings for production

Imagine a manufacturer buying a standard bearing used across several products. Its planning assumptions are:

  • Annual consumption D: 12,000 bearings.
  • Fixed ordering cost S: $75 per replenishment.
  • Unit purchase price: $20.
  • Annual carrying-cost rate: 25%, giving H of $5 per bearing.

These are illustrative inputs, not manufacturing cost benchmarks or a SkyPlanner customer result.

EOQ = √[(2 × 12,000 × 75) / 5] = √360,000 = 600 bearings

At 600 bearings per order, the model gives 12,000 / 600 = 20 orders per year and average cycle stock of 600 / 2 = 300 bearings.

To see why 600 is economical, compare the annual costs that change with order quantity Q:

Annual ordering cost = (D / Q) × S

Annual cycle-stock holding cost = (Q / 2) × H

Order quantityAnnual ordering costAnnual cycle-stock holding costCombined annual cost
300 bearings$3,000$750$3,750
600 bearings$1,500$1,500$3,000
900 bearings$1,000$2,250$3,250

At the unconstrained optimum, ordering cost equals cycle-stock holding cost. Increasing the quantity to 900 reduces ordering effort but adds more holding cost than it saves.

The $3,000 is not the total annual cost of buying the bearings. The purchase price still costs 12,000 × $20 = $240,000 per year. That amount is unchanged by order size in this example, so it does not change the best Q. If unit price varies with quantity, it must return to the comparison.

These are long-run annual cost estimates. A result such as 13.33 orders per year for a 900-unit lot describes average frequency, not a requirement to place a fraction of a purchase order.

Turn the calculated quantity into a feasible supplier order

The basic EOQ assumes steady, known demand; stable ordering and holding costs; constant replenishment lead time; complete usable receipts; and no shortages. It also assumes no quantity discount or binding quantity constraint. Use it most confidently for recurring items whose purchasing pattern resembles those conditions.

Then compare quantities you can actually buy.

Pack sizes and minimum order quantities

Suppose the bearing supplier sells packs of 250. A 600-bearing order is not feasible. Compare the nearby full-pack quantities using the same cost equation:

  • 500 bearings: $1,800 ordering + $1,250 holding = $3,050 per year.
  • 750 bearings: $1,200 ordering + $1,875 holding = $3,075 per year.

Without another restriction, 500 costs less in this model. Automatically rounding upward would miss that result.

Now suppose the supplier also requires a minimum order quantity of 750. The 500-unit option is no longer available. Choosing 750 costs $75 per year more than the unconstrained optimum, or 2.5% more in the model. That is a clear basis for deciding whether negotiating a lower minimum is worth the effort.

MOQ is the supplier’s lower limit. EOQ is the buyer’s calculated cost optimum. They answer different questions.

Quantity discounts and delivery agreements

A lower unit price can make a larger order worthwhile, but compare the full effect: annual purchase cost, ordering cost, holding cost and any quantity-dependent freight. Use the actual discount structure; a price applying to every unit is different from a discount applying only to units above a threshold.

A blanket order with several releases also changes what counts as an ordering event and what inventory you actually hold. Do not treat the whole contract quantity as one immediate receipt when deliveries and charges occur separately.

Storage, shelf life and uneven demand

Check that the lot fits usable storage and can be consumed before expiry, a design change or the end of the customer’s requirement. A quantity that cannot be used is not economical merely because it minimizes a simplified cost curve.

Where demand is seasonal or comes in large, irregular withdrawals, use time-phased requirements and an appropriate replenishment policy. For uncertain demand or supplier timing, assess safety stock separately. Increasing EOQ is not a substitute for understanding the shortage risk.

EOQ tells you how much, not when to order

The bearing example consumes 12,000 units over 250 working days, giving 48 bearings per working day. A 600-bearing lot covers 12.5 working days at that rate. That is its consumption cycle, not the supplier’s lead time.

For a continuously reviewed replenishment policy, the ordering trigger is typically:

Reorder point = expected demand during replenishment lead time + safety stock

If usable replenishment takes eight working days and you separately choose an illustrative buffer of 96 bearings:

Reorder point = (48 × 8) + 96 = 480 bearings

The decisions are now distinct: order 600, triggered at 480 under this policy. The buffer of 96 was assumed for the illustration; EOQ did not calculate it. Use the safety stock guide to assess the allowance for uncertainty.

Apply the trigger to inventory position: usable stock on hand plus outstanding replenishment, minus demand already owed or allocated under your stock-accounting rules. Avoid counting the same commitment twice. Looking only at the shelf balance can cause duplicate ordering when supply is already on its way.

But supply on order is not yet usable material. A purchase order can keep inventory position above the trigger while its expected receipt is too late for a customer order. Quantity and arrival timing need to be checked together.

What if you manufacture the replenishment lot yourself?

Use economic production quantity (EPQ) when replenishment builds gradually while consumption continues, as with a repeatedly manufactured component released progressively to stock. EPQ includes the relationship between production and consumption rates; basic EOQ assumes the full lot becomes available together.

The decisive distinction is how stock becomes usable, not simply whether the order is labeled internal or external. A supplier’s split deliveries or a production lot held until final quality release may need a different model from the obvious label.

Make the chosen receipt support production with SkyPlanner

Imagine the 600 bearings are expected on Monday. Two customer orders need them, and both orders also compete with other work for machining and assembly capacity. The supplier moves the receipt to Thursday. The purchase quantity is unchanged, but Monday’s production plan is no longer credible.

Updating the purchasing list alone leaves the machine queues and delivery promises out of step. SkyPlanner brings those connections into a shared production schedule.

Purchase orders carry material quantities and delivery dates. The delivery date represents expected material availability; confirming arrival as Delivered updates stock. With material-aware scheduling enabled, material availability affects Arcturus, SkyPlanner’s scheduling AI, as it schedules work against configured capacity, operation dependencies and priorities.

Record the revised receipt and recalculate the schedule. The affected work orders can then align with the supplier date, and the Gantt view shows their timing alongside the other production work. Instead of moving every dependent operation between separate queues, the planner can focus on the decision: expedite the component, change priorities, find an alternative supply or revise a delivery commitment.

That is the reason to choose SkyPlanner alongside your purchasing policy: less manual coordination between the material plan and the factory schedule, with earlier visibility of what an arrival change means for customer orders. Purchasing determines the economical, contract-compliant lot. The shared schedule makes its production consequences visible.

Eskomatic’s SkyPlanner review illustrates why that visibility matters. The contract machining company previously relied largely on manual queues, with shortages sometimes becoming apparent too close to a planned start. With ERP-connected Gantt scheduling and clearer material visibility, it reports fewer production stoppages caused by missing materials and more accurate delivery-date setting. Better material visibility gives the team a more dependable basis for its daily plan.

SkyPlanner integrates with any ERP or MES through its open REST API, so purchasing and order data from your existing systems can support that connected schedule.

Put the quantity decision to work

For purchased replenishment, start with EOQ, compare feasible supplier quantities and set the trigger separately. Then keep the receipt connected to the orders that will consume it. Book a SkyPlanner demo with one purchased component, its expected arrival and two dependent customer orders to see how that connection changes the production plan. If you prefer to explore first, try SkyPlanner with demo data.

Jussi Mäntylä

Production Planning Specialist, SkyPlanner

Build a clearer production schedule with SkyPlanner

Connect your data, review the first plan, and keep planners in control of every schedule that goes live.