On a CNC, OEE is easy to compute and easy to get quietly wrong.
What the control gives you for availability, performance and quality — what it never gives you — and the four assumptions that corrupt the number without looking wrong.
OEE on a CNC is easier to compute than on almost any other machine, because the control already knows most of what the formula needs. It is also easier to get subtly wrong, for exactly the same reason — a number that arrives automatically tends to be trusted without anyone checking what it counted.
This article covers what a CNC gives you for each of the three factors, the four assumptions that quietly corrupt the result, and a worked example with numbers from a real Indian machining floor.
| Factor | What the control gives you | What it does not |
|---|---|---|
| Availability | Machine state and exact stop durations | Why it stopped. No control reports a reason — that comes from an operator. |
| Performance | Cycle timing and part counts as the control sees them | Whether a cycle produced one part or four, and whether the ideal cycle time is current. |
| Quality | Nothing reliable | Rejections are a downstream judgement. The control counts cycles, not good parts. |
Availability is close to free on a CNC. Performance needs a maintained standard or a substitute for one. Quality always requires an input from outside the machine — which is why a fully automatic OEE with a Quality factor of exactly 100% should be treated as unverified rather than excellent.
One cycle equals one part
False on bar-fed turning, multi-cavity fixtures and any program producing several components. Output is then wrong by a fixed multiplier that looks entirely plausible.
Setup counts as downtime
A machine in setup is not broken. Conflating the two produces an availability figure the first supervisor to see it will dispute, correctly, and the dispute discredits everything else on the screen.
The ideal cycle time is current
Standards set at quotation and never revisited make Performance meaningless. An optimistic standard understates you; a stale one flatters you.
The control's counter means good parts
It counts cycles. Rejects are included unless something downstream removes them, which makes Quality look perfect and Performance look better than it is.
A VMC on an Indian job-shop floor, one shift.
Eight-hour shift, 45 minutes of scheduled breaks, so planned production time is 435 minutes. The machine was stopped for 94 minutes across the shift — one 40-minute changeover, a 22-minute wait for material, and the rest in short stops. It produced 212 components, of which 6 were rejected. The ideal cycle time for the part is 88 seconds.
| Factor | ISO 22400-2 | MachineWise variant |
|---|---|---|
| Availability | 341 ÷ 435 = 78.4% | On-time 372 ÷ reporting 435 = 85.5% |
| Performance | (212 × 88 s) ÷ 341 min = 91.2% | In-cut 268 ÷ on-time 372 = 72.0% |
| Quality | 206 ÷ 212 = 97.2% | 206 ÷ 212 = 97.2% |
| OEE | 69.5% | 59.9% |
The gap between the two Performance figures is the interesting part. ISO says the machine ran close to its rated speed while cutting. The variant says a substantial share of its powered time involved no cutting at all. Both are true, and read together they point at setup and waiting rather than at feeds and speeds — which is a different conversation with a different owner.
| Factor | ISO 22400-2 — the standard | MachineWise variant — internal only |
|---|---|---|
| Availability | Actual production time ÷ planned production time | Machine on-time ÷ reporting time |
| Performance / Effectiveness | (Produced quantity × ideal cycle time) ÷ actual production time | Productive time ÷ machine on-time — a time-in-cut proxy |
| Quality | Good quantity ÷ produced quantity | Identical to ISO |
| Needs a maintained standard? | Yes — an ideal cycle time per part | No |
| Comparable to published benchmarks? | Yes | No — treat as your own baseline |
The variant exists because a floor running fifty part numbers a month often has no trustworthy ideal cycle time, and an OEE that cannot be computed until standards are maintained is an OEE that never gets computed. It is useful internally and it is not the ISO definition. Quote the ISO figure externally, and say which one you used.
Ignore the headline and read the split. A CNC posting 60% because Availability is 65% has a stopping problem — changeovers, waiting, breakdowns — and the fix is scheduling and maintenance. The same 60% with Availability at 90% and Performance at 70% has a running-slowly problem, and the fix is feeds, speeds, tooling or a standard that was never right.
Those two plants look identical on a dashboard and have nothing in common operationally. Any OEE report that shows only the product of the three factors is withholding the part you need.
Machine-specific behaviour matters too: a turning centre and an HMC need different treatment, and on a grinder several states that look like stops are productive. If you want the platform view, it is on the OEE monitoring page.