Results
The constraint was the spindle, not the schedule
The client runs four plants of CNC machining centers serving aerospace, medical, and industrial OEMs. Across roughly 140 machines, the operating model was the standard one: time-based preventive maintenance, vibration checks during scheduled shutdowns, and a maintenance team that found out a spindle had failed when an operator hit the e-stop.
Their finance team had been quietly tracking the cost of unplanned events for three years. The number was stable and unflattering: about $2.4M per year in scrapped work-in-process, expedited inbound freight to recover schedules, expedited outbound freight to hold delivery commitments, and overtime to make up lost shifts. Calendar-based PMs were not catching the failures that actually mattered, and in some cases were causing incidents on machines that did not need to be torn down at all.
The hypothesis going in was that the failures were not random. Spindles, ballscrews, and servo axes telegraph their decline in vibration spectra and current draw before they fail destructively. The question was whether the signal was clean enough across a fleet this heterogeneous (machines from four OEMs, three control generations, ages from 2 to 19 years) to drive scheduling decisions.
What we built
We picked one plant and a representative slice of the fleet — 32 machines, mixed by age and OEM — for the pilot. On each one we added vibration sensors at the spindle and at the X/Y/Z axis bearings, pulled servo current draw and load percentages off the controller via OPC UA where the controls supported it and via a small edge gateway where they didn’t, and added thermocouples on spindle housings.
The telemetry landed in a single time-series database, normalized to a per-asset schema regardless of OEM. On top of that we built two layers: a rules layer encoding the things reliability engineers already knew (e.g. spindle bearing fault frequencies, current-draw envelopes for known operations), and a per-asset baseline model that learned what normal looked like for each individual machine running each repeating job.
The maintenance team didn’t get a dashboard. They got a single ranked queue, refreshed every shift, of which assets to look at next and why. Operators got an in-cell signal when their machine drifted off its own baseline — not a fleet-wide threshold, the machine’s own.
Twelve months in
We rolled the pilot out plant-wide after four months and to all four plants by month nine. Over the first twelve months in steady state, the plants together avoided approximately $1.8M of the $2.4M unplanned-downtime baseline — the bulk of it from spindle interventions caught one to three weeks before destructive failure, and a meaningful tail from axis-bearing replacements scheduled into existing changeovers instead of into emergency holes in the schedule.
Unplanned spindle failures fell 62 percent. Mean time between catastrophic failures across the instrumented fleet improved by a factor of roughly 3.4. About 31 percent of total maintenance hours shifted from calendar-driven PMs to condition-based work, which freed the reliability team to take on the next constraint (tool changers) without adding headcount.
The result the operations director cared about most was less measurable: the maintenance team stopped being a fire department.