How to Calculate OEE: Formula, Worked Example, Common Mistakes
OEE (Overall Equipment Effectiveness) is one number: the share of planned production time a machine spent producing good parts as fast as it should. To calculate OEE you multiply three factors: availability, performance, and quality. The formula is simple. The mistakes people make while feeding it are not, and they are why two shifts on the same machine report wildly different OEE.
The Three Factors of OEE
Availability = run time / planned production time. Planned production time is the shift minus planned stops (breaks, planned maintenance). Run time is planned time minus all unplanned downtime: breakdowns, changeovers, waiting for material, missing an operator.
Performance = (ideal cycle time × total count) / run time. Ideal cycle time is the fastest the machine can sustainably run, one part, from the machine spec. Performance exposes micro-stops and slow running that never get logged as downtime.
Quality = good count / total count. Total count includes everything the machine produced, good parts and scrap and rework alike.
A Fully Worked Example
One injection molding machine, one 8-hour shift:
- Planned time: 480 minutes. Two 15-minute breaks are planned stops, so planned production time = 450 minutes.
- Downtime during the shift: 20-minute material changeover plus 10 minutes waiting for a technician = 30 minutes. Run time = 450 - 30 = 420 minutes.
- Ideal cycle time: 1.0 minute per part.
- Total count: 400 units. Good count: 380 units, 20 scrapped.
Availability = 420 / 450 = 93.3%. Performance = (1.0 × 400) / 420 = 400 / 420 = 95.2%. Quality = 380 / 400 = 95.0%.
OEE = 0.933 × 0.952 × 0.950 = 84.4%.
Sanity check the arithmetic the honest way: 380 good parts at 1 minute each is 380 minutes of truly productive time, out of 450 minutes of planned production time. 380 / 450 = 84.4%. Same answer. If the two methods disagree, one of your inputs is wrong.
Common Mistakes That Corrupt the Number
Counting downtime twice. A changeover logged as downtime and its delay also absorbed into a slow performance figure double-counts the same minutes. Decide once: any minute the machine is not producing for a known reason is downtime and leaves run time. Performance then only measures how fast the machine ran while it was running.
Letting performance exceed 100%. If performance comes out above 100%, your ideal cycle time is wrong (too slow), or the counter is double-counting. Cap performance at 100% as a guardrail, then go fix the ideal cycle time. An OEE number that can exceed 100% loses everyone's trust in one meeting.
Using wall clock instead of run time. When an operation pauses (operator on break outside the planned schedule, machine held for a quality question), the clock keeps ticking. If your calculation divides by the wall clock, availability quietly absorbs pauses nobody classified. The correct denominator for performance is actual run time, which requires knowing when the machine was genuinely in a producing state.
Sampling only good runs. Measuring OEE on the clean shifts, or resetting the counter after a bad run, produces a number that flatters the line and hides exactly the losses OEE exists to find. Every planned production minute counts, especially the ugly ones.
Where the Data Comes From
The three factors need four raw inputs: machine states (to separate run time from downtime), part counts at the station, good-versus-scrap counts, and the ideal cycle time. In most mid-market factories the first three live at the machine: a PLC or a counter with nobody collecting them. Manual logging works for a week, then decays.
This is the practical case for a MES. Voltrus MES ingests machine states over keyed SCADA connections, tracks station state machines, and rolls OEE up per station and per line every hour, with performance capped so a wrong cycle time shows up as a data problem instead of a miracle. Counts come from the station terminal where the operator confirms output, so good and scrap are separated at the source. Once you know how to calculate OEE and where the inputs actually live, the remaining question is who collects them; read why measuring OEE before buying a MES is the smarter order.
Frequently Asked Questions
What is a good OEE score?
85% is the textbook world-class figure, but treating it as a target misleads. Most factories that measure honestly for the first time land far lower, and that is fine: the number's job is to expose where the minutes go, not to win a benchmark. A stable 60% with visible loss reasons beats a fake 90%.
Should planned maintenance count as downtime?
No. Planned stops come out of planned production time before availability is calculated. If maintenance happens outside the planned schedule, it is downtime. Pick one convention per line and never change it mid-month, or your trend lines lie.
How often should we calculate OEE?
Per shift for the floor, with hourly rollups during the shift so a bad hour gets attention while the causes are still standing at the machine. Monthly averages are for management reporting, not for fixing anything.
OEE Without the Spreadsheet
Voltrus MES is live: keyed SCADA ingest, hourly OEE rollups per station and line, downtime with reasons. One line to start.
See Voltrus MES