OEE = Availability × Performance × Quality. The formula itself is three multiplications. What actually determines whether the resulting number means anything is how three inputs — planned production time, ideal cycle time, and "good part" — get defined, because none of those three has one universal definition.
The formula
- Availability = run time ÷ planned production time
- Performance = (ideal cycle time × total parts) ÷ run time
- Quality = good parts ÷ total parts
- OEE = Availability × Performance × Quality
Each term is a ratio between 0 and 1 (or 0–100%), so multiplying all three gives the share of planned production time that produced good parts at the rated rate. A 60% OEE and an 85% OEE aren't describing "better" or "worse" machines in any simple sense until you've looked at which of the three components is actually dragging the number down — see what good OEE actually looks like on a CNC floor for how to read the three components once you have them.
A worked example
Illustrative only — arithmetic to show how the pieces combine, not a customer result.
One machine, one 8-hour shift (480 minutes), with a 30-minute planned break:
| Input | Value |
|---|---|
| Planned production time | 480 − 30 = 450 min |
| Run time | 400 min |
| Ideal cycle time | 1.0 min/part |
| Total parts produced | 380 |
| Good parts | 365 |
- Availability = 400 ÷ 450 = 88.9%
- Performance = (1.0 × 380) ÷ 400 = 95.0%
- Quality = 365 ÷ 380 = 96.1%
- OEE = 0.889 × 0.950 × 0.961 = 81.1%
Change any one input and the headline number moves, but it moves for a reason you can point to — that traceability is the entire value of calculating the three components separately instead of reporting a single OEE percentage.
The three decisions that actually determine the number
The formula never changes. What changes, floor to floor and sometimes week to week, is how these three questions get answered:
- Does planned production time include breaks and planned maintenance? Pick one answer and hold it constant. Switching the definition between periods makes Availability numbers incomparable even though the formula looks identical.
- Where does "ideal cycle time" come from? A demonstrated sustainable rate, not the CAM program's theoretical figure. The program number is usually optimistic — use it and Performance absorbs the gap between theory and reality, which makes the number stop diagnosing anything specific. If Performance ever reads above 100%, this is almost always why.
- What counts as a "good" part? Right-first-time only, or does a part that needed rework count? Counting reworked parts as good inflates Quality and hides real scrap cost sitting one level down.
A common pattern, not a specific install
Illustrative only — a generic pattern, not a customer result.
Production reports one OEE figure; the quality team, looking at the same machine and the same shift, reports a noticeably different one. Nobody's arithmetic is wrong — the formula is the same three multiplications on both sides. The mismatch is almost always upstream of the math: one side is counting a scheduled changeover against planned production time and the other isn't, or one side is still using the program's theoretical cycle time while the other switched to a demonstrated rate months ago.
Reconciling it is rarely a calculation problem. It's a five-minute conversation to agree on one answer to each of the three questions above, write it down somewhere both teams can see, and apply it identically going forward — at which point the two reports converge on their own, because the formula was never the thing in disagreement.
Why manual OEE calculation drifts from the controller's number
A hand-calculated OEE depends on a downtime log, a part count, and a cycle-time assumption — all three collected or estimated by a person. Each is a place for drift to creep in: a paper log that misses short stops, a part counter that gets reset, an ideal cycle time nobody has revisited since the program was first written.
Reading the same three inputs directly off the controller doesn't change the formula — it changes how much the inputs can be trusted. Availability comes from actual machine-state transitions instead of a logbook. Total parts comes from the control, not a counter an operator can zero. Run time is measured, not reconstructed from shift notes at the end of the day.
Where this calculation feeds into a bigger picture
A single OEE number for one machine over one shift is a starting point, not the whole picture. The same three-factor calculation run continuously, machine by machine, is what turns OEE from a monthly spreadsheet exercise into something that flags a Performance or Availability problem while it's still small — see the full OEE guide for CNC machines for how the three components connect to cycle time, takt time, and downtime classification across a whole shop floor.
The short version
OEE = Availability × Performance × Quality — three ratios, one multiplication. The formula is never the hard part. The hard part is agreeing, once, on what counts as planned time, what the ideal cycle time actually is, and what counts as a good part — and then applying those same three answers every time the number gets calculated again.





