ThingConnectBook a demo

Guide

OEE for CNC machines: the complete guide

Overall Equipment Effectiveness is the most used — and most misused — number in machining. This guide covers what it measures, how to calculate it correctly on a CNC floor, the mistakes that quietly corrupt it, and what actually moves it.

Updated July 2026 · ThingConnect team

What OEE actually tells you

OEE answers one question: of the production time you planned, what fraction turned into good parts at the intended pace? It compresses three different kinds of loss — machines not running, machines running slow, and machines making scrap — into a single percentage.

That compression is both its power and its danger. As a single number it lets an owner compare this month to last month at a glance. But the number itself is not actionable — a 55% OEE tells you nothing about what to fix. The three components underneath do. Treat OEE as the headline and the components as the story.

The three components, on a real CNC floor

ComponentFormulaWhat it looks like in machining
AvailabilityRun time ÷ planned production timeThe machining center that sat 40 minutes waiting for castings, the 25-minute changeover that took 55, the servo alarm nobody recorded.
Performance(Ideal cycle × total parts) ÷ run timeFeed overrides turned down after a tool chattered, a program running 8% slower than its proven cycle, micro-stops between cycles.
QualityGood parts ÷ total partsBores out of tolerance on first-off, casting porosity discovered at final cut, parts scrapped after a tool broke mid-cycle.

Note what availability deliberately excludes: time you never planned to produce. A machine idle on an unstaffed night shift is a utilization question (see OEE vs utilization), not an availability loss. Mixing the two is the fastest way to make OEE meaningless.

The calculation, worked through

One shift on one machining center. Shift length 480 minutes, with a 30-minute planned lunch your plant excludes from production time — so planned production time = 450 min.

  • Stops during the shift: one 35-minute changeover, one 20-minute tool-change overrun, assorted small stops totalling 15 minutes → run time = 450 − 70 = 380 min
  • Availability = 380 ÷ 450 = 84.4%
  • Ideal cycle time for the part is 1.4 min; the machine produced 240 parts → ideal time for that output = 336 min. Performance = 336 ÷ 380 = 88.4%
  • 232 of 240 parts were good → Quality = 96.7%
  • OEE = 84.4% × 88.4% × 96.7% = 72.1%

Try your own shift’s numbers in the OEE calculator — it shows the same arithmetic live.

If performance comes out above 100%, your ideal cycle time is set slower than the machine actually runs. This is the single most common corruption of OEE on CNC floors, and it silently hides real speed losses — see where OEE goes wrong.

What counts as a good OEE

The number quoted everywhere is that 85% is world class. It comes from mature TPM literature describing lines improved continuously for years — it is a horizon, not an entry benchmark.

Plants measuring honestly for the first time typically land between 40% and 60%. That first number usually feels insultingly low — it isn’t. It means the measurement is finally honest, and the gap between it and where you thought you were is capacity you already own, hiding in stops nobody logged and cycles nobody timed.

The comparison that matters is never against another plant’s number (whose availability rules you don’t know) — it is your machine against itself, month over month.

The six big losses, translated to machining

Classic lossHitsCNC-floor version
Equipment failureAvailabilitySpindle/servo alarms, breakdowns, tool breakage that stops the machine
Setup & adjustmentAvailabilityChangeovers, first-off approval waits, offset dialing
Idling & minor stopsPerformanceWaiting between cycles, chip evacuation pauses, door-open time — rarely logged, often the biggest surprise
Reduced speedPerformanceTurned-down overrides, conservative programs, worn tooling run slow
Process defectsQualityOut-of-tolerance parts, casting defects surfacing at machining
Startup lossesQualityFirst-part scrap after changeover, warm-up parts

The pattern worth knowing: on most CNC floors the two performance losses are the least visible and collectively large — a machine that looks busy from the aisle can be losing an hour a shift in micro-stops and slow cycles that no logbook will ever capture.

Where OEE goes wrong: the seven corruptions

  • Ideal cycle time set wrong. Set it slower than reality and performance flatters everyone; losses vanish into a number above 100% that gets quietly capped. Use the best demonstrated cycle, per part program.
  • Availability rules that drift. Breaks counted against one shift and not another, maintenance excluded when convenient. One written policy, applied identically everywhere, or trend lines mean nothing.
  • Averaging across machines. A floor-level OEE hides the one machine at 35% behind six at 80%. Report per machine; aggregate only for trend.
  • Chasing the number, not the loss. OEE can be gamed — inflate planned downtime, reclassify stops, slow the ideal cycle. The moment OEE becomes a target people are punished on, the data quality dies. Reward finding losses, not hiding them.
  • Quality counted at the end of the line.A part scrapped at final inspection three days later never makes it back into that shift’s OEE. Record rejects at the machine, when they happen.
  • Reconstructed data. Logbooks filled at 5:55 PM record what people remember, which is never the twelve 4-minute stops. Honest OEE needs stops captured as they happen.
  • Comparing across plants. Two plants with different break policies can differ 10 OEE points on identical physical performance. Compare a machine to itself.

OEE vs utilization vs TEEP

MetricDenominatorThe question it answers
OEEPlanned production timeHow well did we use the time we staffed and scheduled?
UtilizationShift time (or any window you choose)How much did the machine actually run?
TEEPCalendar time — all 24×7 hoursHow much of the machine's theoretical capacity do we touch at all?

They answer different questions and mixing them causes real damage: a plant running one shift can have 75% OEE and 24% TEEP simultaneously — excellent discipline, enormous unused capacity. The capex conversation (“do we need another machine?”) is a utilization/TEEP question; the shift-improvement conversation is an OEE question.

How to actually improve OEE

The uncomfortable truth: you don’t improve OEE by working on OEE. You improve it by fixing the largest individual loss, once, then repeating. The sequence that works:

  • Measure honestly for a month. No targets, no blame — the goal is a trustworthy baseline and classified stops.
  • Build the loss Pareto. Minutes by cause, per machine. On most floors, three causes carry more than half the loss — see the downtime tracking guide for running this well.
  • Fix the top bar, only.If it’s changeover, work setup discipline; if tooling, tool-life management; if starvation, take the evidence upstream. One cause at a time, four weeks each.
  • Let the trend line be the scoreboard. 5-point OEE moves from single fixes are common on floors measuring for the first time; the gains compound.

Manual vs automatic measurement

Everything above works on paper — plants ran OEE on clipboards for decades. But manual measurement has a floor: it cannot see micro-stops, it records what people remember, and it consumes supervisor hours compiling what a system should compile itself.

Automatic measurement reads state, cycle times, and part counts directly from the CNC controller — the machine’s own account of what happened. Operators add the one thing machines can’t know: why a stop happened. That split — automatic detection, human context — is the design behind ThingConnect’s OEE software, and it’s why its availability and performance numbers hold up under argument.

Frequently asked questions

What is a good OEE for CNC machines?

Plants measuring honestly for the first time typically find 40–60%. The often-quoted 85% 'world class' figure describes mature, continuously improved lines — treat it as a horizon, not a benchmark to compare your first measurement against. The useful comparison is your own machine, last month.

How is OEE calculated for a CNC machine?

OEE = Availability × Performance × Quality. Availability is run time ÷ planned production time; Performance is (ideal cycle time × parts produced) ÷ run time; Quality is good parts ÷ total parts. Each component is a percentage, and the product is OEE.

Do tea breaks and lunch count against OEE?

That's a policy decision, not a formula rule. If breaks are planned non-production time, exclude them from planned production time; if you want OEE to expose break overruns, include them. What matters is choosing one definition, writing it down, and applying it identically to every machine and shift.

Can OEE be measured without operators entering data?

Availability and performance can — machine state, cycle times, and part counts can be read directly from the CNC controller. Quality usually needs a human to record rejects and reasons. The practical split: automatic detection for what machines know, minimal operator input for what only people know.

See your machines' real OEE — measured from the controller, live in a day