How to calculate OEE: formula, worked example and calculator

OEE (Overall Equipment Effectiveness) is a single percentage that shows how much of its planned time a machine spends making good parts at its ideal speed. It is the product of three ratios: Availability × Performance × Quality. This guide explains each ratio, walks through an example with real numbers, lists the most common mistakes, and has a calculator for trying your own figures.

Last updated: 20 October 2026

What is OEE?

OEE measures how much of what a machine could theoretically produce it actually produces as good parts. An OEE of 100% means the machine ran for the whole planned time, at its ideal cycle time, with no scrap. No real machine is there. The value of OEE is that it splits the gap into three parts: did the machine stop, did it run slow, or did it make bad parts?

The idea comes from Total Productive Maintenance (TPM), developed by Seiichi Nakajima in Japan in the 1980s. Today it is used for single machines as well as for lines and whole shops.

The OEE formula and its three factors

OEE = Availability × Performance × Quality

Availability

How much of the planned production time the machine actually ran. Availability = Run time ÷ Planned production time. Planned production time is the shift minus planned stops such as breaks and lunch. Run time is what is left after unplanned stops — breakdowns, setups, waiting for material — are also taken out.

Performance

How fast the machine produced while it was running, compared with its ideal speed. Performance = (Total count × Ideal cycle time) ÷ Run time. The ideal cycle time is the shortest time in which the machine can make a good part — the best time, not the average.

Quality

How many of the parts made were good the first time. Quality = Good count ÷ Total count. Parts saved by rework are not counted as good; they were not right first time.

Shortcut: OEE = (Good count × Ideal cycle time) ÷ Planned production time. It gives the same result as multiplying the three ratios, but it does not show where the loss is, so it is worth tracking the three factors separately.

Worked example: one shift on a CNC lathe

A CNC lathe runs an 8-hour (480-minute) shift with 30 minutes of breaks. During the shift it was down for 25 minutes with a breakdown and 20 minutes for a setup. The ideal cycle time for the part is 30 seconds. By the end of the shift it made 700 parts, 35 of them scrap.

ItemCalculationResult
Shift length8 hours480 min
Planned stops (breaks)30 min
Planned production time480 − 30450 min
Unplanned stops (breakdown 25 + setup 20)45 min
Run time450 − 45405 min
Availability405 ÷ 45090.0%
Theoretical output in run time405 × 60 ÷ 30810 pcs
Performance700 ÷ 81086.4%
Good count700 − 35665 pcs
Quality665 ÷ 70095.0%
OEE0.900 × 0.864 × 0.95073.9%

Check with the shortcut: 665 good parts × 30 s = 19,950 s, or 332.5 minutes of valuable output. 332.5 ÷ 450 = 73.9%. The lathe produced value for about three quarters of its planned time, and the biggest loss is in performance (slow running or small stops nobody recorded).

Try it with your own numbers

The fields below start with the example above. Enter the planned time, downtime, ideal cycle time and counts from one of your own shifts.

OEE calculator

Enter the numbers from one of your own shifts; the three factors and OEE are calculated as you type.

min
min
s/piece
pcs
pcs
Availability90.0%

Run time 405 / 450 min

Performance86.4%

700 × 30 s / (405 × 60 s)

Quality95.0%

665 / 700

OEE73.9%

90.0% × 86.4% × 95.0%

The six big losses

TPM groups the losses that pull OEE down into six. Each one falls under one of the three factors:

LossExampleFactor it hits
BreakdownsMachine failure, broken toolAvailability
Setup and adjustmentMold change, machine setup, first-piece approvalAvailability
Small stopsJams of a few minutes, sensor tripsPerformance
Reduced speedWorn tooling, feed rates set cautiouslyPerformance
Startup rejectsScrap from the first parts after a setupQuality
Production rejectsBad parts during normal runningQuality

In job shops the loss most often missed is small stops: each one is too short to bother recording, but together they pull performance down hard. They are usually what is behind a figure like the 86.4% in the example.

Common mistakes

  1. Using the wrong ideal cycle time. Entering the average time, or the time used in the quote, makes performance look better than it is, sometimes above 100%. Use the shortest time the machine can make a good part in, and keep one per part.
  2. Counting breaks as downtime. Breaks, lunch and shift changes are planned stops: they come off planned production time and do not lower availability. Counting them like breakdowns lowers OEE unfairly and hides the real losses.
  3. Averaging OEE across machines. Shop OEE is not the simple average of the machines' percentages. Calculate it from totals: the ideal time of all good parts divided by all planned time. Otherwise a machine that barely ran weighs as much as one that ran all week.
  4. Not recording why a machine stopped. "Down for 45 minutes" is enough to calculate OEE but not to improve it. Without reasons, the choice of which loss to tackle is a guess.
  5. Using OEE to grade people. If the figure is used to judge operators, stops stop being recorded and the data goes bad. OEE is for improving the process.

What is a good OEE?

The most quoted figure is an OEE of 85% as "world class", usually attributed to Nakajima: roughly 90% availability, 95% performance and 99.9% quality. It is a commonly cited benchmark, not a law. A high-volume line and a job shop that runs a different part every day with frequent setups cannot have the same target.

Shops that work to order commonly see 40–60% when they first measure. What matters is knowing your own starting point and improving from there, starting with the factor where the loss is largest.

Measuring OEE without sensors

You do not need sensors or a PLC connection to measure OEE. It needs four things: planned time, stops and their reasons, the ideal cycle time, and the total and good counts. All of them can come from what operators record as they start, stop and finish jobs.

  1. Cut the list of stop reasons down to a short, clear set (breakdown, setup/mold change, waiting for material, tool change, break...). Decide up front which are planned and which are losses.
  2. Have operators pick a reason every time they stop, and enter good and scrap counts when they finish a job.
  3. Set ideal cycle times for your highest-volume parts first.
  4. Treat the first two weeks of numbers as your baseline and set targets from there.

ModernMES collects these inputs on the shop floor: operators pick a reason when they pause a job on the terminal or their phone, and every pause opens a downtime record. The default reasons are grouped as planned, unplanned, setup and maintenance, and each reason is marked as counting toward OEE or not (a break does not, a breakdown does). Good and scrap counts are entered when a job is finished. That way the raw data for OEE is recorded for every work order. You can see what it looks like in the live shop floor demo.

Frequently asked questions

What is the OEE formula?

OEE = Availability × Performance × Quality. Availability is run time divided by planned time, performance is actual output divided by output at the ideal rate, and quality is good count divided by total count.

Do breaks count against OEE?

No. Breaks, lunch and shift changes are planned stops and are taken out of planned production time first. OEE only measures losses within the planned time.

Why is my performance above 100%?

Almost always because the ideal cycle time is set longer than the real best time. Bring the ideal time down to the shortest time the machine can make a good part in.

How do you calculate OEE for a whole shop?

Do not average the machines' percentages. Add up the ideal time of all good parts across machines and divide by the sum of their planned time, so a machine that ran more carries more weight.

Do I need sensors on my machines to measure OEE?

No. If operators record stops with reasons and the counts, OEE can be calculated. Sensors give finer data, especially on small stops, but they are not needed to start.