Appearance
OEE Formulas and Worked Example
Last updated
License feature: OEE TrackingOEE is calculated on demand whenever something asks for it (the OEE Dashboard tab, an OEE Gauge widget, or a snapshot post). There is no background timer.
Inputs
| Symbol | Meaning | Source |
|---|---|---|
| P | Planned production time, seconds | From Shift Schedule: time elapsed in the shift so far minus Break Periods passed (or Total Break spread across the shift). Manual: Manual minutes × 60 |
| Dp | Planned downtime, seconds | Downtime with a Planned reason, within the period |
| Du | Unplanned downtime, seconds | Downtime with an Unplanned reason or no reason, within the period |
| Dc | Changeover downtime, seconds | Downtime with a Changeover reason, within the period |
| Total | Total parts | Total count for the period, plus logged quality events on a device without a Reject Count tag |
| Good | Good parts | Good count for the period |
| Ideal | Ideal cycle time, seconds | Ideal Cycle Time (seconds) |
The period is the running shift on From Shift Schedule, and the local calendar day on Manual (or when no shift is defined). Only the part of a downtime event inside the period counts: an event that started before the shift counts from the shift start, and an open event counts until now.
Formulas
text
Run time = max(0, P − Dp − Du − Dc)
Availability = Run time / (P − Dp)
Performance = Total × Ideal / Run time
Quality = Good / Total (1.0 when Total is 0)
OEE = Availability × Performance × Quality- Availability, Quality and OEE are clamped to 0–100 %. Performance is clamped to 0–200 %.
- Performance is 0 when Total, Ideal or Run time is 0.
- Planned downtime is removed from both the top and bottom of Availability, so it does not hurt Availability. It still shortens Run time, which raises Performance for the same count.
- Changeover lowers Availability, as unplanned downtime does — it is time the machine was meant to run and didn't — but it is reported separately, so you can see how much of the loss is changeover.
- Rejects: on a device with a Reject Count Tag, the tag is the reject count and logged quality events don't change OEE. Without one, quality events logged on the Quality page during the period are rejects, added to any reject count posted through the API. Log a bad part in one place only.
Worked example: case packer
A case packer rated at 120 cases/minute runs one shift.
| Setting | Value |
|---|---|
| Ideal Cycle Time (seconds) | 0.5 (60 s ÷ 120 cases) |
| Production Time Source | From Shift Schedule |
| Shift "Day Shift" | 06:00–14:00, Mon–Fri, no Break Periods |
| Total Break (min) | 30 |
| Downtime logged | 45 min under "Film Jam" (Unplanned) |
| Counts at 14:00 | goodCount 42 865, rejectCount 875 (Reject Count Tag bound) |
- At the end of the shift, P = 8 h − 30 min = 450 min = 27 000 s.
- Du = 45 min = 2 700 s; Dp = 0.
- Run time = 27 000 − 0 − 2 700 = 24 300 s.
- Availability = 24 300 / 27 000 = 0.900.
- Total = 42 865 + 875 = 43 740. Performance = 43 740 × 0.5 / 24 300 = 21 870 / 24 300 = 0.900.
- Quality = 42 865 / 43 740 = 0.980.
- OEE = 0.900 × 0.900 × 0.980 = 0.794 → 79 % (amber on the dashboard).
Add 20 minutes of "Preventive Maintenance" (Planned) to the same shift with the same counts:
- Run time = 27 000 − 1 200 − 2 700 = 23 100 s.
- Availability = 23 100 / (27 000 − 1 200) = 23 100 / 25 800 = 0.895.
- Performance = 21 870 / 23 100 = 0.947.
- OEE = 0.895 × 0.947 × 0.980 = 0.831 → 83 %.
Things to know
- Mid-shift numbers are for the shift so far. At 10:00 in the example, 4 hours in, P = 4 h − 15 min (half of Total Break) = 13 500 s, and Performance compares the parts made so far with that time. Because Total Break is spread evenly, Performance reads a little high before the real break and settles after it; enter the breaks as Break Periods at their real times to avoid that.
- Breaks can be subtracted twice. Break time is already removed from P. If operators also log a "Break / Lunch" downtime event (Planned), that time comes off again.
- Overnight shifts are one period: 22:00–06:00 belongs to the date it starts, so counts and downtime don't reset at midnight.
- No shift running (between shifts, on a holiday) plans nothing, so OEE reads 0 % and the card says Not scheduled. Manual minutes are used only when no shifts are defined.