How to Spot Slow-Moving Inventory: 6 Checks in 2026

Every inventory export contains money that is not moving. The hard part is not finding the zeros. It is deciding which slow lines are a problem and which are simply how that product sells.
Get that judgment wrong in one direction and you write off stock you would have sold. Get it wrong in the other and cash sits in a warehouse for a year.
There is no universal number of days that separates the two. What there is, is a repeatable set of checks you can run on the file you already have.
This guide covers what slow-moving inventory is, why a fixed threshold fails, six checks to run, and where the manual route stops holding.
What counts as slow-moving inventory
The useful distinction is between stock you still want and stock you no longer want.
The SLOB inventory guide describes slow-moving inventory, also called excess or aged inventory, as products that are "needed" but "in excess." Obsolete inventory is different: products that are "not needed anymore," "out of date," or from "old collections."
That split changes the action. Slow-moving stock needs a demand or purchasing decision. Obsolete stock needs a disposal decision, and no amount of promotion fixes it.
At the other end sits the failure everyone notices. A stockout is an event where inventory is exhausted, and overstock is the opposite condition of holding too much. Most inventory reports chase stockouts and never quantify the overstock, which is the more expensive of the two.
Why a fixed threshold does not work
The temptation is to declare anything unsold for 90 days a slow mover. Sometimes that is right. Often it is meaningless.
The SLOB guide recommends deriving the threshold from your own data instead. Calculate your overall stock turn, then set the limit slightly above that baseline. In its worked example the overall stock turn is 35 days and the suggested limit is 40 days.
It is explicit that this is not a rule to copy. The instruction is to "adapt this number to your business," taking lead times, reorder points, and safety stock levels into account.
The calculation it gives for stock turn is inventory value divided by sales, multiplied by the period in days. Run that on the whole catalogue first, then per product, then compare.
So your threshold is an output of the analysis, not an input to it. Write the number you chose onto the report so next quarter's version is comparable.
The six checks
Run these in order. Each one answers a question the previous one raises.
Check 1: Days since last sale
The simplest signal, and the one to start with. For each SKU, subtract the last sale date from today.
Use TODAY for the current date so the column refreshes itself. Sort descending and read the top of the list.
This check finds candidates. It does not confirm anything, because a product that sells twice a year is not broken.
Check 2: Stock turn against your own baseline
Now compare each SKU against the catalogue baseline you calculated. Anything materially above your chosen limit becomes a flagged line.
Use SUMIFS to total sales per SKU over the period, then apply the stock turn calculation per product.
This is the check that separates genuinely slow lines from lines that only look quiet in a short window.
Check 3: Cover in days versus lead time
Divide current stock by average daily sales to get cover in days. Then compare that against the supplier lead time for the same SKU.
Cover far above lead time means you are holding stock you did not need to hold yet. Cover below lead time means the next order arrives too late.
This check is where slow-moving and stockout risk turn out to be the same analysis viewed from two ends.
Check 4: Value at risk, not unit count
Sort your flagged lines by inventory value rather than by units. A thousand slow-moving screws and three slow-moving machines are not the same problem.
This reorders your attention immediately. It is common for the top five lines by value to represent most of the exposure.
Report the total value of flagged stock as one figure. That number is what a finance conversation actually needs.
Check 5: Stockout frequency on the fast movers
Slow lines are only half the picture. Count how often your fastest-moving SKUs hit zero using COUNTIFS on stock-level snapshots.
Frequent stockouts alongside heavy slow-moving stock usually points at one cause. Purchasing is allocating budget to the wrong lines.
Without this check the report reads as a write-off list. With it, the report becomes a purchasing argument.
Check 6: Obsolete versus slow-moving status flag
Finally, split the flagged lines by product status. The SLOB guide lists product status flags, active versus obsolete, among the required columns for exactly this reason.
Check that the flag is trustworthy before relying on it. Use UNIQUE to list the distinct status values, because after a system change you will often find three spellings of the same state.
Lines flagged obsolete leave the demand conversation and enter the disposal one. Keep them in separate tables.
How to do it manually
Option 1: One flag column per check. Six columns on the SKU list, one per check above, then filter on combinations. Keep each check visible rather than nesting them into a single verdict, because you will be asked why a line was flagged.
Option 2: A pivot by category and value band. Aggregate the flagged lines by product category, then by value band. This is what turns a long SKU list into three decisions.
Option 3: A parameters tab. Record your stock turn baseline, your chosen limit, the period, the lead times used, and the date of the export. This is what makes the report re-runnable next quarter.
The shared ceiling. All three assume stock and sales are on the same key and the same period. When a sales export covers weeks and a stock snapshot covers a single day, reconciling those comes before any of the six checks.
Where the manual route slows down
The first pass takes a day and finds real money. The second pass, a quarter later, takes almost as long because everything underneath moved.
Product catalogues change constantly. New SKUs, renamed SKUs, and merged SKUs all break a comparison against last quarter's list.
Baselines move too. Your overall stock turn is different this quarter, so the threshold derived from it moves too. A line that was fine last quarter is now flagged for reasons unrelated to the product.
Then there is the failure that costs the most. Flagged lines get reviewed once and no decision is recorded. The same lines then appear on the next report with three more months of holding cost attached.
How to build it with Powerdrill Bloom
Step 1: Upload your inventory and sales exports
Upload the stock file and the sales file together. Powerdrill Bloom profiles the columns on arrival, so mismatched SKU formats, duplicate product codes, and inconsistent status values surface before any line is flagged.
Step 2: Describe the checks in natural language
State the rules rather than building them. Give the period, the lead times if you have them, and the status values that mean obsolete.
Then ask for the checks in order. Ask for the overall stock turn first, then for the per-SKU figures above your chosen limit. Next ask for the flagged lines sorted by value rather than units. Finally ask for stockout counts on the fastest movers.
Step 3: Export the chart, report, or deck
Take out the flagged table, a value-at-risk chart, or slides that carry the threshold you used alongside the results.
Why this beats re-running it by hand
| Manual route | Powerdrill Bloom | |
|---|---|---|
| Deriving the baseline stock turn | Formula across the catalogue | Ask for it first |
| Testing a different threshold | Rebuild every flag column | State the new limit and ask |
| Mismatched SKU keys between files | Spot it in a broken lookup | Surfaces on upload |
| Re-running next quarter | Rebuild against a changed catalogue | Swap the files, keep the rules |
The second row is where the judgment actually happens. Being able to see the flagged list at 40 days and at 60 days turns a threshold argument into a comparison.
Common mistakes
Copying a 90-day threshold from an article. Derive it from your own stock turn baseline, then adapt it for lead times and safety stock, as the SLOB guide instructs.
Ranking flagged lines by units. Units hide the exposure. Sort by inventory value and report the total value at risk.
Treating slow-moving and obsolete as one list. One needs a demand decision, the other a disposal decision. Split them by status flag.
Ignoring stockouts while hunting overstock. They are usually the same purchasing problem. Report both or the analysis reads as a write-off request.
Trusting the status column after a system change. List the distinct values first. Three spellings of "obsolete" will quietly split your totals.
Comparing a stock snapshot against a sales period. One is a moment, the other is a range. Align the periods before any calculation.
Flagging lines without recording a decision. An unactioned flag becomes next quarter's flag with more holding cost. Log the decision beside the line.
Conclusion
Derive your threshold from your own stock turn, run the six checks in order, rank by value rather than units, and split slow-moving from obsolete. That is what turns an inventory export into a purchasing decision.
The expensive part is not the first analysis. It is that catalogues and baselines both move, so the report has to be re-runnable rather than rebuilt.
If that is where your quarter goes, try Powerdrill Bloom on your current export. See also the roundup of AI tools for inventory and demand forecasting and the supply chain analytics tools list. Our guide to finding outliers without code covers the detection side. The CSV AI assistant and AI forecasting pages cover the tooling.
Frequently asked questions
What is slow-moving inventory?
It is stock you still need but hold in excess, also called excess or aged inventory. It differs from obsolete inventory, which is stock that is no longer needed at all.
How many days without a sale makes something slow-moving?
There is no fixed number. Calculate your overall stock turn and set the limit slightly above that baseline. Then adapt it for lead times, reorder points, and safety stock.
How do I calculate stock turn?
The SLOB guide gives inventory value divided by sales, multiplied by the period in days. Run it across the whole catalogue for a baseline, then per SKU for comparison.
Should I rank flagged lines by units or by value?
By value. Units treat a thousand cheap parts as a bigger problem than a few expensive ones, which sends attention to the wrong place.
Why include stockouts in a slow-moving inventory report?
Because heavy slow-moving stock alongside frequent stockouts usually points at one cause, which is budget allocated to the wrong lines. Reporting both turns the analysis into a purchasing decision.