Inventory Intelligence
Recovering $2.1M in Working Capital Across a 200,000-SKU Catalog
Industry
Industrial & MRO
Scale
$180M Revenue
Duration
20 Weeks
Location
Minneapolis, Minnesota
Engagement
AI Consulting
Executive Summary
The Director of Procurement at a 7-branch industrial distributor in Minneapolis had known about the excess inventory for two years. The catalog exceeded 200,000 active SKUs, inventory sat at $42M, and the CFO had flagged it as 15-20% above benchmarks. Every correction attempt was blocked by branch managers — especially in Fargo and Duluth — who insisted their local overrides were protecting critical customer items. We deployed demand classification and probability-based replenishment across the full catalog on Epicor Eclipse.
Business Impact
23%
Inventory value reduction
$2.1M
Working capital released
18%
Fill rate improvement
35%
Fewer emergency purchase orders
The Situation
The distributor had expanded from 3 to 7 branches over a decade, each with a branch manager who built their own stocking profile independently. Seven branches with seven stocking philosophies — all overriding the same Eclipse replenishment engine in different ways. The Director of Procurement's four-person buying team spent the majority of their time managing overrides and firefighting stockouts rather than strategic purchasing.
80% of the catalog moved sporadically — demand too irregular for trailing-average forecasting to produce meaningful results.
- Static reorder points applied uniformly — a bearing selling 40 units monthly managed the same as a specialty valve selling 3 per year
- Branch manager overrides were invisible to central procurement — Eclipse recorded adjusted min/max values but didn't flag who changed them or why
- Slow-moving inventory accounted for 60% of total value but contributed less than 20% of revenue
- Supplier lead times in Eclipse were fixed values, but actual delivery performance varied 15-40% by supplier, product line, and season
- Emergency purchase orders ran at 340 per month across the network, each costing $45-120 in premium freight
- The Fargo branch manager had manually inflated min levels on 3,200 SKUs he considered "can't miss" items — 1,800 of which hadn't sold at that branch in over 9 months
Capital was locked in stock that didn't move while fast-moving items generated chronic stockouts — a structural problem that more safety stock would only make worse.
The Challenge
The branch managers weren't wrong — many of their instincts about local demand were accurate. But instinct doesn't scale across 200,000 SKUs and 7 branches. A branch manager can intuitively manage 500-1,000 items they interact with regularly. The other 28,000 SKUs in their branch are managed by default — whatever the system says, plus whatever the last stockout taught them to fear.
The Director of Procurement framed it clearly: "I need a system that cares about all 200,000 SKUs the way my branch managers care about the 500 they know by heart."
- 12,400 SKU-branch combinations had min levels exceeding 24 months of projected demand at current velocity
- Emergency POs were concentrated in 340 SKUs chronically understocked because their demand was too variable for static logic
- Three vendors quoting 5-day lead times were actually delivering in 7-12 days — reorder timing was structurally miscalibrated
The Solution
We analyzed 30 months of SKU-level transaction and replenishment data, with on-site visits to the Minneapolis, Fargo, and Duluth branches. The analysis confirmed a structural mismatch between how purchasing decisions were made and how demand actually behaved — and that the problem was solvable with the data already inside Eclipse.
The system analyzed signals including:
- SKU-level demand classified into five behavior categories: steady, seasonal, project-driven, sporadic, and declining
- Customer consumption patterns and maintenance contract schedules where available
- Actual supplier delivery performance over 30 months of receipt data — not quoted lead times
- Branch-level demand variation identifying where central stocking was more capital-efficient than local inventory
- Cost-of-stockout modeling weighted by customer impact and SKU criticality
- Cross-branch transfer patterns indicating demand that could be served from central warehouse
Demand classification treated every SKU according to how it actually behaved — not which product category it belonged to.
The Challenge
The branch managers weren't wrong — many of their instincts about local demand were accurate. But instinct doesn't scale across 200,000 SKUs and 7 branches. A branch manager can intuitively manage 500-1,000 items they interact with regularly. The other 28,000 SKUs in their branch are managed by default — whatever the system says, plus whatever the last stockout taught them to fear.
The Director of Procurement framed it clearly: "I need a system that cares about all 200,000 SKUs the way my branch managers care about the 500 they know by heart."
- 12,400 SKU-branch combinations had min levels exceeding 24 months of projected demand at current velocity
- Emergency POs were concentrated in 340 SKUs chronically understocked because their demand was too variable for static logic
- Three vendors quoting 5-day lead times were actually delivering in 7-12 days — reorder timing was structurally miscalibrated
The Solution
We analyzed 30 months of SKU-level transaction and replenishment data, with on-site visits to the Minneapolis, Fargo, and Duluth branches. The analysis confirmed a structural mismatch between how purchasing decisions were made and how demand actually behaved — and that the problem was solvable with the data already inside Eclipse.
The system analyzed signals including:
- SKU-level demand classified into five behavior categories: steady, seasonal, project-driven, sporadic, and declining
- Customer consumption patterns and maintenance contract schedules where available
- Actual supplier delivery performance over 30 months of receipt data — not quoted lead times
- Branch-level demand variation identifying where central stocking was more capital-efficient than local inventory
- Cost-of-stockout modeling weighted by customer impact and SKU criticality
- Cross-branch transfer patterns indicating demand that could be served from central warehouse
Demand classification treated every SKU according to how it actually behaved — not which product category it belonged to.
Implementation
Deployment occurred over a 01 – 05 period.
Demand Classification Engine
Every SKU classified by actual behavior with monthly reclassification — the Fargo overrides re-evaluated: 60% confirmed, 22% reclassified, 18% flagged for phase-out.
Probability-Based Replenishment
Daily stocking recommendations based on demand probability distributions, replacing static min/max thresholds across all 7 branches.
Supplier Lead Time Modeling
Actual delivery performance tracked by vendor and product family, replacing Eclipse assumptions that were off by an average of 22%.
Branch vs. Central Optimization
4,100 SKU-branch positions consolidated to central stock, saving approximately $380K in redundant inventory without impacting fill rates.
Eclipse-Native Integration
Recommendations surfaced within existing purchasing workflow, with branch overrides preserved but now requiring a reason code visible to central procurement.
Demand Classification Engine
Every SKU classified by actual behavior with monthly reclassification — the Fargo overrides re-evaluated: 60% confirmed, 22% reclassified, 18% flagged for phase-out.
Probability-Based Replenishment
Daily stocking recommendations based on demand probability distributions, replacing static min/max thresholds across all 7 branches.
Supplier Lead Time Modeling
Actual delivery performance tracked by vendor and product family, replacing Eclipse assumptions that were off by an average of 22%.
Branch vs. Central Optimization
4,100 SKU-branch positions consolidated to central stock, saving approximately $380K in redundant inventory without impacting fill rates.
Eclipse-Native Integration
Recommendations surfaced within existing purchasing workflow, with branch overrides preserved but now requiring a reason code visible to central procurement.
Strategic Impact
Capital Reallocation
The $2.1M released came from rebalancing — reducing low-productivity positions while increasing depth on the 340 SKUs generating chronic stockouts. The CFO described it as "the first time we've reduced inventory and improved service at the same time."
Procurement Efficiency
Emergency POs dropped from 340 to approximately 220 per month. The buying team shifted from firefighting stockouts to strategic category management and supplier performance reviews.
Branch Manager Alignment
The Fargo branch manager — the most vocal opponent — reviewed the demand classification and voluntarily removed 1,400 of his 3,200 overrides. His comment at the quarterly review: "I'd been protecting items that didn't need protecting. The data showed me what I couldn't see from inside the branch."
Key Takeaway
When 80% of the catalog moves sporadically, traditional inventory management is structurally overmatched. The Director of Procurement didn't replace the ERP. She closed the gap between what 200,000 SKUs needed and what 7 branch managers could intuitively manage — turning organizational tension over stocking decisions into a transparent, data-informed process that both central procurement and the branches could trust.
Related Engagements
Pricing & Quoting Intelligence
The VP of Commercial Operations at a 14-branch industrial distributor in Columbus, Ohio had watched gross margin decline for five consecutive quarters while revenue grew steadily. The root cause was s...
SPA & Rebate Intelligence
The VP of Purchasing at a 5-branch industrial distributor in Edmonton discovered the problem during year-end reconciliation: her team had missed a volume tier with their second-largest supplier — a ma...
Customer Wallet Share Intelligence
The SVP of Sales at a 9-branch industrial distributor in Milwaukee suspected her team was capturing only a fraction of what their accounts actually spent on MRO. She was right — but the fraction was w...

