Planned vs Actual Machine Utilization CNC
- Matt Ulepic
- Feb 23
- 7 min read
The planned-vs-actual comparison exists to close that measurement gap. It is not a reporting exercise. It is a diagnostic tool for finding capacity that is already scheduled, already paid for, and currently being lost to states your ERP was never designed to track. planned-vs-actual-machine-utilization

TL;DR — Planned vs Actual Machine Utilization in CNC Manufacturing
Planned utilization is what the schedule assumes; actual utilization is what the machine delivered — the gap between them is recoverable capacity.
Aggregate shop-wide utilization numbers hide machine-level and shift-level patterns where the real leakage occurs.
Idle time — not downtime — is the primary contributor to the planned-vs-actual gap in most multi-shift CNC environments.
Shift-start lag, between-job gaps, and handoff loss are the three most consistent sources of untracked idle accumulation.
A gap that is consistent across shifts points to a scheduling assumption problem; a gap that varies by shift points to an operational pattern.
Before adding equipment, confirm whether existing machines are running as scheduled — recoverable capacity is the lowest-cost capacity available.
Real-time, machine-level data capture is required — end-of-shift manual logs compress and lose the patterns that make the comparison actionable.
Key takeaway
The planned-vs-actual comparison is not a performance score — it is a map of where scheduled capacity is being consumed by states your ERP cannot see. In multi-shift CNC environments, the gap between what was scheduled and what actually ran is rarely random. It concentrates in predictable windows, on specific machines, and within identifiable job types. Finding it at that level of specificity is what converts a reporting number into an operational decision.
What the Planned-vs-Actual Gap Actually Measures
Planned utilization is the run time assigned to a machine in the schedule. It reflects the assumption that a machine will be cutting for the full window allocated to a job or job sequence. Actual utilization is the measured run time captured from the machine itself — broken into the states that describe what the machine was doing at any given moment: running, idle, or stopped.
The gap between those two figures is not scheduling error in the traditional sense. It is information — specifically, information about where scheduled capacity is being consumed by unplanned states that the schedule never accounted for. Understanding machine utilization tracking software begins with recognizing that the comparison must be made at the machine and shift level to be useful. A shop-wide average of 80% utilization tells you almost nothing about which machines are underperforming, which shifts are generating the most leakage, or which job types are consistently consuming more time than the schedule allows.
The goal of the comparison is not to produce a number to report upward. It is to identify where the gap is concentrated so that something can be done about it.
How Scheduled Run Time Gets Built — and Where It Breaks Down
Planned run time in most CNC job shops is derived from cycle time estimates, job routing, and available shift capacity. The schedule assumes clean handoffs between jobs, materials staged at the machine before the shift starts, and operators available and ready at shift start. Those assumptions are reasonable in isolation. They are rarely all true simultaneously.
Most schedules do not account for program load time, first-article inspection holds, or the idle period between completing one job and beginning the next. In high-mix environments where job changeovers are frequent, these between-job gaps accumulate across the shift in ways that are invisible to the schedule but very visible in actual machine state data.
Multi-shift operations compound the problem. Assumptions embedded in the first-shift schedule carry forward into second shift without adjustment. If first shift runs long on a complex job, second shift inherits a compressed window with no corresponding change to planned run time. The schedule remains static while the floor continues to be dynamic. The gap begins accumulating from the moment the shift starts — and in many shops, it never stops.
The Three States That Consume the Gap: Run, Idle, Stop
Actual machine time breaks into three states. The run state is the only one that produces parts: the spindle is on and the machine is cutting. The idle state means the machine is powered and ready but not cutting — the operator is between jobs, waiting on material, or handling something upstream. The stop state means the machine is not available at all: setup, tooling change, or unplanned interruption.
Of these three, idle time is the most underreported contributor to the planned-vs-actual gap in CNC job shops. It does not trigger an alarm. It is rarely logged manually. And because it does not look like a problem from the floor — the machine is on, the operator is present — it passes unrecorded through shift after shift. For a deeper look at how machine downtime tracking distinguishes stop states from idle accumulation, that distinction matters operationally.
The ratio of idle time to stop time within the gap is itself diagnostic. A gap dominated by idle time points to operational patterns — sequencing, staging, operator workflow. A gap dominated by stop time points to process or equipment issues. Both are recoverable, but through different interventions.
Where the Gap Hides in Multi-Shift CNC Operations
Consider a three-machine cell scheduled for 16 hours of production across two shifts. End-of-day output reaches 78% of the planned part count. When run/idle/stop data is reviewed by machine and by shift, the gap is not distributed evenly. One machine on second shift shows 2.4 hours of idle time between jobs that was never captured in the schedule. The planned-vs-actual comparison surfaces this as a recurring pattern — not a one-time event — which changes how the operations manager responds to it.
This kind of concentration is typical. The gap does not spread evenly across machines or across the shift. It clusters in predictable windows. Shift-start lag is one of the most consistent: the first 30–60 minutes of a shift frequently show elevated idle time as operators retrieve programs, stage materials, and complete setup tasks the schedule treats as already done. Between-job gaps accumulate in high-mix environments where changeover time is underestimated or unscheduled. Shift handoff loss appears in the final 20–30 minutes of a shift as operators wind down rather than start new jobs.
None of these patterns appear in aggregate utilization reports. All of them surface when planned and actual are compared at the machine and shift level.
Reading the Comparison: What the Gap Tells You and What It Doesn't
An operations manager reviewing weekly ERP reports showing machines at 82% utilization may feel reasonably confident in floor performance. When actual spindle-on time is compared against scheduled run windows at the machine level, a different picture emerges: three machines consistently show a 15–20% gap between planned and actual run time during the first hour of each shift. That pattern — consistent in timing, consistent across machines — points to a structural issue at shift start, not random variation.
The comparison is a signal, not a verdict. A gap that is consistent on the same machine across multiple shifts points to a scheduling assumption that is systematically wrong. A gap that varies by shift on the same machine points to an operational or staffing pattern worth investigating. A gap that appears only on certain job types points to a routing or setup time estimation problem. Machine monitoring systems can surface these patterns, but interpreting them still requires floor context.
Chasing the gap to zero is not the operational goal. Understanding which portion of the gap is recoverable — and which reflects legitimate schedule variability — is the question that drives useful decisions.
Turning the Comparison Into a Capacity Decision
When the planned-vs-actual gap is consistent across multiple machines at 15–20%, the shop may have recoverable capacity equivalent to an additional machine shift without adding any equipment. That is not a theoretical claim — it is the arithmetic of untracked idle time applied to a schedule that assumed full run time.
Identifying which jobs generate the largest between-job idle gaps allows schedulers to sequence work differently — grouping similar setups, pre-staging materials for the next job before the current one finishes, or adjusting shift start protocols to compress the lag window. Shift-level gap data gives operations managers a factual basis for staffing conversations that previously relied on anecdote and floor observation.
Most importantly, the comparison reframes the capital expenditure question. Before committing to a new machine, the operational question should be: are existing machines running as scheduled? If the answer is no — and the gap data shows where and why — then recoverable capacity is the lowest-cost option available. The AI Production Assistant can help interpret these patterns across machines and shifts to accelerate that decision.
What You Need to Make the Comparison Useful
A meaningful planned-vs-actual comparison requires machine-level run/idle/stop data captured in real time. End-of-shift manual logs are not sufficient — they compress the shift into summary numbers and lose the within-shift patterns where the gap actually lives. An operator recording "ran all shift" at the end of a 10-hour window cannot reconstruct the 40-minute idle period between jobs three and four.
The schedule must also be time-stamped at the machine level, not just the job level. Knowing that a job was assigned to a machine is not the same as knowing when that machine was supposed to be running. Without that time reference, the comparison has no baseline to measure against.
Shift-level segmentation is required so the comparison can be made within and across shifts — not just across the full production day. And enough historical depth is needed to distinguish a one-time event from a recurring pattern. A single shift is noise. A week of consistent data is signal. Review pricing to understand what building this capability looks like for a shop your size.
The comparison does not require sophisticated infrastructure to begin. It does require consistent, machine-level data capture that manual methods cannot reliably sustain across 20 or more machines running multiple shifts. If you want to see what the planned-vs-actual gap looks like on your own floor, schedule a demo and walk through the comparison using your actual machines and shift structure.

.png)








