East Rises, West Sets

Larry Qi · Inventory & forecasting

"From today, not one more purchase order."

Last winter the owner of a machining company gave that order. Finance had just shown him the numbers: raw material plus work in progress, close to thirty million yuan of inventory — more than half a year of profit, lying flat on the racks.

Three months later inventory was down a little, and delivery had collapsed. Regular items for old customers ran out, rush orders could not be squeezed into the plan, and sales spent every day putting out fires in the group chat.

This is a scene I have watched again and again in twenty-four years of manufacturing. Where did he go wrong? He treated the thirty million as one disease.

That thirty million is really three pots of money with nothing in common — one to throw away, one to keep, one to turn. Different diseases need different prescriptions: cutting every order across the board is taking a fever reducer for a bacterial infection.


Dead stock — the money to throw away. Material that has not moved in 90 or 180 days: what is left over from a forecast that missed, the dedicated parts of a discontinued model, old stock retired by an engineering change, and — like the rare-earth magnets in my first post — what got chased high and piled up in a panic. The cause is a decision made wrong in the past. Clearing it does not hurt delivery; it only brings cash back. Pull the age report, discount what should be discounted, return what should be returned, scrap what should be scrapped. Industry surveys put dead stock in mid-sized manufacturers at 8–15% of inventory on average, and above 20% at some — every point is cash you can still dig out.

Safety stock — the money to keep. The material moves regularly; underneath it lies a buffer. Why buffer? Because supplier lead times drift and customer demand jumps. This layer is insurance bought against uncertainty. The cause is variability, not inventory itself. Cut here and the report looks better at once, with the bill handed to delivery: the day the buffer is eaten through is the day you break a promise. The prescription is to treat the variability — manage the lead times, sharpen the forecast — and when the variability shrinks, the pad thins out by itself.

Cycle stock — the money to turn. The material keeps moving, but too much comes in each time. Why? MOQ, economic order quantity, full-truck freight rates: purchasing buys three months at a time to make the unit price look good. The cause is a lot-sizing decision. The prescription is not to cut orders, it is to change the terms: small and often, consignment, VMI. Every day you take off the turnover cycle is a day of cash back.

Three pots of money, sorted on one sheet: export "value + last movement date" from the ERP and bucket it by age. What has not moved in 91 days, sorted by value, is your dead-stock list. Sort the rest by days of turnover — the slow-moving, big-lot items are the ones you go and renegotiate MOQ on.

Once that sheet exists, "thirty million of inventory" stops being a sentence said in a panic and becomes three prescriptions: how much to throw, how much to keep, how much to turn.

A few reference lines, for comparison (different definitions give very different answers). Industry surveys put dead stock at 8–15% for mid-sized manufacturers, with above 20% clearly high. And the number of days that makes something "dead" differs by company — this post uses 180, others use 90 or twelve months. Match the definition before you compare yourself with a peer.

Back to that owner. The first thing he should have done was not freeze purchasing. It was pull an aging report. What he cut was the money that was supposed to keep delivery alive; the real lesion — the dead stock — was never touched.

Next: now that you can recognise dead stock, discount it, return it, or wait for a turn? There is an arithmetic to it.

← All field notes
East Rises, West Sets · © 2026 Larry Qi · First published at larryqi.com. Reposting is welcome — please credit the source and keep the link; for commercial use, ask first.