Uncover Hidden Dead Stock: Your Guide to Finding Zero-Sale Products in Shopify

Hey store owners! Let's talk about something that can quietly eat away at your profits and tie up valuable cash: dead stock. You know, those products that are just sitting there, taking up space, but haven't moved an inch in months. It's a common issue, and honestly, it's surprisingly easy to miss, even if your overall sales numbers look fantastic.

Recently, a really insightful discussion popped up in the Shopify community about exactly this problem: how do you find products that haven't had a single sale in the last 90 days? It's a question that catches a lot of us off guard, and the answers shared were incredibly practical. I wanted to break down the best advice for you.

Why Dead Stock Hides in Plain Sight

The core of the problem, as one community member, @Report_Pundit1, pointed out, is that your sales reports are built from orders. If a product hasn't been ordered, it simply doesn't show up in those reports. So, you can have a great-looking sales overview while a significant chunk of your catalog is just collecting dust. It's not about looking for zeros in a sales report; it's about comparing your entire catalog against what actually sold.

The Community's Go-To Method: Catalog vs. Sales Comparison

The most effective way to uncover these hidden gems (or rather, hidden duds!) is to do a direct comparison between every product variant you offer and every product variant you've actually sold. Here's how the community recommends tackling it:

Step 1: Get Your Full Product Catalog Data

First, you need a complete list of all your product variants. You can get this right from your Shopify admin:

  1. Go to Products → Export.
  2. Choose to export All products.
  3. Select CSV for Excel, Numbers, or other spreadsheet programs (unless you have a specific reason for plain CSV).
  4. Click Export products. You'll get an email with a download link.

Step 2: Clean Up Your SKUs – This is CRUCIAL!

This is where a vital piece of advice from @ecom-4all comes in. They rightly warned that "the join is only as good as its key, and SKUs are optional in Shopify with duplicates only earning you a warning in the admin." This means if you have variants with blank SKUs, or even worse, duplicate SKUs for different products, your comparison will be inaccurate. You might mistakenly flag a product as having zero sales when it actually sold, but its SKU data was messy.

Before you do anything else with that product export:

  • Fill in any blank SKUs: Every variant should ideally have a unique SKU.
  • Deduplicate SKUs: Ensure each variant has a unique SKU. If you find duplicates, you'll need to decide how to handle them (e.g., assign unique SKUs, or understand why they're duplicated and if it affects your analysis).

This cleanup is non-negotiable for accurate results!

Step 3: Export Your Sales Report by Product Variant SKU

Next, you'll need your sales data for the period you're interested in (e.g., the last 90 days):

  1. Go to Analytics → Reports.
  2. Find a sales report by Product variant SKU.
  3. Set the date range to your desired period (e.g., Last 90 days).
  4. Export this report.

Step 4: Combine the Data and Find the Zeros with XLOOKUP

Now, open both exported files in your favorite spreadsheet program (Excel, Google Sheets, etc.).

  1. Put both files into one spreadsheet (usually by copying the sales data into a new sheet in your product export workbook). Let's say your product catalog is on 'Sheet1' and your sales data is on 'Sales' sheet.
  2. In your product catalog sheet, next to your SKU column (let's assume it's column A), add a new column for "Units Sold (Last 90 Days)".
  3. In the first cell of this new column (e.g., B2, if A2 is your first SKU), enter the following formula. This brilliant little trick, shared by @Report_Pundit1, will look up each SKU from your full catalog in your sales report and pull in the units sold. If it doesn't find a match (meaning no sales), it'll show a 0.
=IFERROR(XLOOKUP(A2, Sales!A:A, Sales!B:B), 0)

(Note: Adjust A2, Sales!A:A, and Sales!B:B to match your actual column and sheet names for SKUs and Units Sold in your sales report.)

  1. Drag this formula down to apply it to all your product variants.

Everything showing 0 in this new column had no sales in that period!

Step 5: Refine Your Zero-Sales List

Before you jump to conclusions, apply some filters to your newly generated list:

  • Filter out recently added products: New items naturally won't have sales yet.
  • Filter out drafts or archived items: You're only interested in active, sellable products.
  • Consider net sales: As @Report_Pundit1 mentioned, the sales report counts net items sold. A product that sold and was then returned might still show 0, so keep that in mind for specific cases.

Once your list is clean, @ecom-4all also had a great tip: sort your zero-sale list by units still on hand. This immediately highlights where your biggest chunks of frozen cash are sitting, helping you prioritize what to tackle first.

Beyond the Spreadsheet: Shopify's Built-in Reports as Cross-Checks

While the spreadsheet method is powerful for finding absolute zero-sellers, Shopify's own analytics can offer complementary insights and act as useful cross-checks:

  • ABC analysis by product: This report grades your products A, B, or C based on revenue contribution. It's fantastic for seeing your top performers, but remember, products with no sales won't appear here.
  • Product sell-through rate: Shows what percentage of your available stock actually sold. A low rate is a red flag, indicating a product is slowing down even if it hasn't completely stopped. Again, it only includes variants that sold at least once.
  • Products by days of inventory remaining: This estimates how long your current stock will last. For variants with no sales in the period, it will often show "N/A," which makes it a quick visual confirmation for items on your zero-sales list. A very high number for a selling product also signals potential overstock.

What to Do Once You've Found Them

Identifying dead stock is the first step; taking action is the next! The community suggested several strategies:

  • Bundle them: Pair slow-movers with best-sellers at a discount.
  • Run a clearance sale: Get that cash moving, even if it's at a lower margin.
  • Check with suppliers: See if returns or exchanges are possible.
  • Stop reordering: Prevent future dead stock.

This kind of regular inventory audit is a game-changer for maintaining a healthy cash flow and efficient warehouse. It's not just about finding what didn't sell, but understanding why, and making smarter decisions going forward. So, what's your cutoff? Does 90 days work for you, or do seasonal products need a longer window? It's all about what makes sense for your unique store!

Share:

Use cases

Explore use cases

Agencies, store owners, enterprise — find the migration path that fits.

Explore use cases