Shopify dead stock report: what has not sold, where it sits, and what it is costing you
Inventory reports show what is on hand today. The question before a markdown is which variants have not sold in 90 days and how much money they are holding on the shelf.
A small-business reviewer on G2 said in 2019 that "you should be able to have a view of inventory on-hand in the past, not just day of." The inventory screen is a snapshot: what is in each location right now. The question an owner asks before a sale, a bundle or a discontinuation is the opposite one: of everything on hand, what has not moved, since when, and what is it holding?
What the report shows
A dead stock report, on the first of each month, lists every product and variant that has not sold in the last 90 days:
- stock on hand, per location
- the unit cost you entered on the variant
- the capital tied up in it (on hand times unit cost)
- the date it last sold
A second table groups the same rows by location, so a store with a warehouse and a shop can see where the slow stock actually sits.
Why it takes a schedule
Shopify's product export and its sales reports live in different places, so the usual method is to export products, export sales, and match them by hand, about ninety minutes a month that mostly does not happen. The result is capital sitting on a shelf for a year because no report could list what has not sold. A monthly list with a cutoff you chose is the simplest fix: the variants that appear on it three months running are the markdown.
About the cost column
Cost per item is a number you type into each variant. Where it is missing, the tied-up capital for that row is blank rather than guessed, so the total stays something you can stand behind. The profit report lists the same variants separately for the same reason.
How Captain Miles does it
Describe the report in a sentence, with your own cutoff if 90 days is not yours. Captain Miles shows the plan before anything runs, then builds the report from the products, variants, inventory levels and orders in your own store, on the first of every month, with a note on how each number was produced. Your store data is used for your store only, never trained on, and deleted within 30 days if you uninstall. The ready-made version is below.