Maintenance storerooms are where good intentions go to collect dust. Too many plants either overstock everything (tying up hundreds of thousands of dollars in parts that sit on shelves for years) or understock critical items (causing extended downtime while waiting for emergency shipments). The solution is not intuition; it is math. Inventory theory provides formulas for reorder points, safety stock, and economic order quantities that balance holding costs against stockout risk.
The challenge with MRO (maintenance, repair, and operations) spare parts is that most items are slow-moving. A typical industrial storeroom has 60-70% of its SKUs with annual demand of fewer than 10 units. Standard inventory models built for retail and manufacturing (where items sell hundreds or thousands per year) do not work well for parts used once or twice a year. Slow-moving items require different statistical models, specifically the Poisson distribution, to calculate safety stock accurately.
ABC Segmentation: Not All Parts Are Equal
The first step in storeroom optimization is segmentation. ABC analysis divides inventory into three groups based on annual spend: A items (top 10-20% of SKUs accounting for 70-80% of spend), B items (next 20-30% of SKUs accounting for 15-20% of spend), and C items (bottom 50-60% of SKUs accounting for 5-10% of spend).
A items get the most attention: frequent demand reviews, tight safety stock calculations, and active vendor management. B items get moderate attention: periodic reviews and standard safety stock. C items get minimal individual attention: set reasonable min/max levels and focus management time on the A items that drive total inventory value.
But ABC alone is insufficient for MRO. A cheap consumable (like a V-belt) might be a C item by spend but is needed immediately when it breaks. A $10,000 spare motor might be an A item by spend but is only needed once every five years. You need a second dimension: criticality.
VED (Vital, Essential, Desirable) or criticality scoring adds the consequence of stockout. A vital spare whose absence shuts down the plant for days gets high service level targets (98-99%) regardless of its spend category. A desirable spare whose absence can be tolerated for a few days gets lower service level targets (90%). Cross-referencing ABC with VED gives you a 9-cell matrix that drives differentiated stocking policies.
AV (high-spend, vital): Tight control, 98%+ service level
AE, BV: Important, 95% service level
AD, BE, CV: Moderate, 90-95% service level
BD, CE, CD: Lower priority, 85-90% service level
Spare Parts Reorder Calculator
Calculate reorder points, safety stock, and economic order quantities for MRO spare parts. Uses Poisson distribution for slow-moving items and normal distribution for fast-movers.
Reorder Point and Safety Stock: The Math
The reorder point (ROP) is the inventory level at which you place a replenishment order. It equals the average demand during lead time plus safety stock: ROP = d * L + SS, where d is average daily demand, L is lead time in days, and SS is safety stock.
Safety stock is the buffer against variability. For fast-moving items (10+ units per year), the normal distribution works: SS = z * sigma * sqrt(L), where z is the z-score for your target service level (1.28 for 90%, 1.65 for 95%, 2.33 for 99%), sigma is the standard deviation of daily demand, and sqrt(L) scales for the lead time period.
For slow-moving items (fewer than 10 per year), normal distribution breaks down because demand is lumpy and discrete. A part used 3 times per year might have demands of 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1 per month. The Poisson distribution handles this properly. Poisson safety stock is found by looking up the cumulative Poisson probability at the target service level for the mean demand during lead time.
Example: a part with annual demand of 4, lead time of 3 months, and 95% service level. Mean demand during lead time = 4 * (3/12) = 1.0 units. Using Poisson CDF: P(X=0) = 0.368, P(X<=1) = 0.736, P(X<=2) = 0.920, P(X<=3) = 0.981. For 95% service level, stock 3 units. ROP = 3. Using normal distribution would give ROP = 2, which provides only 92% service level. The difference matters for critical spares.
ROP = d × L + SS
Fast-movers (normal): SS = z × σ × √L
Slow-movers (Poisson): SS from CDF lookup at target service level
Service level z-scores:
90% → z = 1.28
95% → z = 1.65
99% → z = 2.33
Economic Order Quantity for MRO
The economic order quantity (EOQ) balances ordering costs against holding costs. The classic formula is: EOQ = sqrt(2 * D * S / H), where D is annual demand, S is the cost per order (administrative processing, receiving, inspection), and H is the annual holding cost per unit (unit cost times holding rate percentage).
For high-volume consumables like filters and gaskets, EOQ drives meaningful savings. If you use 500 filters per year at $10 each, with $75 per order cost and 25% holding rate, EOQ = sqrt(2 * 500 * 75 / 2.50) = 173 filters per order, or about 3 orders per year. Without EOQ, you might order monthly (42 per order, 12 orders) or quarterly (125 per order, 4 orders). The monthly approach costs $900/year in ordering costs versus $218/year for EOQ. The quarterly approach costs $300/year in ordering costs but $312/year in holding costs versus $218/year each for EOQ.
For slow-moving items, EOQ often recommends buying one unit at a time because annual demand is so low. In these cases, EOQ is less relevant than the ROP/safety stock calculation. Focus on having the right quantity on hand, not on optimizing order quantities for items you buy twice a year.
EOQ should be adjusted for minimum order quantities (MOQs) from vendors, price breaks at certain quantities, and shelf life limitations for rubber, elastomer, and adhesive products. A mathematically optimal EOQ of 15 is useless if the vendor's minimum order is 50. Adjust upward and recalculate total cost to verify the MOQ does not blow up holding costs.
EOQ = √(2 × D × S / H)
D = annual demand (units)
S = cost per order ($50-$150 typical for industrial)
H = annual holding cost per unit = unit price × holding rate
Holding rate: 20-30% per year is standard for MRO
Insurance Spares: When Statistics Do Not Apply
Insurance spares are components stocked not because they are consumed regularly but because the consequence of not having one when needed is catastrophic. A $50,000 motor for a critical production line that fails once every 10 years but takes 16 weeks to procure is an insurance spare. Statistical demand models (Poisson, normal distribution) are not useful here because there is no meaningful demand history to analyze.
The stocking decision for insurance spares is a risk analysis, not a demand forecast. The question is: can you tolerate the downtime required to procure the part after failure? If the answer is no, stock one. If the part is so critical that you cannot tolerate receiving a defective replacement, stock two.
Insurance spares are expensive to carry. A $50,000 motor sitting on a shelf costs $10,000-15,000 per year in holding costs (capital, storage, obsolescence risk). The justification must come from the avoided production loss. If the motor fails and 16 weeks of downtime costs $2 million, paying $10,000/year to avoid that risk is a bargain.
Review insurance spares annually. Equipment retirements, obsolescence of spare parts, and changes in vendor lead times can all change the stocking decision. A motor that used to take 16 weeks might now be available from a third-party rebuilder in 4 weeks, reducing the need to stock a new spare.
Measuring Storeroom Performance
You cannot improve what you do not measure. Key performance indicators for MRO storerooms include: service level (percentage of requests filled from stock, target 95-97%), inventory turnover ratio (annual consumption divided by average inventory value, typical target 1.0-2.0 for MRO), stockout frequency (number of stockouts per month), dead stock percentage (percentage of SKUs with no movement in 12+ months, target below 15%), and inventory accuracy (physical count match to system records, target 95%+).
Service level is the primary metric. Everything else supports it. High service level with low inventory value is the goal. Achieving this requires accurate demand data, appropriate safety stock calculations, reliable lead times, and disciplined storeroom practices (proper receiving, issue tracking, and cycle counting).
Inventory turnover for MRO storerooms is inherently lower than for manufacturing or retail because most MRO items are slow-moving by nature. A turnover ratio of 1.0-2.0 is typical and acceptable. A turnover below 0.5 indicates significant dead stock or overstocking. Above 3.0 is unusual and may indicate chronic understocking.
Dead stock is the silent cost killer. Parts that have not moved in 12 months occupy shelf space, tie up capital, and may be obsolete. Review dead stock quarterly. Dispose of truly obsolete items. For items that are slow but still needed (insurance spares), validate the stocking justification and leave them. For items with no remaining use case, surplus them to recover some value.
Service level: 95-97%
Inventory turnover: 1.0-2.0x
Dead stock: < 15% of SKUs
Inventory accuracy: > 95%
Stockout frequency: < 5 per month