AI Solutions Locations All Services Website Design Perth Landing Page Design SEO Perth Google Ads Perth Facebook Ads Perth Content & Video Shopify Perth AI Services Case Studies Free Strategy Call
Stock levels guide

Economic Order Quantity for Mining Spares The formula, and when to ignore it.

Economic order quantity is √(2DS ÷ H). D is annual usage, S is the cost of placing one order and H is the cost of holding one unit for a year. Example: a filter using 1,200 a year, costing $120 per order to buy and $21.25 a year to hold, has an EOQ of about 116 units.

By , Perth · Updated
Pallets of mining consumables in a warehouse receiving bay
Built inside your systems
Built inside a tier 1 mining operator
99.8% match to the site expert
Your data stays in your systems
Free 15 minute call

What is the economic order quantity formula?

EOQ is the order size that makes the yearly cost of ordering equal to the yearly cost of holding stock, which is where their total is lowest. Order more often and you pay for more POs. Order bigger and you pay to hold more stock.

EOQ = √(2 × D × S ÷ H)

TermMeaningWhere to get it
DAnnual usage in units, net of returns12 months of issue and return transactions
SCost to place and receive one orderYour own estimate of buyer, approval, receipting, invoice matching and freight booking time and cost
CUnit costContract rate or last price paid
iHolding cost rate per yearYour finance team's figure for capital, storage, insurance and obsolescence
HHolding cost per unit per year = i × CCalculated

Total yearly cost of an order size Q = (D ÷ Q) × S + (Q ÷ 2) × H + D × C. The last term is the purchase cost. It does not change with Q unless there is a price break.

Worked example: what is the EOQ for a fast moving filter?

Example with made-up figures: a hydraulic filter element.

  1. D = 1,200 units a year (net of returns).
  2. S = $120 per order.
  3. C = $85 per unit, i = 25% a year, so H = 0.25 × $85 = $21.25 per unit per year.
  4. 2 × D × S = 2 × 1,200 × 120 = 288,000.
  5. 288,000 ÷ 21.25 = 13,552.9.
  6. EOQ = √13,552.9 = 116.4, so about 116 units, or roughly 10 orders a year.

Here is what different order sizes cost each year, before purchase cost:

Order sizeOrders a yearOrdering costHolding costTotal
2548$5,760$266$6,026
5024$2,880$531$3,411
10012$1,440$1,063$2,503
116 (EOQ)10.3$1,241$1,233$2,474
3004$480$3,188$3,668
6002$240$6,375$6,615

At the EOQ, ordering and holding cost are almost equal. That is the check that you have done it right. If a site is ordering this filter 25 at a time, it is spending about $3,550 a year more than it needs to on this one line, mostly in PO handling.

How accurate do the EOQ inputs need to be?

Not very. The total cost curve is flat near the EOQ, so being 20% off costs only a few percent.

Order sizeYearly costVersus EOQ
93 (20% under)$2,537+2.5%
116 (EOQ)$2,474base
120 (rounded to a pack of 24)$2,475+$1
140 (20% over)$2,516+1.7%

That is good news. A rough but honest order cost and holding rate is enough. Round the EOQ up to the pack size or minimum order quantity without worrying. What matters is the order of magnitude: ordering 25 when the answer is 116 is the real problem.

How do price breaks change the economic order quantity?

When a supplier offers a lower unit price above a certain quantity, calculate total yearly cost including purchase cost at each price level, then pick the lowest.

Example: the same filter drops from $85 to $80 for orders of 250 or more.

  1. EOQ at $80: H = 0.25 × 80 = $20, EOQ = √(288,000 ÷ 20) = 120. That is below 250, so at $80 you must order 250.
  2. Cost at 250: ordering (1,200 ÷ 250) × 120 = $576, holding (250 ÷ 2) × 20 = $2,500, purchase 1,200 × 80 = $96,000. Total $99,076.
  3. Cost at 116 and $85: ordering $1,241, holding $1,233, purchase $102,000. Total $104,474.
  4. Taking the price break saves about $5,398 a year.

Before you take it, check three things: the shelf life of the part, whether you have the space, and whether the $80 is actually what you will be charged. A price break is only worth it if the invoice matches. See PO contract rate checking.

What does it really cost to place an order on a mine site?

More than most people assume, and it changes EOQ a lot. Build S from the steps one order actually takes at your site.

  • Raising the requisition and getting it approved.
  • Buyer time to create the PO and send it.
  • Expediting and chasing.
  • Freight booking, and the freight itself if it is charged per delivery.
  • Receiving, inspection and put away.
  • Invoice matching and resolving any price or quantity difference.

For a remote site where each delivery carries its own freight charge, S might be several times the figure for a site near Perth. Example: if S rises from $120 to $450 for the same filter, EOQ rises from 116 to √(2 × 1,200 × 450 ÷ 21.25) = 225. Same part, same usage, nearly double the order size. Work out S separately for each site.

When should you not use EOQ for mining spares?

EOQ assumes steady, predictable usage. Many mining spares do not have it. Use EOQ for consumables and steady wear parts, and something else for the rest.

  • Low usage, high value parts. A $16,000 component used twice a year gives an EOQ of √(2 × 2 × 120 ÷ 4,000) = 0.35. Order 1 at a time.
  • Lumpy demand. Parts issued rarely and several at a time break the steady usage assumption. Order quantity should at least cover one typical issue.
  • Critical and insurance spares. Held on risk, not usage. EOQ does not apply. See critical and rotable spares.
  • Shelf life items. Hoses, seals, belts and some lubricants age on the shelf. Cap the order at what you use before it expires.
  • Contracted call offs. If a supply contract already fixes delivery frequency, EOQ is a check on the contract, not an ordering rule.
  • Returns and transfers in D. Gross issues inflate D. Net returns and ignore transfers between warehouses, or the EOQ will be too high.

EOQ also says nothing about when to order. That is the reorder point, covered in safety stock calculation and how to set min max levels. EOQ usually becomes the gap between min and max.

How do you calculate EOQ in Excel from an ERP export?

One row per stock code, one formula for EOQ, then round to the pack size and minimum order quantity.

  1. Export 12 months of issues and returns. Net them to get annual usage D per stock code in column B.
  2. Add unit cost in column C, ideally the contract rate.
  3. Put your order cost S in cell K1 and holding rate i in K2, or one per site if freight differs.
  4. Holding cost in column D: =$K$2*C2.
  5. Raw EOQ in column E: =IFERROR(SQRT(2*B2*$K$1/D2), 0).
  6. Pack size in F and minimum order quantity in G from the supplier.
  7. Order quantity in column H: =MAX(G2, CEILING.MATH(E2, F2), 1).
  8. Flag rows where E2 is under 1 or where usage came from fewer than 4 issue events. Those should not use EOQ.

How does Source Digital automate order quantities for mining spares?

Source Digital builds order quantity, reorder point and max calculations into a stock level engine inside your own data platform. Each line is classed first, so EOQ is only applied where it belongs.

  • Uses your contract prices: unit cost comes from a contract price book built from your own contract history. See the contract price book case study.
  • Matches your experts: at an international tier 1 mining operator, the stock level engine matched the site inventory expert's spreadsheet 99.8% of the time.
  • Deterministic maths, person approves: formulas calculate the numbers, the AI explains them, and a person signs off every change.

Getting started is a free 15 minute call with Tristan, or a quick enquiry. No obligation and no pitch. He asks what you run and what is costing you, then tells you straight whether there is something worth fixing. Work is charged at a consulting day rate. The price depends on your sites, systems and data, so you talk first, then Tristan sets out what he would build, how many days it takes and what it costs. See how the stock level engine works on the mining spares optimisation page.

Data safety

Built inside your environment, not ours

Your data never leaves your systems. We build inside the platform you already run, with the security, logins and audit trail your IT team already controls.

Runs in your own platform

Azure, Databricks, Snowflake or your own SQL server. Your security rules, your logins, your audit trail.

Read-only on your source data

We read from Pronto, SAP, Ellipse or your data warehouse. Nothing writes back into your ERP without approval.

Every number shows its working

Each figure links to the stock record, PO line or contract clause it came from, so anyone can check it in seconds.

A person approves every change

The maths is deterministic and the AI only explains it. Your team decides, and every decision is logged.

Our work

Built and running
in real operations

AI systems running right now inside an international tier 1 mining operator and Perth mining suppliers. Swipe or use the arrows.

Mining, Canada/Africa
Stock levels

A min/max engine matched to the site's own expert

Recommends minimum and maximum stock levels across tens of thousands of items, proven against the inventory expert's own spreadsheet.

99.8%
match to the expert
Read the case study
Mining, Canada/Africa
AI agent

A commercial assistant that answers in Teams

Procurement and commercial staff ask in Microsoft Teams and get verified answers from millions of purchasing, receipt and stock rows.

~1 min
to a verified answer
Read the case study
Mining, Canada/Africa
Price book

A price book built from the client's own contracts

Benchmark rates for services and equipment hire, so quotes are judged against what was agreed and what was last paid.

Every rate
cites its contract
Read the case study
Mining, Canada/Africa
Tender scoring

A tender scorer that cites its evidence

Deterministic pricing plus AI scoring with page referenced evidence, calibrated against a real evaluation panel.

Panel
matched on a live bid
Read the case study
Mining, Canada/Africa
Parts matching

Cross-site parts matching that refuses to guess

Matches the same part across two sites' catalogues using evidence tiers, so stock can be shared instead of re-bought.

2 sites
one view of stock
Read the case study
Mining, Canada/Africa
Data quality

The AI project that audited the data first

Verifying every column surfaced data problems the client didn't know it had, before they could reach an answer.

Every
column verified
Read the case study
Mining, Canada/Africa
Method

Every mistake becomes a permanent test

Users catch it, we trace it, the rule lands and the case is frozen. The method behind every build above.

511
automated checks
Read the case study
Mining, Canada/Africa
Automation

Report delivery with no files carried by hand

Engine outputs delivered from the data platform into SharePoint and announced in Teams, with a return leg for reviewer edits.

0
files carried by hand
Read the case study
Get started

A 15 minute call.
No pitch.

Talk it through with me directly. Here is how it works.

  1. Tell me what you run. Your sites, your systems and what is costing you time or money right now.
  2. I tell you straight. Whether there is something worth fixing, how I would build it and roughly what it would cost.
  3. Scope and price. If it's worth doing, I set out what I'd build, how many days it takes and what it costs at my consulting day rate. If it isn't, I'll say so.
Tristan Sunde
Tristan Sunde
Founder, Source Digital, Perth
0452 246 854 · sales@source-digital.com.au

Send a quick enquiry

Takes 20 seconds. I reply personally, usually the same day.

Your details go to Tristan only. No mailing lists.

FAQ

Common questions

EOQ = √(2 × D × S ÷ H). D is annual usage in units, S is the full cost of placing and receiving one order, and H is the cost of holding one unit for a year, usually a holding rate multiplied by unit cost. The result is the order size where yearly ordering and holding costs are lowest combined.

Add up what one order actually takes at your site: requisition and approval, buyer time, expediting, freight booking and any per delivery freight, receiving and put away, and invoice matching. Remote sites usually have a much higher order cost. In a worked example, raising order cost from $120 to $450 nearly doubled the EOQ.

Use your own finance team's figure. Holding cost covers the cost of capital tied up in stock, warehouse space and handling, insurance, and the risk of the part becoming obsolete. EOQ is not very sensitive to the exact rate, so a sensible agreed figure is better than spending weeks refining it.

Usually not. EOQ assumes steady usage. A high value part used twice a year often gives an EOQ below one, so you order one at a time. Lumpy parts, critical and insurance spares, shelf life items and contracted call offs all need a different rule. Use EOQ for consumables and steady wear parts.

Calculate total yearly cost, including purchase cost, at each price level and choose the lowest. In a worked example, ordering 250 filters at $80 instead of 116 at $85 cut yearly cost from $104,474 to $99,076. Check shelf life, storage space and that invoices actually reflect the lower price before you commit.

Not much. The cost curve is flat around the EOQ. In a worked example, ordering 20% above the EOQ added 1.7% to yearly cost and ordering 20% below added 2.5%. Rounding up to a pack size cost about a dollar a year. Getting the order of magnitude right matters far more than precision.

Source Digital builds EOQ into a stock level engine inside the client's own data platform. Lines are classed first, so EOQ only applies to steady parts. Unit costs come from the contract price book, every number links to its source lines and a person approves each change. To get started, book a free 15 minute call with Tristan, then a clear scope and price if it is worth doing.

Tristan Sunde, founder of Source Digital
Written by Tristan Sunde
Founder and lead developer, Source Digital, Perth WA

Tristan builds AI and data tools for mining supply chains, including a stock level engine, purchase order checks, a contract price book and a commercial assistant in Microsoft Teams for an international tier 1 mining operator. Every page on this site is written from work he has built and tested. More about Tristan.

Find the cash sitting
in your stores.

A 15 minute call. No pitch deck. If there's nothing worth fixing, I'll tell you.