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
Mining stores guide

How to Clear Dead Stock and Obsolete Spares Without binning the insurance spare.

Dead stock is any spare with no net issue in a set period, commonly 24 months, that is not flagged critical or insurance. Obsolete stock no longer fits any equipment on site. Find both by netting returns and transfers off usage, then decide each line: transfer, return, sell, keep or write off.

By , Perth · Updated
Dusty obsolete spare parts on the bottom shelf of a warehouse
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 difference between slow moving, dead and obsolete stock?

Slow moving stock still gets used, just rarely. Dead stock has not been used in a set period. Obsolete stock can never be used because nothing on site needs it any more. Each needs a different action, so classify before you act.

Set the time thresholds to suit your site and write them down. The ones below are a common starting point, not a rule.

ClassRule (example thresholds)Usual action
ActiveNet issue in the last 12 monthsCheck min and max are right
Slow movingLast net issue 12 to 24 months agoLower min and max, stop reordering
Dead (non moving)No net issue for 24 months or more, still fits equipment on siteTransfer, return or sell
ObsoleteNo equipment on site uses it, or the part has been superseded and does not interchangeSell, return or write off
Critical or insuranceFlagged by maintenance as needed to protect a critical asset, whatever its usageReview on risk, never on usage alone

The last row matters most. An insurance spare with zero usage for five years is doing its job. It must be flagged before any dead stock report runs, or it ends up on a disposal list. See critical and rotable spares for how to set those flags.

How do you calculate dead stock?

Calculate months since last net issue for every stock code, then apply your thresholds. For active and slow lines, also calculate coverage and excess so you can see stock held above what you need.

  • Months since last net issue = months between the report date and the last issue that was not fully returned.
  • Coverage (months) = quantity on hand ÷ average monthly net usage.
  • Excess quantity = quantity on hand minus max (if the result is above zero).
  • Excess value = excess quantity × unit cost.
  • Dead stock value = sum of quantity × unit cost for lines classed dead, excluding critical and insurance flags.

Worked example, six made-up lines, report date 30 September 2026:

LineOn handUnit costValueLast net issueMonthsClass
Hydraulic pump, retired loader fleet2$48,500$97,00015 Mar 202254Obsolete
Conveyor idler roller, 1200 mm belt60$310$18,60020 Aug 20261Active
Haul truck wheel motor bearing kit1$96,000$96,000Nevern/aInsurance, keep
Gasket set, superseded number14$640$8,9602 Nov 202334Superseded, still fits
Bucket tooth, ground engaging tool40$220$8,80010 Jun 202515Slow moving
Slurry pump impeller3$18,500$55,5001 Jul 202426Dead

The wheel motor kit has the biggest value and zero usage, and it is the one line you keep. The gasket set looks dead under its old number, but the new number is being used, so the fix is to link the supersession so the old stock issues first. The pump impeller is the real decision: check the pump is still installed, then offer it to any other site running the same pump.

What does a site level dead stock review look like?

Run the classification across every line, total the value by class, then work out what each dead line can realistically return. Released working capital is always less than the book value of dead stock.

Example: a site holding 8,000 stock lines worth $44.0M.

ClassLinesValueShare of value
Active5,200$26.0M59.1%
Slow moving1,300$6.5M14.8%
Dead900$5.4M12.3%
Obsolete250$2.1M4.8%
Critical and insurance350$4.0M9.1%
Total8,000$44.0M100%

Now work through the $5.4M of dead stock line by line:

Decision (example)Book valueRecovered or re-buy avoided
Transfer to another site that uses it$1.2M$1.2M (re-buy avoided)
Return to supplier, 25% restocking fee$0.8M$0.6M
Sell as surplus, 30% of book recovered$0.5M$0.15M
Reclassify as insurance spare and keep$0.9M$0
Scrap and write off$2.0M$0
Total$5.4M$1.95M

So $5.4M of dead stock turns into $1.95M of released working capital, plus a $2.0M write off that finance needs to plan for. Present it that way. Promising the full $5.4M as a saving is how these reviews lose credibility.

Holding cost still counts. If your finance team uses a carrying cost of, say, 20% a year, the $2.0M you scrap was costing $400,000 a year to keep. Use your own rate.

What mistakes hide dead stock or flag the wrong lines?

Most errors come from treating every movement as usage. A part can move every month and still never be consumed.

  1. Returns counted as activity. A part issued to a job and returned unused resets the last issue date. Net the return against the issue. On an international tier 1 mining operator's stock level work, netting returns off usage took agreement on disputed items from 73% to 98.4%.
  2. Transfers counted as activity. Moving a part between warehouses is not consumption. A line shuffled between two stores can look active for years.
  3. Insurance spares not flagged. They will top every dead stock list by value. Flag them first.
  4. Superseded part numbers. The old number looks dead because everyone now orders the new one. Link them, and issue the old stock first if it interchanges.
  5. Duplicate stock codes. The same part under two codes, at one site or across sites, splits usage so both look slow. Cross-site matching should be careful here: a wrong match means a wrong part on a critical job.
  6. Shutdown stock. Parts bought for a planned shutdown can look dead until the shutdown happens. Tag them to the work order.
  7. Rotables in the repair loop. A rebuilt component returned to the shelf may show as a receipt, not usage. Track rotables separately.
  8. Using last receipt date. A recent receipt says you bought it, not that anyone used it. Use last net issue.

How do you run a dead stock report in Excel or from your ERP?

Export stock on hand and 24 to 36 months of issue and return transactions, net them, find the last real issue for each code, then classify with a formula.

  1. Export stock on hand by stock code: code, description, warehouse, quantity, unit cost, critical or insurance flag. Sheet Stock.
  2. Export issues and returns for 24 to 36 months: code, date, type, quantity, work order. Sheet Trans. Leave transfers out.
  3. Net returns against their original issue by work order and code. Where an issue was fully returned, drop both rows.
  4. Last net issue in column G: =IFERROR(MAXIFS(Trans!B:B, Trans!A:A, A2, Trans!C:C, "issue"), ""). A blank or zero means never issued.
  5. Months since in column H: =IF(N(G2)=0, 999, DATEDIF(G2, $K$1, "m")), where K1 holds the report date.
  6. Class in column I: =IF(F2="Y", "Insurance", IFS(H2<12, "Active", H2<24, "Slow", TRUE, "Dead")), where F is the critical flag.
  7. Value in column J: =D2*E2. Pivot on class to get the totals.
  8. Mark obsolete lines by hand or against your equipment register. The ERP usually cannot tell you that a fleet has been retired.

Then take the dead list to maintenance planning before anything is disposed of. They will know which lines are quietly protecting something.

How does Source Digital automate dead stock and obsolete spares reviews?

Source Digital builds the classification inside your own data platform, with your rules for returns, transfers, supersession and insurance flags, and re-runs it every month. A person approves every disposal. The AI never decides.

  • Read-only, in your environment: it runs in your Azure, Databricks or Snowflake, reading your ERP data without changing it.
  • Every number links back: each dead line shows the transactions behind its last issue date, so nobody has to take the report on trust.
  • Cross-site matching that refuses to be confidently wrong: likely matches between sites are graded by evidence, so stock can be shared instead of re-bought. See cross-site parts matching.
  • Data audit first: the first pass checks the data itself, and often surfaces problems like duplicate codes and wrong transaction types. See the AI data audit case study.

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 pieces fit together on the AI for mining supply chain 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

Dead stock is a stock line with no net issue for a set period, commonly 24 months, that still fits equipment on site and is not flagged as a critical or insurance spare. Net issue means returns are subtracted from issues and transfers between warehouses are ignored. Without those rules, parts that move but are never used look active.

Dead stock could still be used but has not been. Obsolete stock cannot be used, because the equipment it fits has gone or the part has been superseded by one that does not interchange. Dead stock is usually transferred, returned or sold. Obsolete stock is usually sold for surplus value or written off.

Flag them as critical or insurance in the ERP before the report runs, and exclude flagged lines from the dead stock classification. Review insurance spares separately on risk: what fails, what it stops, how long a replacement takes to arrive. Zero usage is expected for an insurance spare and is not a reason to dispose of it.

Less than the book value. In a worked example, $5.4M of dead stock released $1.95M through transfers to other sites, supplier returns and surplus sales, with $0.9M kept as insurance and $2.0M written off. Report released working capital and write offs separately, and never present the full book value as a saving.

When a part is issued to a job and returned unused, a raw export shows a recent issue. That resets the last issue date and hides the line from a dead stock report. Net each return against its original issue. On one international tier 1 mining operator's data, that single rule took agreement on disputed items from 73% to 98.4%.

Yes. Export stock on hand and 24 to 36 months of issues and returns, net the returns, then use MAXIFS to find each code's last issue date and DATEDIF to get months since. An IFS formula assigns active, slow or dead. Obsolete lines still need checking against your equipment register by someone who knows the fleet.

Source Digital builds the classification inside your own data platform with read-only access, applies agreed rules for returns, transfers, supersession and insurance flags, and re-runs it monthly. Every line links to its transactions and a person approves every disposal. To get started, book a free 15 minute call with Tristan. If it is worth doing, you get a clear scope and price, based on the consulting days the work needs.

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.