Walk into most maintenance storerooms and you’ll find two contradictory problems sharing the same shelves. There’s a drawer of belts nobody has touched in four years, bought for a machine that was decommissioned back in 2021. And a few feet away there’s an empty hook where the bearing you need right now should be, the one keeping a line down while you wait three days for freight. Too much of what you don’t need, none of what you do. That’s the spare parts problem in a sentence, and it’s almost never about the total dollar value sitting on the shelf.
The two costs you’re balancing
Every spare part decision sits between two costs that pull in opposite directions, and most of the job is just finding where they balance for that particular part.
Carrying cost is what it costs to own a part sitting on a shelf. Cash is tied up, since money in inventory can’t be spent on anything else. The part takes up space you pay for. And it can corrode, expire, or go obsolete the moment the equipment it fits gets replaced. A common rule of thumb puts annual carrying cost at 20 to 30 percent of a part’s value, so a $5,000 part costs you roughly $1,000 to $1,500 a year just to keep around, whether you ever use it or not.
Stockout cost is what it costs when you need a part and don’t have it. This is the one teams underestimate, mostly because it never shows up as a tidy line item. It’s the downtime while production waits. It’s the emergency freight, where overnight shipping can run more than the part itself. It’s the overtime to finish the repair once the part finally lands, and the knock-on delay to every other job that got pushed back.
The reason “how much stock is too much” has no single answer is that these two costs look wildly different from one part to the next. For a cheap, fast-shipping part on non-critical equipment, the stockout cost is low and you should hold very little. For an expensive, long-lead part on the machine that runs your whole operation, the stockout cost dwarfs the carrying cost, and you should hold one no matter what it costs to sit there idle. Trouble starts when you apply the same gut instinct to both.
Criticality decides almost everything
Before you set a single stock level, sort your parts by what actually happens when you don’t have them. This one decision drives most of the value in spare parts inventory management, and it’s usually the step teams skip.
A workable three-tier split:
Critical. If this part fails and you don’t have a spare, core operations stop, or there’s a safety or compliance exposure. The bearing on the only compressor. The control board with a six-week lead time. The seal on the one pump that has no backup. For these, you stock to availability, not to cost. The math is simple: if a stockout costs you $40,000 in downtime and the part costs $3,000 to hold, you hold the part. Lead time and consequence, not unit price, set the level.
Essential. Important equipment, but with some buffer — a backup unit, a workaround, or a short enough lead time that a stockout is painful but survivable. Stock these at moderate levels driven by usage rate and lead time, and don’t panic over the occasional gap.
Non-critical. Common consumables and parts for equipment that can wait. Filters, fasteners, generic belts, anything a local supplier has same-day. Hold very little, or nothing, and let the supply chain be your warehouse. The carrying cost of stocking these deep almost never beats a same-day run to the supplier.
Most storerooms are upside down on this. They run deep stock on the cheap non-critical parts that are easy to get, and thin or no stock on the expensive critical parts that take weeks to source. Sorting by criticality flips it back the right way around, and for most teams it’s the single biggest win on the table.
Min/max and reorder points
Once parts are sorted by criticality, you can set actual numbers. The standard tool is the min/max model, and it’s worth understanding why each of the three numbers is what it is.
Minimum is your safety stock, the floor you don’t want to drop below. It covers the demand you’ll see during the time it takes a new order to arrive. The formula behind it is plain enough: average usage across the lead time, plus a buffer for the times usage runs hot or the supplier runs late. A part you use two of per month with a one-month lead time needs a minimum that covers more than two, because some months you’ll burn through three and some months the shipment slips.
Reorder point is the trigger. When stock on hand drops to this level, you order, right then, not at the next monthly review. It’s set so the order arrives before you hit the minimum. Reorder point equals usage during the lead time plus your safety stock. Get it right and you replenish without ever running dry.
Maximum is the ceiling, how much you hold right after a replenishment. It comes out of order economics (you don’t place a tiny order for a single washer) balanced against carrying cost (you don’t buy a two-year supply of anything just to save a little on shipping).
The catch is that these numbers are only as good as your usage data. If you don’t actually know how many of a part you went through last year, every level above is a guess in a nice-looking box. That’s the real argument for tracking consumption. It’s not the running count that matters so much as the demand history that makes the count mean anything.
Dead stock is the silent budget leak
Dead stock is inventory that hasn’t moved in a long time and probably never will. Parts for retired equipment. Over-ordered consumables. The “just in case” purchase that’s been waiting on its case for three years now. Every storeroom accumulates some, and most teams never look directly at it, because it isn’t actively causing a problem. It’s just quietly costing money in the background.
The damage is real, though. That carrying cost, call it 25 percent a year, applies to dead stock exactly the way it applies to useful stock. A storeroom carrying $50,000 in parts that haven’t moved in two years is burning something like $12,500 a year to store things it will never use, plus the shelf space and the time wasted searching past them to find what you actually need.
The fix is a recurring review rather than a one-time purge. Once or twice a year, pull every part that hasn’t moved in 12 to 24 months and ask one hard question of each: is the equipment it fits still in service? If not, scrap it, return it, or sell it, and stop reordering it. If the equipment is still running but the part hasn’t moved, it might be a legitimately rare critical spare you’re keeping on purpose, or it might just be dead. Either way, the point is to decide on purpose instead of letting the shelf fill up by default. For a fuller view of how these carrying costs feed into the financial case for systematic maintenance, our CMMS ROI breakdown puts numbers to it.
But what about parts you use once a decade?
The min/max model assumes parts that move with some regularity. It falls apart for the genuinely rare critical spare, the control module for a machine that runs flawlessly for years until the one day it doesn’t, with a lead time measured in months.
Usage history is no help here. You can’t set a reorder point from demand data when demand is zero right up until it’s catastrophic. These parts come down to a straight risk judgment. You take the probability of failure over some planning horizon, multiply it by the cost of a stockout (which for these parts means weeks of downtime), and weigh that against the carrying cost of holding one spare you may never install.
For a part on equipment that stops your whole operation, that math almost always lands on “hold one,” even if it sits untouched for a decade and you write it off as carrying cost the whole time. That’s not dead stock, that’s insurance. The difference is entirely whether you decided to hold it on purpose. Dead stock is the part everyone forgot about; an insurance spare is a documented, deliberate choice you can defend in a budget review.
Getting out of the spreadsheet
Most teams run spare parts inventory in a spreadsheet, and for a small storeroom that honestly works fine, right up until it doesn’t. The problem with the spreadsheet is that it never updates itself. A part comes off the shelf during a repair, and unless someone remembers to open the file and knock the count down by one, the number is now wrong. The errors compound quietly. Within a few months the spreadsheet swears you have four of something you have zero of, and you usually find out at the worst possible moment.
The structural fix is connecting parts to the work that consumes them, so the count moves when the part moves. In TeamWork, parts and inventory ties stock to work orders. Log a part on a job and the on-hand count drops on its own, and reorder points flag the part for replenishment before you run dry. That closes the gap between what the system claims you have and what’s really sitting on the shelf.
If your storeroom has crossed the line where the spreadsheet costs you more than it saves, a 30-day free trial at teamworkcmms.com gives you time to load your critical spares, set min/max levels against real usage, and see whether tracking consumption against work orders fixes the count-drift problem for your team.