Something in your store isn't selling. You've noticed it for a few weeks now, and the instinct is to discount it — clear the space, free the cash, move on.
Sometimes that's exactly right, and waiting is costing you real money. But quite often the product isn't a price problem at all, and a discount will do nothing except make you poorer on the units you were going to sell anyway.
Three questions tell you which situation you're in. They take about ten minutes per product, and they'll save you from the most expensive reflex in retail.
Question 1: Is it actually slow?
"Slow" only means something relative to what normal looks like for that kind of product. Two units a month is dying for a phone case and perfectly healthy for a sofa.
The useful measure is days of supply: how long your current stock would last at the rate you're currently selling.
Days of supply = units on hand ÷ (units sold per day)
60 units on hand, selling 0.5 a day, gives you 120 days of supply. Whether that's fine or alarming depends entirely on the category.
Typical days-on-hand ranges vary enormously by sector — benchmarks anchored to retailer filings put grocery around 23–30 days, fashion and apparel anywhere from 61 to 183 days, and furniture 91–183 days. A general rule of thumb used across ecommerce is that a SKU which hasn't earned its space in about 90 days needs a decision, but calibrate that to your own category before you act on it.
The point of this step is to filter out the products that merely feel slow. If you're inside the normal range for your category, you don't have a problem to solve yet.
Question 2: Is price the reason?
This is the question almost nobody asks, and it's the one that decides whether a markdown will work at all. A product can stop selling for four quite different reasons, and only one of them responds to a discount.
Your Shopify analytics already has what you need: sessions on the product page, add-to-carts, and completed orders. The pattern tells you the diagnosis.
| What you see | The actual problem | What to do |
|---|---|---|
| Almost no page views | Nobody knows it exists | Merchandising, not price |
| Good views, few add-to-carts | They looked and declined | Price is a real suspect |
| Add-to-carts, few orders | Checkout, shipping cost, trust | Fix the checkout, not the price |
| Views but the size they want is gone | Broken size or variant curve | Restock or delist, don't discount |
The second row is the classic markdown signal, and it's genuinely diagnostic: people are finding the product, looking at it, and deciding no. Price is one of the few remaining explanations.
The first row is where merchants waste the most money. Discounting a product that gets 12 views a month doesn't produce sales, because a lower price is only persuasive to someone who sees it. You've cut your margin and changed nothing. Fix the visibility — collections, search, internal links, ads — and you may discover the product sells fine at full price.
Look at whether the best-selling variant is in stock. A SKU whose most popular size sold out three weeks ago looks dead in aggregate while actually being starved. Discounting the remaining sizes just sells your odd stock cheaply and leaves you with the same hole.
Question 3: What is waiting actually costing you?
If you've established the product is genuinely slow and price is a plausible cause, the last question is whether to act now or hold. This is where merchants tend to be too optimistic, because the cost of waiting is invisible — nothing appears on a statement.
But it's real, and you can put a number on it. Carrying inventory — warehouse space, capital tied up, insurance, handling, obsolescence — is commonly estimated at 20–30% of inventory value per year. Call it roughly 2% of the product's value every month it sits.
Cost of waiting three months: $6,000 of stock × 2% × 3 = $360, plus $6,000 of cash you can't spend on something that does sell.
Cost of a 15% markdown now: on $10,000 of retail value, about $1,500 of margin.
Here waiting a quarter is cheaper than discounting today — if there's a reason to believe the product sells later. If there isn't, you'll pay the $360, then take the markdown anyway, and the markdown will need to be deeper because you'll have less time.
That last sentence is the trap. Waiting is only rational when something is expected to change: a season arriving, a restock completing, a campaign launching. Waiting because you hope demand appears on its own is just paying rent on the same decision.
The five cases where you should wait
- The season is ahead of you. Winter coats in September aren't slow, they're early. Judge seasonal stock against its own season, never against the calendar month.
- It's too new to know. A product with under a month of history and thin traffic hasn't been tested yet. You'd be discounting on noise.
- Nobody is seeing it. Low traffic means the discount has no audience. Merchandising first; price later, if at all.
- A key variant is out of stock. The demand may be intact and simply unservable. Restocking fixes what a discount can't.
- It's a steady, replenishable staple. Slow but consistent sales at full margin, with low holding costs, is a perfectly good business. Not everything needs to turn quickly.
There's a sixth, softer case: products where discounting damages something you care about more than this quarter's turn. If your customers learn that everything eventually goes on sale, some of them will simply wait for it — and you've converted full-price buyers into discount buyers permanently.
The five cases where you should act now
- Traffic without conversion. People are looking and not buying. This is the strongest price signal you'll get.
- More stock than runway. Weeks of supply exceeds the weeks left in the product's selling window. The current price cannot clear it; only a different price can.
- The peak has passed. Seasonal stock after its season is a depreciating asset, and it depreciates faster than your carrying cost.
- It's aged past your category's norm. Well beyond normal days-on-hand with no restock or campaign pending means the "it might pick up" theory has been tested and failed.
- The write-off is in view. If the realistic alternative is disposing of the stock, almost any price above handling cost beats zero. A 30% markdown that clears is better than a total loss in six months.
Make it a monthly habit, not a panic
The merchants who handle this well don't agonise over individual products. They run the same short review on a schedule, so decisions happen on time instead of in a crisis.
A workable cadence, widely used in retail: set markdown review triggers at 60, 90 and 120 days of stock age. At each trigger a product gets one of four verdicts — hold, mark down, bundle, or discontinue — and "hold" requires a stated reason with a date attached. Once a month is enough for most catalogs.
The discipline matters more than the exact thresholds, because early decisions are cheap and late ones are expensive. A markdown taken with two months of runway can be shallow and staged. The same product with two weeks left needs a deep cut across all its stock. Same product, same demand — the only variable was how long you took to decide.
Before the next review, it's worth knowing your current position. Our free Sale Section Checker reads your public catalog and shows how many products are discounted, the average markdown depth, and the deepest one running. No signup required.
Have this review done for you
PricePulse watches your catalog for exactly these signals — products aging past their normal turn, stock that outlasts its runway, items with traffic but no conversion — and turns each one into a staged plan with the projected revenue impact. It never changes a price itself; every recommendation links to the product in your Shopify admin for you to approve.
Try PricePulse freeThe short version
- Measure days of supply against your category, not against a feeling. Most "slow" products are normal.
- Diagnose before discounting. Traffic with no conversion is a price signal; no traffic is a merchandising problem a discount cannot fix.
- Price the wait. Roughly 2% of value per month, plus the cash you can't redeploy. Compare it with the margin a markdown would cost.
- Only wait for a reason with a date on it — a season, a restock, a campaign. Hope is not a reason.
- Decide on a schedule. 60/90/120-day triggers keep markdowns shallow, because time is the thing that lets you be gentle.
Read next
Sources
- AisleStock — Inventory turnover & carrying cost benchmarks 2026 (days-on-hand by sector, carrying cost range)
- Shopify Retail — Slow-moving inventory: how to identify and manage it
- Onebeat — Markdown effectiveness in retail
Dollar figures in the worked examples are illustrative. Substitute your own stock value, margin and sales rate — the comparison is what matters, not the numbers.