← Blog

Why Shopify's Default Reports Don't Show You Aging Inventory

Shopify tells you how much stock you have. It doesn't tell you how long it's been sitting there. Here's why that gap is quietly draining your margin.

Shopify has a decent reporting setup. Revenue trends, top-selling products, inventory levels by location — most day-to-day questions are covered. It's genuinely good for what it does.

But there's one question it can't answer: which products haven't sold in the last 60 days?

That's not a niche question. For anyone managing real inventory, Shopify stock aging is one of the most important things to track. And there's no native way to see it.

What Shopify Reports Actually Show

The Inventory report gives you a snapshot — SKU, quantity on hand, quantity committed. It tells you what you have, not how long you've had it sitting there.

Sales reports show activity. If a product is selling, it shows up. If it stopped selling two months ago, it quietly disappears from the data. There's no flag, no alert, no aging stock report to tell you something has gone cold.

The only way to find out when a specific SKU last sold is to open that product page, scroll through the order history, and figure it out manually. It's possible. It doesn't scale.

Why This Gap Hurts More Than You'd Expect

Unsold inventory in Shopify isn't a static problem — it gets more expensive the longer it sits.

You miss the full-price window first. Then the product needs a discount to shift. Then a bigger one. By the time dead stock reaches clearance territory, you've already given back most of the margin. Meanwhile it's been occupying shelf space or warehouse capacity the whole time.

The reordering trap makes it worse. Most reorder logic is quantity-based — when stock drops below a threshold, trigger a replenishment. But if that product stopped selling three months ago, you're not solving a problem. You're compounding it. Slow-moving inventory just got a second shipment.

The Workaround Most Merchants Use

Export the inventory CSV. Export the sales CSV. Merge on SKU in a spreadsheet. Calculate days since last sale per product. Sort descending.

It works, and the output is exactly what you need. The issue is consistency. Most merchants run this once a quarter, or when cash flow feels tight, or when someone asks why a SKU hasn't moved. By then the aging inventory has already been sitting for a while.

A spreadsheet pulled once is a snapshot. Pulled regularly, it starts to become visibility. The gap between those two things is where most of the cost lives.

What You Actually Need to See

The data for a proper inventory aging report isn't complex. Per SKU, you need three things:

  • Date of last sale
  • Days since that date
  • Current stock level

Add a configurable threshold — flag anything over 30, 60, or 90 days depending on your product category — and you've got a usable system for Shopify dead stock management. You're not scanning 600 products manually. You're reviewing a short list of things that actually need a decision.

All of this is derivable from data Shopify already holds. Every order, every line item, every fulfilment event is recorded. Days since last sale is a calculation away. It's just not surfaced anywhere in the default Shopify inventory analytics.

Does It Actually Change Anything

It does — not because the numbers are new, but because they make the problem concrete.

"This product feels slow" is an observation. "This SKU hasn't sold in 74 days and I have 38 units on hand" is a decision prompt. One leads to a vague intention to do something about it. The other leads to a markdown, a bundle offer, or a discontinuation call.

Timing also changes what options you have. Catching slow-moving inventory at 60 days leaves you with real levers — a targeted discount, a promotional push, a clearance bundle. Catching it at 15 months is basically damage control.

Shopify inventory management is strong in a lot of areas. Inventory visibility for aging stock isn't one of them yet. Until that changes, the merchants who build a consistent process around it — even a rough one — tend to make better decisions with their stock than those who don't.