Learn PLCs free
Programming Examples12 min read4 214 words

How to Calculate OEE: Formula, Worked Example, and PLC Data Sources

How to calculate OEE step by step — the Availability x Performance x Quality formula, a fully worked example, world-class benchmarks, and how to pull OEE from PLC data.

IAE
Senior PLC Programmer
15+ years hands-on experience • 50+ automation projects completed
PLC
Programming Excellence

OEE = Availability × Performance × Quality

That single equation captures the productive efficiency of any piece of equipment. Each factor is a ratio between 0 and 1 (or 0% and 100%), so an OEE of 1.0 means the machine ran at full speed, for the full available time, producing only good parts — a theoretical ceiling almost no real production environment reaches. Everything below 1.0 represents recoverable loss.

OEE formula Availability times Performance times Quality with worked example values: 86.7% times 85.5% times 97.5% equals 72.3% OEE Visual breakdown of the OEE formula showing each factor as a labeled block with the numerator and denominator, the worked example values, and the final product OEE score of 72.3% compared to the world-class 85% benchmark. OEE = Availability × Performance × Quality Availability Run Time Planned Prod. Time 86.7% 390 ÷ 450 min × Performance Ideal Cycle Time × Count Run Time 85.5% 333.3 ÷ 390 min × Quality Good Count Total Count 97.5% 19,500 ÷ 20,000 = OEE 72.3% example World-Class Benchmark: 85% OEE (JIPM — high-volume discrete manufacturing) Industry average: 40–60% · Good: 75–85% · OEE is most valuable as a consistent trend, not a snapshot Simplified algebraic form: OEE = (Ideal Cycle Time × Good Count) ÷ Planned Production Time
OEE = Availability × Performance × Quality. The three-factor form is preferred because it breaks the result into actionable components — each pointing to a different category of production loss.

What Is OEE and Why Does It Matter?

Overall Equipment Effectiveness (OEE) is the gold-standard manufacturing KPI for measuring how efficiently equipment is used relative to its full potential. Developed within the Total Productive Maintenance (TPM) framework by Seiichi Nakajima in the 1980s, OEE has become the universal language of production efficiency because it simultaneously captures three distinct categories of loss — downtime, speed reduction, and quality defects — in one normalized score.

For a deeper background on the metric itself, see our article on what is OEE before working through the calculation steps below.

OEE matters at every level of the plant:

  • Operators use it to see the immediate impact of a machine stop or a speed reduction.
  • Maintenance teams use it to justify TPM investments and track improvement over time.
  • Plant managers use it to compare performance across lines or shifts.
  • Finance teams use it to translate production losses into lost revenue.

A one-point improvement in OEE on a high-throughput line can represent hundreds of thousands of dollars in recovered capacity annually — without spending a cent on capital equipment.

Try it: skip the spreadsheet — the free OEE Calculator computes Availability, Performance, Quality, and your OEE score instantly.

The OEE Formula

The full OEE formula is:

OEE = Availability × Performance × Quality

Each factor is calculated independently, then the three are multiplied together.

Factor Numerator Denominator
Availability Run Time Planned Production Time
Performance Ideal Cycle Time × Total Count Run Time
Quality Good Count Total Count

All three factors must use consistent time units. Mixing minutes and hours will produce incorrect results.


Calculating Availability

Availability measures the percentage of planned production time during which the equipment was actually running.

Formula:

Availability = Run Time ÷ Planned Production Time

Key terms:

  • Planned Production Time — The total scheduled time minus planned stops (scheduled maintenance, breaks, shift changeovers, and any other planned downtime that is excluded from the OEE calculation by your facility's policy).
  • Stop Time — Unplanned downtime: equipment failures, material shortages, unplanned changeovers, and other unscheduled stops.
  • Run Time — Planned Production Time minus Stop Time.

Example:

A shift is 8 hours (480 minutes). Planned breaks total 30 minutes, so Planned Production Time = 450 minutes. During the shift the line suffered two unplanned stops totaling 60 minutes. Therefore:

  • Run Time = 450 − 60 = 390 minutes
  • Availability = 390 ÷ 450 = 0.867 (86.7%)

Note: Scheduled breaks and planned maintenance are excluded from Planned Production Time in most OEE implementations — they are not losses OEE is meant to measure. Only unplanned downtime reduces Availability.


Calculating Performance

Performance measures whether the equipment ran at its designed speed during the time it was actually running.

Formula:

Performance = (Ideal Cycle Time × Total Count) ÷ Run Time

Alternatively, using production rate:

Performance = (Total Count ÷ Run Time) ÷ Ideal Run Rate

Key terms:

  • Ideal Cycle Time — The theoretical minimum time required to produce one unit at full speed (nameplate speed). This is a design specification, not an observed average.
  • Total Count — All units produced during Run Time, both good and defective.
  • Run Time — Same value used in the Availability calculation.

Example (continuing from above):

The machine's nameplate rate is 60 units per minute (Ideal Cycle Time = 1/60 min per unit = 0.01667 min/unit). During the 390 minutes of Run Time, 20,000 units were produced.

  • Numerator: 0.01667 × 20,000 = 333.3 minutes
  • Performance = 333.3 ÷ 390 = 0.855 (85.5%)

A Performance below 100% means the machine ran slower than its ideal rate for at least part of the run — caused by minor stops, reduced speed settings, or operator adjustments.

Important: Performance can technically exceed 100% if the machine runs faster than its nameplate speed. Most OEE implementations cap Performance at 100% to prevent artificially inflated scores.


Calculating Quality

Quality measures the proportion of total parts produced that meet specification on the first pass.

Formula:

Quality = Good Count ÷ Total Count

Key terms:

  • Good Count — Units that pass inspection on first pass, with no rework required.
  • Total Count — All units produced, including defects and units requiring rework.
  • Reject Count — Total Count minus Good Count (defects + rework).

Example (continuing from above):

Of the 20,000 units produced, 500 were rejected (defects or rework).

  • Good Count = 20,000 − 500 = 19,500
  • Quality = 19,500 ÷ 20,000 = 0.975 (97.5%)

Fully Worked OEE Calculation Example

Pulling all three factors together:

Parameter Value
Shift duration 480 min
Planned breaks 30 min
Planned Production Time 450 min
Unplanned downtime 60 min
Run Time 390 min
Ideal Cycle Time 0.01667 min/unit
Total Count 20,000 units
Reject Count 500 units
Good Count 19,500 units

Step 1 — Availability: 390 ÷ 450 = 0.867

Step 2 — Performance: (0.01667 × 20,000) ÷ 390 = 333.3 ÷ 390 = 0.855

Step 3 — Quality: 19,500 ÷ 20,000 = 0.975

OEE = 0.867 × 0.855 × 0.975 = 0.723 (72.3%)

This result is solidly above the typical average for discrete manufacturing (around 40-60%) and approaching — but not yet at — world-class level.

OEE benchmark horizontal bar chart: Poor below 40%, Typical 40-60%, Fair 60-75%, Good 75-85%, World-Class 85% and above with JIPM standard Horizontal bar chart showing five OEE classification bands from Poor at under 40% to World-Class at 85% and above, with a dashed line marking the 85% JIPM world-class benchmark and the worked example result at 72.3% marked in the Fair-to-Good range. OEE Benchmark Bands — World-Class = 85% (JIPM) Poor Below 40% Typical 40–60% Fair 60–75% Good 75–85% World-Class 85%+ (JIPM world-class) 85% target 72.3% example High-mix / batch processes may target 65%+ as excellent · always benchmark against your own baseline trend
OEE benchmark bands: 85% is the JIPM world-class target for high-volume discrete manufacturing. Consistent improvement from your own baseline is more actionable than hitting an industry average.

What Is a Good OEE Score?

OEE benchmarks are well established across industry, though the right target depends on your process type, product mix, and maturity level.

OEE Score Classification What It Means
Below 40% Poor Significant losses across one or more factors; immediate improvement opportunity
40–60% Typical Common starting point for plants new to OEE measurement
60–75% Fair Meaningful improvement underway; one or two factors still dragging the score
75–85% Good Consistent performance; approaching world-class in many industries
85%+ World-Class Industry benchmark set by JIPM (Japan Institute of Plant Maintenance); sustained at this level only with mature TPM programs

85% is the widely cited world-class target, but it was originally defined for high-volume discrete manufacturing with low product mix. For high-mix, low-volume environments or batch processes, a realistic world-class target may be lower — some process industries cite 65% as excellent.

Context matters:

  • A facility achieving 60% OEE and improving consistently is outperforming one that reports 80% but has stalled.
  • OEE is most valuable as a trend line, not a snapshot.
  • Benchmarking against your own historical baseline is more actionable than benchmarking against industry averages.

The Six Big Losses

The OEE framework maps directly onto six categories of production loss known as the Six Big Losses. Understanding which category is driving your OEE reduction points directly to the right countermeasure.

Availability Losses

  1. Unplanned Stops (Equipment Failures) — Breakdowns, faults, and unscheduled maintenance events. The most visible and often largest single loss. Addressed through preventive and predictive maintenance from PLC data.

  2. Setup and Adjustment — Time lost to changeovers, product transitions, tooling changes, and equipment warm-up. Addressed through SMED (Single-Minute Exchange of Die) methodology.

Performance Losses

  1. Minor Stops — Brief interruptions (typically under 5 minutes) that do not trigger a full maintenance call: jams, misfeeds, sensor faults, operator interventions. Cumulatively significant — often larger than major breakdowns over a full shift.

  2. Reduced Speed — Equipment running below its ideal (nameplate) rate due to operator adjustments, material variation, wear, or deliberate de-rating. Difficult to detect without automated cycle-time monitoring.

Quality Losses

  1. Process Defects — Scrap and rework produced during stable production. Directly reduces the Quality factor.

  2. Startup Rejects — Defective parts produced during warmup, changeover, or after an equipment stop before stable production is re-established.

Tracking which of these six categories contributes most to your OEE loss is essential for prioritizing improvement efforts. Integrating this data into a manufacturing execution system enables loss categorization at the shift or event level.

OEE Six Big Losses mapped to Availability, Performance, and Quality factors: unplanned stops, setup time, minor stops, reduced speed, process defects, startup rejects Three-column diagram mapping the Six Big Losses to the three OEE factors — Availability losses are unplanned stops and setup, Performance losses are minor stops and reduced speed, Quality losses are process defects and startup rejects — each pointing to a different countermeasure. Six Big Losses — Mapped to OEE Factors Availability Losses 1. Unplanned Stops Equipment failures, faults Fix: Preventive / predictive maint. 2. Setup & Adjustment Changeovers, tooling changes Fix: SMED methodology Performance Losses 3. Minor Stops Jams, misfeeds, <5 min Fix: Cycle-time monitoring 4. Reduced Speed Below nameplate rate Fix: Ideal vs actual cycle time Quality Losses 5. Process Defects Scrap & rework during run Fix: Inline inspection, SPC 6. Startup Rejects Defects after stop / changeover Fix: Count all startup rejects
The Six Big Losses map directly onto the three OEE factors — identifying which category drives your OEE loss points immediately to the right countermeasure.

Calculate OEE from PLC Data

This is the section most OEE resources skip — and it is where automation engineers can add the most value.

Manual OEE collection (paper logs, operator entry) introduces reporting lag, subjective categorization, and systematic under-reporting of minor stops. Pulling the three OEE factors directly from PLC tags eliminates these problems and enables real-time OEE dashboards.

Here is how each factor maps to the automation layer.

Availability from Machine-State Bits

Most PLCs maintain a machine state — a word or set of bits indicating whether the equipment is running, faulted, in changeover, or idle. On Allen-Bradley ControlLogix systems these are typically stored as DINT or BOOL tags; on Siemens S7 systems they appear as data block variables.

Tag mapping for Availability:

PLC Tag Description OEE Use
Machine.Running (BOOL) TRUE when production is active Accumulate into Run Time
Machine.Faulted (BOOL) TRUE when an unplanned stop is active Accumulate into Stop Time
Machine.PlannedStop (BOOL) TRUE during scheduled breaks/maintenance Exclude from Planned Production Time
Shift.PlannedTime_min (DINT) Configured planned production time per shift Denominator for Availability

A simple ladder logic or structured text accumulator samples Machine.Running on a 1-second scan and increments a RunTime_Accum counter. At shift end:

Availability = RunTime_Accum / Shift.PlannedTime_min

For IIoT-connected systems, these tags are typically published over OPC UA or MQTT to a historian or edge gateway that computes OEE in real time.

Performance from a Counter and Cycle-Time Tag

Performance requires two data sources: a unit counter and either an ideal cycle time constant or a measured cycle time tag.

Tag mapping for Performance:

PLC Tag Description OEE Use
Production.TotalCount (DINT) Rising-edge count of completed units Total Count in Performance formula
Machine.IdealCycleTime_s (REAL) Nameplate cycle time in seconds (constant) Ideal Cycle Time
Production.LastCycleTime_s (REAL) Measured time for most recent cycle Trend analysis, not OEE formula

The Production counter increments on the rising edge of a part-present or part-ejected sensor. Machine.IdealCycleTime_s is a constant entered during commissioning — it should reflect the machine's rated capacity, not the observed average.

Performance = (IdealCycleTime_s × TotalCount) / (RunTime_Accum × 60)

Minor stops show up automatically: if the machine stalls for two minutes between cycles, TotalCount stops incrementing while RunTime_Accum keeps growing, pulling Performance down without any manual entry.

Quality from a Reject Counter

Quality is the simplest factor to pull from PLC data, provided a reject-detection mechanism exists on the line.

Tag mapping for Quality:

PLC Tag Description OEE Use
Production.TotalCount (DINT) All units produced Total Count
Production.RejectCount (DINT) Units rejected by inline inspection Reject Count
Production.GoodCount (DINT) TotalCount − RejectCount (computed) Good Count

Reject signals typically come from:

  • Vision systems outputting a FAIL bit to the PLC
  • Checkweighers outputting an out-of-tolerance bit
  • Operator reject buttons wired to a digital input
Quality = (TotalCount - RejectCount) / TotalCount

If your line lacks inline rejection, Quality must be entered manually from end-of-line inspection records — a common gap in older facilities that manufacturing automation upgrades can address.

Real-time OEE from PLC data: machine state bits for Availability, unit counter and ideal cycle time for Performance, reject counter for Quality feeding OPC-UA historian Flow diagram showing three PLC tag groups feeding the three OEE factors in real time: Machine.Running accumulator for Availability, Production.TotalCount with IdealCycleTime for Performance, and Production.RejectCount for Quality, all publishing over OPC-UA to a live OEE dashboard. Real-Time OEE from PLC Tags — Automation Layer Availability PLC Tags Machine.Running (BOOL) Machine.Faulted (BOOL) Shift.PlannedTime_min (DINT) RunTime_Accum ÷ PlannedTime Performance PLC Tags Production.TotalCount (DINT) Machine.IdealCycleTime_s (REAL) Part-present sensor rising edge (ICT × Count) ÷ RunTime Quality PLC Tags Production.TotalCount (DINT) Production.RejectCount (DINT) Vision / checkweigh FAIL bit (Total−Reject) ÷ Total Real-Time OEE = A × P × Q Computed in PLC / edge device / OPC-UA server every scan OPC-UA or MQTT → historian → live OEE dashboard at machine HMI and plant manager web client Minor stops captured automatically — no manual entry
Three PLC tag groups feed the three OEE factors in real time — minor stops are captured automatically as gaps in the TotalCount accumulation, eliminating the largest reporting blind spot in manual OEE systems.

Assembling Real-Time OEE

With all three tag groups wired up, the OEE calculation runs continuously in the PLC, in an edge device, or in an OPC UA server subscription:

OEE = Availability × Performance × Quality
    = (RunTime / PlannedTime) 
      × ((IdealCycleTime × TotalCount) / RunTime)
      × ((TotalCount - RejectCount) / TotalCount)

This data can feed a live OEE dashboard through an OPC UA client, MQTT broker, or direct database write — making OEE visible to operators at the machine HMI and to plant managers in a web dashboard simultaneously. See the IIoT and PLC integration guide for connectivity architecture options.


Common OEE Calculation Mistakes

Even experienced engineers make these errors when implementing OEE for the first time.

1. Including planned downtime in Stop Time Scheduled breaks, planned maintenance windows, and shift changeovers that are planned in advance should be subtracted from the shift duration to arrive at Planned Production Time — they should not count as unplanned downtime that reduces Availability. Misclassifying these inflates Stop Time and makes Availability look worse than it is.

2. Using average cycle time instead of ideal cycle time Performance must be calculated against the machine's design (nameplate) rate, not the observed average. Using observed average cycle time will always yield a Performance of close to 100%, masking real speed losses.

3. Counting reworked parts as good A part that required rework is not a first-pass good part. It should remain in the Reject Count for Quality purposes, even if it eventually ships to the customer. Counting rework as good inflates the Quality factor.

4. Inconsistent time boundaries All three factors must cover exactly the same time window. If Availability uses shift start/end timestamps but Performance uses a counter that resets at midnight, the factors will not be consistent.

5. Capping Performance above 100% If the machine runs faster than its nameplate rate (perhaps because the nameplate rate is conservative), Performance can theoretically exceed 1.0, which would inflate OEE above the product of the other two factors. Cap Performance at 1.0 (100%) in your calculation logic.

6. Ignoring startup rejects Parts produced during startup after a fault or changeover are often automatically excluded from reject tracking because operators "know" they will be bad. These startup rejects are a real quality loss and belong in the Quality factor.


Frequently Asked Questions

How do you calculate OEE?

Multiply three ratios together: Availability × Performance × Quality. Availability is Run Time divided by Planned Production Time. Performance is (Ideal Cycle Time × Total Count) divided by Run Time. Quality is Good Count divided by Total Count. All three factors are expressed as decimals between 0 and 1, and their product gives the OEE score (multiply by 100 for a percentage).

What is the OEE formula?

The OEE formula is:

OEE = (Run Time / Planned Production Time) × ((Ideal Cycle Time × Total Count) / Run Time) × (Good Count / Total Count)

This simplifies algebraically to:

OEE = (Ideal Cycle Time × Good Count) / Planned Production Time

The simplified form is mathematically equivalent and useful for quick checks, but the three-factor form is preferred because it breaks the result into actionable components.

What is a good OEE score?

85% is the internationally recognized world-class benchmark, originally established by the Japan Institute of Plant Maintenance for high-volume discrete manufacturing. The industry average for most manufacturing plants is between 40% and 60%. A score of 65-75% is considered good for most facilities. The most important measure is consistent improvement from your own baseline rather than hitting a specific absolute number.

What are the Six Big Losses?

The Six Big Losses classify all production losses into six categories across the three OEE factors:

  • Availability losses: (1) Unplanned stops / equipment failures; (2) Setup and adjustment / changeover time
  • Performance losses: (3) Minor stops and idling; (4) Reduced speed
  • Quality losses: (5) Process defects (scrap and rework during stable production); (6) Startup rejects (defects produced during warmup or after a stop)

Identifying which of these six categories is the primary driver of OEE loss points directly to the right improvement action.

#howto calculate oee#OEEformula#overallequipment effectiveness#availabilityperformance quality#manufacturingkpi#oeecalculation
Share this article:

Related Articles