How is OEE calculated?

The system calculates OEE both at the equipment level and at the order level. We enclose a description of the calculations from the system documentation. We hope the information is comprehensive enough.


Availability takes into account all events that stop planned production long enough where it makes sense to track a downtime reason. Availability is calculated as the ratio of Run Time to Planned Production Time. Availability is calculated on a daily basis (or the day until now for days that have not complete).

Planned Production Time (PPT)

For each individual machine, its planned production time is derived from the shift calendar, assigned to the machine in the administration portal. Planned production time could be defined as flexible with up to 4 shifts per day and up to 3 breaks during a shift. A calendar has individual settings for each day of the week, it is selected on machine level and could be configured to start on a specific date.

Note: It is not required that every machine has an assigned calendar. If one does not then the assumption is that it is planned to work 24/7.

Run Time

Planned production time (PPT), excluding Stop Time (Downtime).

Calculation steps

  • For machine
  • For each planned production time interval (shift start-end, excluding breaks), calculate the total planned production time length (PPT)
  • Calculate the sum of all downtime for the period (Downtime matches to the periods displayed for t0agging of downtime – see above)


Availability = (PPT- Downtime) / PPT * 100

Note: Availability is always in the range [0%; 100%] as all of the components are positive and downtime could not exceed planned production time.


Performance calculation takes into account everything that causes the manufacturing process to run suboptimally when it is running. Then performance is calculated as the ratio between the ideal running time over all cycles and the net running time.

Note: Quality is always in the range [0%; 100%]. In case quality is calculated to above 100%, then the ideal planned time shall be readjusted.

Planned Duration

The amount of time planned for execution of all parts across a single operation. The time originates either from ERP or advanced planning and scheduling system (APS).

Planned duration can be calculated as the subtraction between the planned stop date and planned start date for the individual operation:

PlanDuration = PlanStop – PlanStart

Ideal Running Time (Ideal Cycle Time)

Ideal running time is subject to planning and shall be the fastest cycle time that the process could achieve under optimal circumstances. Ideal running time could be:

  • Available per operation level
  • Calculated as a division of planned duration and order quantity on the part level:

IdealCycleTime = PlanDuration / PartOrderQuantity

Calculation steps

  • For each machine
  • For each operation

– Iterate through time tracking reports and sum up time spent on operation level:

OperationTimeTotal += OperationLog[i].EndDate – OperationLog[i].StartDate

– Sum up the ideal time for the executed operations and number of items:

IdealTimeTotal += IdealCycleTime* OperationLog[i].producedQuantity

  • Calculate performance as:

Performance = (IdealTimeTotal / OperationTimeTotal) * 100;

Note: The performance calculation algorithm with the utilization of cycle time on the machine compared against planned time would be much more precise. Then for each operation execution, the KPI will sum up the ideal time vs the actual time, based on the NC cycle duration.


Quality takes into account manufactured parts that do not meet quality standards, including parts that need rework. Quality takes into account the first pass through the manufacturing process.

Good Parts

Parts that have passed quality control inspection.

  • For each machine
  • For each operation
    • Iterate through time tracking reports and sum up logs for good quantity:

GoodPartsTotal += OperationLog[i].GoodParts

Scrap Parts (Bad Parts)

Parts that have not passed quality control inspection.

  • For each machine
  • For each operation
    • Iterate through time tracking reports and sum up logs for good quantity: ScrapPartsTotal += OperationLog[i].ScrapParts

Calculation Steps

  • For each machine
  • For each operation
    • MinGoodPartsTotal – the minimum of good parts across all operation
    • SumScrapPartsTotal – the sum of scrap parts across all operations:

Quality = (MinGoodPartsTotal / (MinGoodPartsTotal + SumScrapPartsTotal)) * 100

Overall Equipment Effectiveness (Order Level)


Identify machines producing parts for a particular order and then find the downtime for the interval while the machine was working on an operation from the specific order (based on the data from Downtime Tagging). Calculated only for machines registered in the system, for which there is a time tracking information in ERP.


Same as machine-level performance but calculated on all operation logs under the specific Order.


Same as machine-level quality but calculated on all work order parts under the specific Order.

We take the sum of all scrap, and the minimum Good items produced by operations under the part. Then for the order, we sum from all parts the total of good and total of scrap items. The Quality is calculated as:

(TotalScrap / (TotalScrap+TotalGood)) * 100