Lean Six Sigma · Intermediate · 28 min read
Overall Equipment Effectiveness (OEE) and the Eight Losses
OEE is three numbers multiplied together, which makes it look easy. The hard part is deciding which bucket a loss belongs in—and two of the eight losses get put in the wrong bucket so often that entire improvement programmes end up aimed at the wrong problem.
Learning objectives
- Calculate availability, performance, quality and OEE from shift data.
- Name all eight TPM losses and assign each to the correct OEE factor.
- Explain why minor stoppages are a performance loss even though the machine has stopped.
- Explain why setup and adjustment is an availability loss even though the machine appears to be running.
- Apply a one-question test that resolves either case in seconds.
- Use time accounting and the one-line formula to check any OEE calculation.
- Recognise what OEE does not tell you, and when it will mislead you.
Before you start
Nothing heavy—this lesson is arithmetic plus careful definitions. It helps if you are comfortable with percentages, the idea of a bottleneck operation, and basic shift documentation: downtime logs, production counts and scrap records.
The three factors
OEE asks one question in three parts: of the time we planned to make good parts, how much actually produced good parts at full rate?
| Factor | Question it answers | Formula |
|---|---|---|
| Availability | Did the machine run when we wanted it to? | Run Time ÷ Planned Production Time |
| Performance | While running, did it run at full speed? | (Ideal Cycle Time × Total Count) ÷ Run Time |
| Quality | Of what it made, how much was good first time? | Good Count ÷ Total Count |
Two definitions do most of the work, and nearly every argument about OEE is really an argument about one of them:
- Planned Production Time is all time minus time you genuinely did not intend to produce—no orders, unstaffed shift, planned shutdown. It is not "all time minus everything that went wrong".
- Ideal Cycle Time is the fastest sustainable rate the equipment has actually demonstrated for that product. Use the nameplate figure and performance will read artificially low forever.
Terminology and calculations
| Term | Meaning | Interpretation |
|---|---|---|
| All Time | Every hour on the calendar. | The denominator for TEEP, not for OEE. |
| Planned Production Time | All time minus periods you did not intend to produce. | The OEE denominator. Contested more than any other term. |
| Run Time | Planned production time minus logged downtime. | Only recorded stops reduce it. This is the crux of the whole lesson. |
| Ideal Cycle Time | Fastest sustainable time per part actually demonstrated. | Use observed best, not nameplate, or performance is permanently understated. |
| Total Count | All parts produced, good and bad. | Excludes test pieces made during changeover. |
| Good Count | Parts meeting specification first pass. | Reworked parts are not good count, even if they eventually ship. |
| Fully Productive Time | Good Count × Ideal Cycle Time. | The only time that fully counted. OEE is this over planned production time. |
| Logging Threshold | Shortest stop the system records, often 2–5 minutes. | Decides whether a short stop lands in availability or performance. |
| TEEP | OEE × Utilisation. | Measures the asset against the calendar rather than the schedule. |
Interactive: OEE calculator
Change any input and all three factors move. The bar underneath converts every loss into the same currency—minutes—which is the single most useful habit in OEE work. The verdict line runs three consistency checks on your numbers.
Shift data
Interactive: the eight losses
Nakajima's TPM framework names eight equipment losses. Six are the familiar "six big losses"; the full eight split out tool changes and planned shutdown, which matters because those are where disputes start. Select any loss to see where it lands and why.
| # | Loss | Factor | Typical evidence in the data |
|---|---|---|---|
| 1 | Breakdown / equipment failure | Availability | A logged stop with a work order behind it |
| 2 | Setup and adjustment | Availability | Changeover start to first good part |
| 3 | Tool, die or blade change | Availability | A logged stop on a predictable interval |
| 4 | Start-up and yield loss | Quality | Scrap concentrated in the first parts after a start |
| 5 | Minor stoppages and idling | Performance | Nothing in the downtime log, but the count is short |
| 6 | Reduced speed | Performance | Cycle time consistently above ideal |
| 7 | Defects and rework | Quality | Scrap spread across the run |
| 8 | Planned shutdown | Availability or excluded | Scheduled maintenance, no-demand time |
Interactive: count versus minutes
The same shift, ranked two ways. Toggle between how often each loss happened and how many minutes it cost. Watch minor stops swap ends of the chart—this is precisely why you run the Minitab Pareto twice, and why a minutes-only report hides the most actionable problem on the line.
The two arguments that never end
Two losses account for most misclassification. Both feel obvious—and both feel obvious in the wrong direction.
Small stops feel like availability, but they are performance
A jam is a stop. The machine is not moving. Every instinct says availability. So why is loss 5 a performance loss?
Because of how the data are collected. Most downtime systems only capture stops above a threshold—commonly five minutes, sometimes two. A thirty-second jam that an operator clears by hand never becomes a downtime record. Nobody writes it down.
That has a direct arithmetic consequence. If the stop is not logged, it is not subtracted from run time. The clock keeps counting the machine as running. But no parts came out during those thirty seconds. So at the end of the shift the machine is credited with 370 minutes of run time and produced only 320 parts against an ideal of 370. The shortfall has nowhere else to go: it lands in performance.
Setup feels like performance, but it is availability
During a changeover the machine is far from idle. Operators jog the drive, run test pieces, tweak guides, make a part, measure it, adjust again. It looks like a machine running badly. Every instinct says performance.
But setup has something small stops do not: a clean start and a clean end. The changeover begins when the last good part of the old order comes off and ends when the first good part of the new order is confirmed. That is a bounded, recordable event—and it goes into the downtime log as a single entry. Logged time comes out of run time, so it reduces availability.
The test pieces made during setup are not counted as production. They were never sellable parts; they were part of the changeover.
The trick: logged or lost?
You do not need to memorise eight rows of a table. One question resolves every case, including both of the hard ones above.
Ask: did the clock stop?
Time LOST inside run time → Performance
Time spent, but the part is not sellable → Quality
Logged means somebody or some sensor recorded a start and an end—the event has a duration you could point at on a timeline. Lost means the time disappeared inside a period the system still counts as running, detectable only because fewer parts came out than should have.
Run the two hard cases through it:
- Setup and adjustment. Does it have a recorded start and end? Yes—every changeover does. Logged → availability. That the machine moves during setup is irrelevant; movement was never the test.
- Minor stoppages. Does a thirty-second jam have a recorded start and end? No. Lost → performance. That the machine stopped is irrelevant; stopping was never the test either.
Interactive: the logging threshold
This shift contained sixty minor stops lasting between 12 and 48 seconds, totalling 30 minutes. Drag the threshold to change the shortest stop your system records. Watch availability and performance trade places—and watch OEE refuse to move.
Interactive: classification drill
Ten shift-floor scenarios in random order. Decide the factor, then read the reasoning. Try to answer using the logged-or-lost test rather than recognition—the exam will not reuse these words.
How to calculate OEE for a shift
- Fix the boundary. Write down planned production time first. Subtract only periods you never intended to produce. Do this before looking at any loss data, so the denominator is not quietly negotiated later.
- Establish ideal cycle time. Take the fastest rate the line has actually sustained for that product, evidenced from run data. Record where the number came from.
- Pull the downtime log. Total the logged stops. This is your availability loss, in minutes.
- Classify every entry. Apply logged-or-lost to each reason code. Confirm nothing is counted twice.
- Count production. Total count, then good count. Reworked parts are not good count.
- Convert to minutes. Compute performance loss and quality loss as minutes, not percentages.
- Reconcile. The four buckets must sum to planned production time. If they do not, stop and find the error before reporting anything.
- Calculate twice. A × P × Q, then the one-line formula. They must agree.
Calculation shortcuts
1. Put everything in minutes
Percentages are hard to reason about and easy to mis-multiply. Minutes are not. Convert every loss into lost minutes and the whole shift reconciles on one line:
- Availability loss = logged downtime
- Performance loss = Run Time − (Total Count × Ideal Cycle Time)
- Quality loss = (Total Count − Good Count) × Ideal Cycle Time
- Fully productive time = Good Count × Ideal Cycle Time
If those four do not add to planned production time you have a data error—usually a stop counted twice, or an ideal cycle time that does not match the product mix.
2. The one-line OEE
You never actually need the three factors to get OEE:
This is the best check you have. Compute OEE both ways; if A × P × Q disagrees with the one-line version, something is double-counted. In an exam it takes fifteen seconds and catches arithmetic slips.
3. Attack your weakest factor first
Because the three multiply, the gain from improving one factor by a point is the product of the other two:
The lowest factor always has the highest product of the other two, so it always returns the most OEE per point. That is a mathematical result, not a rule of thumb—and the next interactive lets you confirm it.
4. Respect the multiplication
90 %, 90 % and 90 % do not average to 90 %. They multiply to 72.9 %. Three respectable numbers make one poor one. The widely quoted "world class" 85 % is 90.0 × 95.0 × 99.9—note how little quality loss it tolerates.
5. Points, not percent
Moving availability from 80 % to 82 % is two percentage points, and a 2.5 % relative improvement. "We improved availability by 2 %" is ambiguous and will be challenged in any serious review.
6. Performance above 100 % means your ideal is wrong
Performance is capped at 1.0 by definition. If you compute 104 %, the ideal cycle time is too slow, the part count includes rework passes, or run time is understated. Fix the input; never cap the output.
Interactive: where to improve first
Set any three factors and the panel calculates what one percentage point of improvement is worth on each. The winner is always the weakest factor, and now you can see why rather than take it on trust.
Worked example
A single shift on a packaging line. These are the calculator defaults, so you can follow along above.
| Input | Value |
|---|---|
| Shift length | 480 min |
| Planned stops (breaks, handover) | 30 min |
| Planned Production Time | 450 min |
| Logged downtime (breakdown 25, setup 40, tool change 15) | 80 min |
| Run Time | 370 min |
| Ideal cycle time | 1.0 min/part |
| Total parts made | 320 |
| Rejects (8 start-up, 4 process) | 12 |
| Good parts | 308 |
Performance = (1.0 × 320) / 370 = 0.8649 = 86.49 %
Quality = 308 / 320 = 0.9625 = 96.25 %
OEE = 0.8222 × 0.8649 × 0.9625 = 0.6844 = 68.44 %
Check with the one-line formula:
Check with the time buckets:
Performance loss = 370 − 320 = 50 min
Quality loss = 12 × 1.0 = 12 min
Fully productive = 308 × 1.0 = 308 min
Total = 450 min ✓
Note what the buckets reveal that the percentages hide. The largest single loss is not the breakdown everyone talks about—it is the 50 minutes of performance loss, which nobody logged and nobody raised at the morning meeting. It is invisible precisely because it never reached the downtime report.
Common mistakes
- Using nameplate speed as ideal cycle time. Performance is then permanently depressed and no improvement ever shows.
- Counting rework as good. Quality means good first pass. A part needing a second operation is a quality loss even if it eventually ships.
- Moving unplanned events into planned stops. Reclassifying a breakdown as "planned downtime" inflates OEE and hides the problem. Planned means you intended it before the shift started.
- Comparing OEE across different machines. OEE compares a machine to itself over time. Cross-machine league tables reward whoever set the softest ideal cycle time.
- Double-counting a logged small stop. Once it is in the downtime log it is an availability loss. Counting it again as performance loss breaks the reconciliation.
- Optimising OEE on a non-bottleneck. Running a non-constraint at high OEE builds inventory, not throughput.
- Reporting OEE without the loss breakdown. A single percentage tells nobody what to do next. Always publish the four buckets alongside it.
Statistics implementation: Excel & Minitab
Excel functions
| Function | Syntax | Purpose | When to use it |
|---|---|---|---|
| PRODUCT | =PRODUCT(range) | Multiplies A, P and Q in one step | OEE from three factor cells |
| SUMIFS | =SUMIFS(sum_range, crit_range, criteria) | Totals downtime minutes by reason code | Splitting logged downtime into the eight losses |
| COUNTIFS | =COUNTIFS(crit_range, criteria) | Counts stop events by category | Separating stop frequency from stop duration |
| SUMPRODUCT | =SUMPRODUCT(counts, cycle_times) | Weighted ideal time across a mixed-model run | One line running several part numbers per shift |
| COUNTIFS with operator | =COUNTIFS(dur,"<"&threshold) | Counts stops below the logging threshold | Quantifying how many small stops are invisible |
| IFERROR | =IFERROR(value, "") | Suppresses divide-by-zero on unworked shifts | Any OEE column on a calendar-based sheet |
| MIN | =MIN(value, 1) | Flags impossible results | Diagnostic only—never cap performance silently |
| MEDIAN | =MEDIAN(range) | Central tendency of daily OEE | Preferred when one catastrophic shift skews the mean |
| STDEV.S | =STDEV.S(range) | Shift-to-shift variation in OEE | Stability matters as much as level |
| PERCENTILE.INC | =PERCENTILE.INC(range, 0.05) | Demonstrated fastest sustained cycle | Evidence-based ideal cycle time from real runs |
| SORT | =SORT(range, col, -1) | Orders losses by magnitude | Building the Pareto of losses |
Excel use cases
- Reason-code roll-up. With stop reasons in column B and minutes in column C,
=SUMIFS($C:$C,$B:$B,"Setup")gives setup minutes. Repeat for all eight losses and confirm the total equals your logged downtime—if it does not, reason codes are missing or overlapping. - Frequency versus duration. Put
=COUNTIFS($B:$B,"Minor stop")beside=SUMIFS($C:$C,$B:$B,"Minor stop"). This separates "one long jam" from "sixty short ones", which demand completely different countermeasures and look identical in a minutes total. - How much is invisible?
=COUNTIFS(durations,"<"&$B$1)against your threshold in B1 counts the stops your system never records—the Excel equivalent of the threshold interactive above. - Demonstrated ideal cycle time. Instead of arguing about nameplate speed, take
=PERCENTILE.INC(cycle_times, 0.05)across clean runs. The fifth percentile of observed cycles is a defensible "fastest sustained" figure. - Reconciliation column. Add
=PPT-(down+perf_loss+qual_loss+productive). It should read zero on every row. Any non-zero cell is a data problem, and finding it here is far cheaper than in a review meeting. - Mixed-model shifts.
=SUMPRODUCT(part_counts, ideal_times)gives total ideal minutes when several products with different cycle times ran in one shift.
Minitab navigation
| Task | Menu path | Which option and why |
|---|---|---|
| Rank the eight losses | Stat → Quality Tools → Pareto Chart | Run it twice—once on stop count, once on stop minutes. Minor stops usually top the count chart and barely register on the minutes chart, which is the entire argument for treating them separately. |
| Trend OEE over time | Graph → Time Series Plot → Simple | Use before any control chart. Shift patterns and changeover effects are usually visible by eye and tell you whether a control chart is even appropriate. |
| Is OEE stable? | Stat → Control Charts → Variables Charts for Individuals → I-MR | Daily OEE is one value per period, so individuals is the right family. Alternative: Variables Charts for Subgroups → Xbar-R when you have several lines per shift and want between-line variation separated. |
| Did an improvement work? | Stat → Basic Statistics → 2-Sample t | Compares mean OEE before and after. Check normality first via Stat → Basic Statistics → Normality Test; OEE is a bounded ratio and skews badly near the top of its range. |
| Non-normal OEE data | Stat → Nonparametrics → Mann-Whitney | Use when the normality test fails or the sample is small. Compares medians and assumes no distribution. |
| Which loss drives OEE? | Stat → Regression → Regression → Fit Regression Model | OEE as response, loss minutes by category as predictors. Exploratory only—the predictors are compositional and not independent, so read coefficients as direction, not effect size. |
| Stop duration distribution | Graph → Histogram → With Fit | Reveals the threshold effect directly. A gap just below your logging threshold is evidence that small stops are being missed rather than genuinely absent. |
| Compare lines or shifts | Stat → ANOVA → One-Way | Use when comparing three or more lines. Follow with Tukey comparisons to see which pairs actually differ rather than eyeballing the means. |
Exam tips
- Classification is the question. CSSBB and CQE items normally list shift events and ask for OEE. The arithmetic is trivial; the marks are in bucketing each event. Apply logged-or-lost to every line before calculating.
- Watch for planned time traps. A stem mentioning "two 15-minute breaks and a 30-minute unplanned stoppage" is testing whether you subtract the breaks from planned production time and leave the stoppage as an availability loss.
- Rework is a quality loss. If a stem says parts "required rework before shipping", they are not good count. One of the most common single-mark errors.
- Know the one-line formula. Faster than three divisions and it self-checks. Learn it as the primary method and use A × P × Q to confirm.
- OEE versus TEEP. If a question introduces total calendar time or unstaffed shifts, it is testing utilisation: TEEP = OEE × Utilisation.
- Reclassification questions. If a stem changes the logging threshold and asks what happens to OEE, the answer is "nothing"—availability and performance move in opposite directions by design.
- In the real world. Expect to defend your ideal cycle time more than your arithmetic. Bring the demonstrated-rate evidence; "the nameplate says so" will not survive review.
Try it yourself
Use one real shift from your own line, not a prepared dataset. The friction you hit is the lesson.
Define
Write down planned production time and where the boundary sits, before looking at any loss data.
Classify
Take every downtime reason code and assign it with logged-or-lost. Flag any you argue about.
Reconcile
Convert all four buckets to minutes and confirm they sum to planned production time.
Find the threshold
Ask what your shortest recorded stop is. Anything below it is invisible and sitting in performance.
Check your understanding
Final summary
- OEE = Availability × Performance × Quality, and the one-line form (Good Count × Ideal Cycle Time ÷ Planned Production Time) gives the same answer as a check.
- The eight TPM losses map to three factors. Breakdown, setup, tool change and planned shutdown are availability; minor stops and reduced speed are performance; defects and start-up losses are quality.
- Logged or lost resolves any classification. Recorded time reduces availability, time that vanishes inside run time surfaces as performance, unsellable output is quality.
- Minor stops are a performance loss because nothing records them, not because of anything physical. Setup is an availability loss because it is recorded, not because the machine is still.
- Run time cancels in A × P, so classification never changes total OEE. It changes which improvement project you start—which is why it matters.
- Reconcile every shift in minutes. The four buckets must sum to planned production time.
- Improve your weakest factor first. The marginal gain is the product of the other two.
References and further reading
- Nakajima, S. Introduction to TPM: Total Productive Maintenance. Productivity Press.
- ASQ Certified Six Sigma Black Belt Body of Knowledge—Lean tools and process metrics.
- ASQ Certified Quality Engineer Body of Knowledge—quality systems and continuous improvement.
- Hansen, R. C. Overall Equipment Effectiveness. Industrial Press.