Akiba Tools › Guides

How to Find Slow-Moving, Non-Moving and Dead Stock in Your Stock Export

Free Excel method for stores and spare parts · 19 October 2026 · about 10 minutes to read

Most guides on dead stock are written for shops: they look at the last sale. In a store, a warehouse or a maintenance stockroom, items are issued, not sold, and a spare part can sit for years for good reason. This guide shows how to find slow-moving, non-moving and dead stock from a normal stock export, in Excel, with the checks that matter for stores.

Dead stock, non-moving, obsolete: what's the difference?

Different teams use different words for the same problem: money sitting on the shelf.

Whatever your company calls it, the method below works the same way.

Step 1: Get the right export

You need one file: the stock-on-hand list from your system or Excel, one row per item. Export all items, including those with zero stock, so you can also find codes that are never used.

Must have (5 columns): item code · description · quantity on hand · unit cost (or total value) · last issue date.

Very useful if you have them: quantity on order · reorder point · item creation date · last receipt date · category · location · a critical-spare flag.

Last issue, not last movement. Some systems only give a "last movement" date, which also changes when stock is received. A delivery of an item nobody uses would make it look active. Use the last issue date if you can; if your system shows yearly issue quantities, use those to double-check.

Step 2: Clean the file

  1. Delete title rows above the headers and any total or subtotal rows (a totals row can double your stock value).
  2. Make sure the dates are real Excel dates, not text. Select the column and check the format; dates like 31/12/2025 should right-align.
  3. Put aside lines with negative quantities or zero or missing costs. They are data problems to fix, not stock to value.
  4. Choose your stock date (the date of the export) and type it in a spare cell, for example K1.

Step 3: Months since last issue, and value

With the last issue date in column E and the stock date in K1, add a column "Months since last issue":

=IF(E2="","",DATEDIF(E2,$K$1,"m"))

And a column "Stock value" (quantity in C, unit cost in D):

=C2*D2

Step 4: Put each item in an age band

Spares and consumables age at very different speeds, so use different cut-offs. A practical starting point:

BandSpares & maintenanceTrading stock & consumables
Active0–12 months0–3 months
Slow-moving12–24 months3–6 months
Non-moving24–36 months6–12 months
Dead / obsolescence risk36+ months12+ months
Never issuedno issue recordedno issue recorded

Adjust the cut-offs to how fast your items normally move.

For spares, with months in column F, the band formula is:

=IF(E2="","Never issued",IF(F2<12,"Active",IF(F2<24,"Slow-moving",IF(F2<36,"Non-moving","Dead"))))

For consumables, replace 12, 24 and 36 with 3, 6 and 12.

Step 5: Total the value by band

Insert a PivotTable: Rows = Age band, Values = Sum of Stock value. Add the value a second time and show it as % of column total. You now have the number that matters: how much cash is in each band, and what share of your stock it is.

A worked example

Eight lines from a made-up spares store, stock date 30 September 2026. The lines were chosen to show each case, so the dead share is far higher than you would expect in a real store.

CodeDescriptionQtyUnit costLast issueMonthsBandValueOn order
BRG-6205Bearing 6205 2RS406.5014 Aug 20261Active2600
FLT-HYD-10Hydraulic filter 10 micron3018.4002 Sep 20260Active5520
VBT-B52V-belt B52129.8002 Jun 202515Slow-moving1180
SEAL-45Mechanical seal 45 mm6145.0020 Mar 202430Non-moving8700
GBX-K90Gearbox assembly K9014,850.0005 Nov 202158Dead4,8500
VLV-BALL-2Ball valve 2" stainless1462.0018 Jul 202250Dead86810
CBL-4C16Cable 4-core 16 mm² (m)2507.2010 Jan 202344Dead1,8000
MTR-7K5Electric motor 7.5 kW2980.00––Never issued1,9600

Made-up data. Total stock value 11,278: Active 812 · Slow-moving 118 · Non-moving 870 · Dead 7,518 · Never issued 1,960.

Three things stand out. The ball valve is dead and still on order. The motor has never been issued: it may be a critical spare, or a mistake. And the gearbox alone holds most of the dead value, so one decision there matters more than ten small ones.

Step 6: Four checks retail guides miss

1. Dead or slow items still on order

The cheapest saving is the money you haven't spent yet. Flag items in the Non-moving or Dead band that have a quantity on order or a reorder point above zero (band in G, on order in H):

=IF(AND(OR(G2="Non-moving",G2="Dead"),H2>0),"Stop or reduce order","")

Cancel what isn't needed, and set the reorder point to zero for items no longer used.

2. Critical spares

Some parts are held for breakdowns you hope never happen. They will always look slow. Mark them "Keep: critical spare", record why, and report them separately so they don't hide the real problem or get written off by mistake.

3. Duplicate codes

When one part sits under two codes, usage is split and both look slow. Sort by description and look for the same part numbers written differently (BEARING 6205 2RS and Bearing 6205-2RS). Check carefully before merging: 6205 2RS (sealed) and 6205 ZZ (shielded) look alike but are different parts.

4. Codes never used

Items with zero stock, never issued and never received, created more than a year ago, clutter your item master and make searching harder. List them and block them in your system.

Step 7: Decide, item by item

Finding dead stock is the start. For each item, choose one action and record it:

Start with the highest values. A handful of items usually hold most of the money.

Prefer not to build it in Excel?

The free Dead Stock Finder does all of the above from your stock export: age bands for spares and consumables, value by band, dead items still on order, codes never used and suspected duplicates, with an Excel report and an action column for every item. Your file is read in your browser and never uploaded.

Try the free Dead Stock Finder

Frequently asked questions

What is non-moving inventory?

Stock that has had no issues (no use) for a set period. In maintenance and spare-parts stores, a common cut-off is 24 to 36 months without an issue; for fast-moving consumables it is much shorter, often 6 to 12 months.

How long before stock is considered dead or obsolete?

There is no universal rule. A common rule of thumb in spare-parts stores is 36 months or more without an issue; for trading stock and consumables, 12 months or more. Set cut-offs that fit how fast your items normally move.

Should I write off all dead stock?

No. Some slow items are critical or insurance spares held on purpose. Review each item and decide: keep, return to the supplier, transfer, sell or write off.

What is FSN analysis?

FSN analysis classifies items as Fast-moving, Slow-moving or Non-moving based on how often and how recently they are used. It is the same idea as the age bands in this guide.

What is the difference between dead stock and excess stock?

Dead stock is not being used at all. Excess stock is still used, but you hold more of it than you need. Both tie up cash; they need different actions.

← Back to the Dead Stock Finder