Calculate OEE: Formula, Worked Example and Where the Data Comes From
- Published:
- Reading time
- 20 min read
- Author:
- Abbas Mohammadi
You calculate OEE (Overall Equipment Effectiveness) as the product of availability, performance and quality rate - all three referring to the same period and the same machine. The result tells you what share of the planned production time actually turned into good parts at the target rate. The formula takes five minutes to explain; whether the number is worth anything is decided by the time model and by where the raw data comes from.
What is OEE - and what does it not tell you?
Overall equipment effectiveness measures how much of a machine's planned production time was converted into good parts at the target rate, and assigns the remainder to three loss categories: downtime, reduced speed and scrap. The concept comes from TPM (Total Productive Maintenance); MPDV traces it back in its glossary to Seiichi Nakajima's TPM book of 1988. In German-speaking industry, VDMA-Einheitsblatt 66412-1 (a VDMA standard sheet) harmonised OEE along with other MES key figures; it carries the issue date 2009-10 and was supplemented in 2010-05 by amendment A1. The international standard ISO 22400-2 grew out of the German standardisation proposal.
What matters just as much is what OEE is not. It compares a machine against its own plan: against the production time scheduled for it and the target cycle time stored for the product. It says nothing about whether the machine should have been running at all, whether the order was profitable, or how competitors are doing. An asset scheduled for only one shift a day can show a high OEE and still stand idle for two thirds of the day.
OEE is therefore not utilisation. Utilisation answers a capacity question (time used against available calendar or occupancy time), productivity answers a cost question (output against the input of labour, material and energy). OEE answers a loss question: where does performance disappear within the planned time - and in which of the three categories.
The OEE formula: availability, performance, quality
The OEE formula consists of three ratios that must all refer to the same period - a shift, a day or an order. Availability measures time, performance measures speed, quality measures pieces. Because each factor builds on the previous one, no loss is counted twice: whatever is booked as downtime does not reappear as a speed loss.
OEE = Availability × Performance × Quality rate
- Availability
- Actual running time ÷ planned production time (time ÷ time)
- Performance
- Actual output ÷ target output, with target output = actual running time ÷ target cycle time
- Quality rate
- Good parts ÷ total parts (pieces ÷ pieces)
| Factor | Formula | Input quantities | Typical pitfall |
|---|---|---|---|
| Availability | Actual running time ÷ planned production time | Minutes | Depending on the time model, set-up and planned maintenance are either in or out |
| Performance | (Actual output × target cycle time) ÷ actual running time | Pieces, seconds per piece, minutes | Target cycle time taken from costing instead of from the process; values above 100 % |
| Quality rate | Good parts ÷ total parts | Pieces | Rework and scrap detected later are missing |
| Cross-check | (Good parts × target cycle time) ÷ planned production time | Pieces, seconds per piece, minutes | Exposes inconsistencies between the three factors |
The cross-check in the last row is the fastest plausibility test. If the three factors are cleanly referenced to the same period, actual running time and total quantity cancel out, and what remains is good parts times target cycle time, divided by planned production time. If that short form returns a different value from the product of the three factors, something was calculated on a different time base or a different quantity - usually piece counts from the ERP and runtime from the controller, for slightly different time windows.
A performance factor above 100 % is not a success but a symptom. The target cycle time should be the technically achievable best time of the machine for this product - not the value from the quotation costing with its contingencies, and not the average of the past few months, which already prices in losses. A target cycle time that is too generous systematically calculates speed losses away.
Worked example: calculate OEE for one shift, minute by minute
The following worked example is fictitious; the numbers are chosen so that every typical loss type occurs. Assume an early shift of 480 minutes on a single machine with a target cycle time of 12 seconds per piece. Time model A treats breaks and planned maintenance as planned non-production, and set-up as an availability loss.
| Item | Minutes | Classification under time model A |
|---|---|---|
| Shift time | 480 | Occupancy time |
| Breaks (2 × 15 min) | − 30 | Planned, not part of planned production time |
| Planned maintenance and cleaning | − 20 | Planned, not part of planned production time |
| = Planned production time | 430 | Reference base for availability |
| Set-up / product changeover | − 35 | Availability loss |
| Faults (2 events) | − 25 | Availability loss |
| Minor stops above the recording threshold | − 10 | Availability loss |
| = Actual running time | 360 | Reference base for performance |
| Factor | Calculation | Result |
|---|---|---|
| Availability | 360 min ÷ 430 min | 83.7 % |
| Target output | 360 min × 60 s ÷ 12 s/piece | 1,800 pieces |
| Performance | 1,566 pieces (actual) ÷ 1,800 pieces (target) | 87.0 % |
| Quality rate | 1,519 good parts ÷ 1,566 pieces (47 pieces scrap) | 97.0 % |
| OEE | 0.837 × 0.870 × 0.970 | 70.7 % |
| Cross-check | 1,519 × 12 s ÷ (430 min × 60 s) | 70.7 % |
The loss accounting makes the result tangible. Of 430 planned minutes, around 304 minutes went into good parts at the target rate. 70 minutes were lost as downtime, around 47 minutes as speed loss (360 minutes minus 1,566 × 12 seconds) and around 9 minutes as scrap (47 × 12 seconds). The largest block is downtime - and within it the set-up, not the fault.
Variant B: the same shift, a different time model
Now the plant treats set-up as a planned activity and removes the 35 minutes from planned production time - common wherever set-up times appear in the routing. Planned production time drops to 395 minutes, actual running time stays at 360 minutes. Availability 360 ÷ 395 = 91.1 %, performance and quality unchanged, OEE = 0.911 × 0.870 × 0.970 = 76.9 %. The same shift, the same 1,519 good parts, 6.2 percentage points more OEE. Neither figure is wrong - but only variant A makes the set-up loss visible, and comparing the two values is pointless.
Time model: what counts as planned production time?
Planned production time is the time in which the machine is supposed to produce according to plan - shift time minus the periods in which production is explicitly not scheduled. Exactly what gets deducted is not a law of nature but a company decision. That is precisely why two departments that calculate OEE without a written definition arrive at two different values for the same machine - and both can justify their number.
- Calendar time
- 24 hours on 365 days. The reference base for TEEP, not for OEE.
- Occupancy time (shift time)
- The time in which the machine is staffed or assigned to an order. VDI 3423 (the German engineering guideline on machine availability) works with occupancy and utilisation times as its basic terms.
- Planned production time
- Occupancy time minus planned non-production: breaks without machine operation, planned maintenance, end of shift without an order. The reference base for OEE.
- Actual running time
- Planned production time minus all recorded stoppages - set-up, faults, material shortage, minor stops above the threshold. The reference base for performance.
- Value-adding time
- Actual running time minus speed and quality losses; equals good parts × target cycle time.
A written definition has to settle at least five points:
- Breaks: if the machine keeps running through the break because staff cover it, the break belongs to planned production time; if it stands still, it does not.
- Set-up: either as an availability loss (variant A) or as planned time (variant B). Variant A is preferable, because otherwise set-up improvement shows up in no key figure at all.
- Planned maintenance: outside planned production time - but only if it really was planned. Maintenance scheduled the day before because the spindle is making noises is a fault with a lead time.
- Minor stop threshold: the duration from which a stop is recorded as downtime with a reason; everything below it lands in the performance factor automatically.
- Lack of orders: known before the shift starts, it is planned non-production; if it appears at midday, it is a stoppage with the reason "no order". Report the two separately.
Where do runtime, piece counts and scrap technically come from?
Runtime, piece counts and scrap come from three sources with three timestamps - the main reason why OEE figures get questioned on the shop floor. The controller supplies the runtime, a counter or an operator supplies the piece count, and quality inspection supplies the scrap, often hours later.
| Data source | Derivable factor | Required time resolution | Typical bias |
|---|---|---|---|
| PLC operating mode signal (automatic, manual, fault) | Availability; downtime reasons in rough terms | Event-based, or sampling in the seconds range | "Automatic" does not mean "producing": automatic mode without a part counts as running time |
| Piece counter in the PLC (counter block, cycle pulse) | Performance (actual output); with a timestamp, minor stops as well | Every cycle; catch overflow and reset at shift change | Counts strokes, not parts: idle strokes, double parts, sample parts |
| OPC UA nodes (counter, state, fault code) | All three, if good and bad parts are counted separately | Subscription with a sampling interval below the cycle time | The address space contains whatever the machine builder chose to expose |
| Digital outputs, stack light (green, amber, red) | Availability, roughly | Seconds range | No downtime reason, no separation of planned and unplanned |
| Power draw (current transformer, energy meter) | Availability as an auxiliary indicator; idling detectable | Second to minute averages | The threshold for "producing" has to be calibrated per machine and product |
| Operator entry at the terminal (reason, scrap, quantity) | Quality, downtime reasons; fallback for the quantity | Event-related; avoid retrospective entry at the end of the shift | Recollection instead of measurement: rounding, batched postings, socially acceptable reasons |
| Quality inspection, final inspection | Quality (good parts) | Per lot or order | Time offset: scrap surfaces in a different shift from the one that caused it |
For the performance factor the counter needs a time reference. A counter reading at the end of the shift is enough for a shift OEE, but it does not reveal whether the machine ran too slowly for eight hours or stood still for one. Only counter readings with timestamps - on a one-minute grid, for instance - make minor stops below the recording threshold visible as gaps in the count. How to get counters, operating mode and fault codes out of a Siemens controller is described in Reading S7 data: OPC UA server, Snap7 and optimised data blocks.
Machine data acquisition (MDE, Maschinendatenerfassung) delivers runtime and piece counts automatically from the controller; operational data acquisition (BDE, Betriebsdatenerfassung) delivers the order, the personnel and the downtime reason from people. A dependable OEE needs both, and in that order: the automatic source fixes the time base, and the manual entries are attached to it afterwards rather than the other way round.
For legacy machines without an interface the key figure is still within reach. In its retrofit primer, the Mittelstand-Digital Zentrum Chemnitz (a publicly funded German SME digitalisation centre) describes how protocols such as MQTT or OPC UA can pass the current operating state up to higher-level systems, which makes key figures such as OEE calculable. The retrofit routes are compared in Retrofitting machine data: four routes for assets without an interface.
OEE, TEEP and variants: which reference time answers which question
OEE and TEEP differ only in the denominator. OEE refers to planned production time, TEEP (Total Effective Equipment Performance) to calendar time. Under the widely used definition documented for example by Vorne Industries on oee.com, TEEP = OEE × utilisation, where utilisation relates planned production time to the full 24 hours of all seven days. A machine at 70 % OEE running two shifts on five days therefore has a TEEP of roughly 33 % - the figure that belongs on the table before anyone invests in a second machine.
| Key figure | Reference time | Question answered | Typical audience |
|---|---|---|---|
| OEE | Planned production time | How much of the scheduled time was lost to downtime, speed or scrap? | Production management, shift supervisors, maintenance |
| TEEP | Calendar time (24/7) | How much capacity is still in the existing asset before investing? | Senior management, capital planning |
| Technical availability under VDI 3423 | Occupancy and utilisation time as defined by the guideline | Does the machine deliver what the supplier promised? | Purchasing, supplier, acceptance testing |
For the intermediate variants, labels such as OEE1, OEE2, NEE or NGE (Netto-Gesamtanlageneffektivität, net overall equipment effectiveness) circulate; alongside OEE, VDMA-Einheitsblatt 66412-1 lists an NGE next to the OEE. MES vendors do not apply the numbering consistently, however. So never rely on the name - ask for the denominator. Variant B from the worked example is precisely such a "second OEE".
Typical measurement errors that make OEE lose credibility
OEE rarely loses credibility because the formula was applied wrongly, but because the input data is systematically biased - and the shift supervisors notice before the analysis does. Six patterns occur in almost every plant.
- Minor stops below the recording threshold. In the worked example, a higher threshold makes the 10 minutes of minor stops disappear from availability (86.0 % instead of 83.7 %) and reappear in performance (84.6 % instead of 87.0 %). OEE stays at 70.7 % - but maintenance is looking in the wrong place.
- Retrospective entry at the end of the shift. Downtime reasons recalled from memory get rounded, bundled and glossed over. You can spot it in stoppages that suspiciously often last exactly a quarter or half an hour, and in a large "other" category.
- Multi-machine operation. One operator on three machines creates waiting times that appear as faults on the machine side. Without a dedicated downtime reason "operator not available", the loss migrates into the maintenance statistics.
- Target cycle time taken from the quotation costing. It contains contingencies and is too slow; performance factors above 100 % are the symptom.
- Scrap detected at final inspection. Parts sorted out only hours later are missing from the shift OEE, or burden the wrong shift. For the shift figure, what counts is scrap detected at the machine; downstream scrap belongs in an order-based OEE.
- Unsynchronised timestamps. If the clocks in the PLC, the shop floor terminal and the ERP drift apart, order changes and stoppages land in different time windows. Time synchronisation via NTP on every recording device is a prerequisite, not a finishing touch.
Checklist: sanity-checking an OEE value
- The cross-check good parts × target cycle time ÷ planned production time agrees with the product of the three factors.
- No factor exceeds 100 %; a performance factor above 100 % has been resolved via the target cycle time.
- Actual running time plus all recorded stoppages adds up exactly to planned production time.
- The counter reading at the end of the shift minus the reading at the start matches the quantity booked.
- The share of "other" among the downtime reasons is known and reported openly.
- Minor stop threshold, set-up rule and break rule are documented in writing and implemented identically in the MDE system, the spreadsheet and the shift log.
- Scrap is separated by where it was detected: at the machine or at final inspection.
- At least one shift has been timed manually and compared against the system figure.
Putting benchmarks in perspective
An OEE value without a stated time model is not comparable - neither between two companies nor between two lines of the same plant. The worked example shows the range: 70.7 % or 76.9 % for the same shift. Benchmarks are therefore a point of reference with an author attached, not a target.
As a third-party statement: the MES vendor MPDV writes in its Smart Factory Glossary that many manufacturing sites reach a value of around 60 %, that an OEE of 80 % or more counts as very good in discrete manufacturing, and that 85 % represents a top value. MPDV names neither a sample nor a time model; the figures are one vendor's experience values, not a measurement series, and they do not transfer readily to process industries or set-up-intensive one-off production.
More useful than the external comparison is the internal one: the same machine, the same time model, week after week, with the losses broken down across the three factors. And if a number improves in a jump, the first question is not "what did we do better" but "has someone changed the time model".
OEE calculator: work through your own shift in the browser
The OEE calculator below is pre-filled with the values from the worked example and therefore shows the 70.7 % from time model A when it opens. Replace the five fields with your own shift - planned production time, downtime, target cycle time, total quantity and scrap - and the three factors, the loss breakdown and the result recalculate. The entries stay in the browser; there is no sign-up and no data transfer.
- Availability
- 83.7 %
- Performance
- 87.0 %
- Quality
- 97.0 %
Time losses within production time
- Downtime
- 70 min
- Performance loss
- 47 min
- Quality loss
- 9 min
- Value-adding time
- 304 min
Worked example following the article's time model (production-time based, VDI 3423). Your inputs stay in the browser.
A performance factor that the calculator caps at 100 % is a pointer to the target cycle time: if actual output is above it, the stored cycle time is out of date and too slow - the machine is not too fast.
Calculating OEE in Excel: how to build the sheet
The calculator above runs exactly these six formulas. If you want to document the calculation permanently or lay several shifts side by side, transfer it into a spreadsheet: six input fields, six formulas, labels in column A, inputs and formulas in column B.
A1 Shift time (min) B1 480
A2 Planned non-production (min) B2 50 (breaks + planned maintenance)
A3 Stoppages, total (min) B3 70 (set-up + faults + recorded minor stops)
A4 Target cycle time (s/piece) B4 12
A5 Total quantity (pieces) B5 1566
A6 Scrap (pieces) B6 47
A8 Planned production time (min) B8 =B1-B2
A9 Actual running time (min) B9 =B8-B3
A10 Availability B10 =B9/B8
A11 Performance B11 =B5*B4/(B9*60)
A12 Quality rate B12 =(B5-B6)/B5
A13 OEE B13 =B10*B11*B12
A14 Cross-check B14 =(B5-B6)*B4/(B8*60)For several shifts, add one row per shift and calculate the weekly OEE from sums, not from averages: summed actual running time divided by summed planned production time, and the same for quantities. The average of the individual shift OEEs is wrong as soon as shifts were planned with different lengths - a short Saturday shift would otherwise weigh as much as a full early shift.
Conclusion: first the time model, then the formula, then automation
To calculate OEE you multiply three ratios; the result is only as dependable as the time model behind it and the source of every input quantity. Start by putting in writing what planned production time is, how set-up is treated, which minor stop threshold applies and where scrap is counted. Then run the calculation alongside in a spreadsheet for a week or two and check every shift with the cross-check - only after that is automatic acquisition worthwhile, because by then you know which signals you really need.
Once the definition holds and the raw data comes from the controller, the next step is a display that shift supervisors and maintenance use every day; how ralwo turns machine data into analyses of that kind is described on the data visualisation page.
Frequently asked questions
Sources
- VDI 3423 - Availability of machines and plants: terms, definitions, time recording and calculation, 2011-08 edition (German original: Verfügbarkeit von Maschinen und Anlagen - Begriffe, Definitionen, Zeiterfassung und Berechnung) — VDI Verein Deutscher Ingenieure e. V.
- Overall Equipment Effectiveness / OEE - Smart Factory Glossary — MPDV Mikrolab
- Retrofit basics: digitally retrofitting old machines (German original: Retrofit Grundlagen: Alte Maschinen digital nachrüsten) — Mittelstand-Digital Zentrum Chemnitz
- VDMA 66412-1:2009-10 - Manufacturing Execution Systems (MES) Kennzahlen (MES key figures) — DIN Media GmbH
- VDMA-Einheitsblatt 66412 (VDMA standard sheet 66412) — Wikipedia (German edition)
- Calculate TEEP: Increase Equipment Utilization — Vorne Industries (oee.com)