Every inventory you have sitting in stock that hasn’t moved in 90 days is money you can’t reinvest in what is selling.

Every business has dead stock. They sit on the back corner of the warehouse, or the shelf your 3PL keeps billing you for.

How did all of this start anyway? Well, you bought 300 units because the supplier gave you a better unit price at 300, and you’ve only sold 41 of them since the start of the year.

Nobody in your team brings it up. There’s no alert or angry customer. So it’s not urgent. But it sits there, quietly, holding your money.

That’s the thing about dead stock and slow-moving inventory: it never announces itself. And usually only gets discussed at quarter-end when someone asks why there’s no money to market the products that actually sell.

Key takeaways

  • Define what is a “dead stock”
  • Rank dead stock by capital trapped in (RM) Ringgit value, not by unit count. 40 units of an RM180 product outrank 900 units of an RM4 product.
  • Decide fast. Dead stock loses value every month you wait

Why slow-moving inventory deserves your attention

Stock is cash you already spent. Until it sells, it’s frozen.

Say you have RM38,000 of landed cost sitting in products that haven’t moved in three months. That’s RM38,000 you cannot use to:

  • Restock the SKU that sells out every week.
  • Fund your ads during 11.11.
  • Take the volume discount your supplier is offering.

Then it gets worse in three ways.

  • Storage keeps billing you. Your own warehouse, a 3PL, or marketplace fulfilment storage fees. You’re paying rent on stock that isn’t earning.
  • It loses value. Packaging dates, model refreshes, seasonal relevance, and in some categories, actual shelf life. RM38,000 of stock quietly becomes RM30,000 of stock while you do nothing.
  • It steals attention. Someone on your team re-shoots it for a campaign that won’t work. It takes listing slots and ad budget that belong to your winners.

None of this shows up on a revenue dashboard. That’s why so many e-commerce businesses miss it.

Step 1. Set your threshold for dead stock

Dead stock is stock that has stopped moving. The hard part is picking where the line sits and then not moving it every month.

Here’s a workable default for most Malaysian marketplace sellers:

Tier Definition (rolling 90 days) What it means
Tier 0 Zero units sold, or sell-through under 5% Dead. Cash is stuck. Act now.
Tier 1 Sell-through 5% to 20% Slow. Stop reordering and watch it.
Tier 2 Sell-through 20% to 60% Healthy. Normal reorder cycle.
Tier 3 Sell-through above 60% Fast. Your risk is a stockout, not surplus.

Use sell-through rate, not raw units sold.

Sell-through % = units sold in the period ÷ (units sold + units still on hand) × 100

Units sold on its own tells you nothing about how much stock you’re still holding. Selling 20 units in 90 days is healthy when you have 15 left. It’s a serious problem when you have 600 left.

Two adjustments before you lock your threshold in:

  • Seasonal lines need a 12-month view, not 90 days. Raya, Christmas, and back-to-school stock is supposed to be flat for most of the year.
  • New products need an exclusion window. Anything listed in the last 60 days hasn’t had a fair go yet.

Step 2. Pull it from data you already have

You need two things in one sheet. Units sold over your window, and units on hand with their cost.

  • Shopee: Seller Centre → Business Insights → Product. Set the last 90 days and export.
  • Lazada: Business Advisor → Product Performance. Same window and export.
  • TikTok Shop: Check the product performance export.

For stock: Check your own stock list, or the stock on hand figures on the Shopee and Lazada product pages if you hold everything with the platforms.

Then build five columns per SKU: units sold (90d), units on hand, cost price, sell-through %, and money stuck (units on hand × cost price).

Filter to sell-through under 5%. That’s your Tier 0 list.

Pro Tip: Do this per SKU, not per parent listing. A parent product can look perfectly healthy while three of its five variants have never sold a single unit. Size and colour variants are where a surprising amount of the money hides.

Step 3. Rank by money stuck, not unit count

Sort your Tier 0 list by money stuck, highest first. It probably won’t look like the list you expected.

SKU Units on hand Cost Price Money Stuck
Massage cushion, premium 42 RM185 RM7,770
Phone holder, black 910 RM4.20 RM3,822
Travel pillow set 60 RM52 RM3,120

In the example above, the phone holder feels like the bigger problem. 910 units take up a whole shelf in a warehouse.

But the massage cushion is actually holding more money.

Step 4. Clear it, bundle it, or let it go

Here are four ideas to clear off dead stock and reclaim some money to put into other use.

1. Discount ladder. Start at 15% off for two weeks, then 30%, then 50%. Check each percentage discount against your cost price to see which one takes you below break-even, and decide upfront how much you’re willing to discount.

2. Bundle it with a fast mover. Attach the dead SKU to something that already sells, and turn it into a bundle. This is the least painful option because you’re borrowing demand that already exists rather than paying for new attention.

3. Use it as a gift with purchase. A dead item that cost you RM20, free above a RM150 basket, turns stuck stock into a bigger basket size.

4. Liquidate or write it off. Bulk lots to a clearance buyer, a staff sale, or a donation. This is probably the last option you should take, so only go with this if the storage and the attention are costing you more than just keeping them.

Whatever you pick, stop any reorders.

Or do it in BRP in three clicks

Analyzing dead stock and seeing how much money you have stuck is something you can do in just minutes.

If your stores are connected to BRP:

  1. Open the Dashboard, set the date range you want to judge on, and work from Products & Ads. You get per-SKU movement across Shopee, Lazada, TikTok Shop and your own site in one list instead of three exports.
  2. Let the slow movers surface on their own. Dead stock shows up in month two, when 15% off still clears it, instead of at quarter-end when only 50% will.
  3. Check each SKU’s True Profit contribution before you decide how much to discount, so you know which discount rung will put you underwater.

A spreadsheet is slow to compile and visualize. Having a dashboard that connects to every marketplace you sell on puts speed back into your hands and helps you catch dead stock and fix your cashflow.

Make it a habit

Here are two habits worth building:

  • Check sell-through before every reorder, not just at review time. Most dead stock is created at the purchase order, not at the sale.
  • Set a rule for how long a SKU can sit at Tier 0 before it goes to clearance. Depending on the nature of your business, this can be 3-months or 6-months. Having a rule matters, because your team would then operate with numbers rather than gut-feel.

FAQs

1. What timeframe should I use to define dead stock?

90-days works for most fast-moving marketplace categories. Use 180 days for high-ticket items with long sales cycles, and a full 12 months for genuinely seasonal lines. Use the same timeframe every month so you can compare.

2. Should I discount dead stock or just write it off?

Try a discount ladder first. Even a 50% recovery beats a full write-off. Move to liquidation once a SKU has sat at Tier 0 for two straight quarters, or when the storage and handling cost over the next six months would be more than you’d recover.

3. Does clearing stock at a big discount hurt my listing or brand?

Throwing big discounts on a dead SKU can change how buyers read your pricing, and platform algorithms may treat the discounted price as your new reference point. Bundling and gift with purchase, avoid most of that.

4. How do I stop accumulating dead stock in the first place?

Most of it is created at the purchase order, usually by a supplier volume discount that looked good on unit cost. Check sell-through and turnover on existing stock before every reorder. A better unit price on stock you can’t move is not a saving. Smaller, more frequent orders cost more per unit and leave far less money stuck.

5. Should I count variants separately?

Yes, always. A parent listing can look healthy while individual size or colour variants have never sold at all. Variant-level dead stock is one of the most common hiding places for trapped capital.

Final thoughts

Dead stock isn’t an inventory problem you fix with better shelving. It’s the cash you don’t have for the products that are working.

Connect your marketplace stores to BRP, and see your slow-moving stock across every sales channel you sell on.