KPI calculation details
- Last UpdatedOct 06, 2025
- 3 minute read
The chart's KPI values are derived from the MES event types data published on CONNECT data services. Calculations for KPIs like OEE, Availability, Performance, and Quality are based on the data retrieved from the MESJobHourlyResponse event types, while Mean Time To Repair (MTTR) and Mean Time Between Failures (MTBF) are from the MESEquipmentUtilizationHistory event types.
For OEE KPI types, the records are retrieved based on their start time using the following query:
startTime >= userSelectedStartTime and startTime < userSelectedEndTime
If a record's start time is earlier than the user selected start time, it is ignored. If a record starts before the user selected end time, it is used in the calculation.
For example, if the selected custom time range is 7:30 to 15:30 and you have the following records in the MESJobHourlyResponse table:
-
Record 1 | 7:00 - 8:00
-
Record 2 | 10:00 - 11:00
-
Record 3 | 15:00 - 16:00
Records 2 and 3 are used and Record 1 is ignored.
For Downtime and Maintenance KPI types, only records with full utilization events are included. These are records where both the start time and the end time fall within the selected time range. The records are retrieved using the following query:
startTime >= userSelectedStartTime and startTime < userSelectedEndtime and endTime <= userSelectedEndtime
OEE
The value for this KPI is determined by multiplying these OEE factors: Availability, Performance, and Quality. It is calculated using the following expression:
OEE (%) = (Availability * Quality * Performance)*100
When calculating OEE, the non-percentage values are used for Availability, Quality, and Performance. For example, if given the percentage values, OEE is computed according to the following:
Availability = 98.72%
Quality = 96.35%
Performance = 92.27%
OEE (%) = (98.72/100)*(96.35/100)*(92.27/100)*100
Availability
The value for this KPI is determined by aggregating all the records' runtime durations based on the chosen time period and dividing the total by the sum of the total runtime durations and total downtime durations. This KPI is calculated by using the following expression:
Availability (%) = (Total runtime duration / (Total runtime duration + Total downtime duration))*100
Quality
The value for this KPI is determined by aggregating all the records' good quantity for chosen time period and dividing it by the sum of the total good quantity and total wasted quantity. This KPI is calculated by using the following expression:
Quality (%) = (Good count / (Good count + Waste count))*100
Performance
The value for this KPI is determined by adding the aggregated value of all the records' good quantity and wasted quantity for the chosen time period. The sum is then divided by the production rate, and further divided by the total runtime duration. The production rate is determined by factoring in both the standard production rate and the batch size. This KPI is calculated based on the following expressions:
Performance (%) = ((Good count + Waste count) / Production rate) / Total runtime duration)*100
where Production rate = (1/Standard production rate) * Batch size
MTTR
The value for this KPI is determined by adding all the downtime durations of records with failure flag set to true based on the chosen time period, then dividing by the aggregated number of failure downtime records. The total failure downtime duration is converted first to minutes before dividing by the failure downtime record count. This KPI is calculated by using the following expression:
MTTR (minutes) = Total failure downtime duration / Failure downtime count
MTBF
The value for this KPI is determined by adding all the runtime durations of records based on the chosen time period, then dividing by the aggregated number of downtime records with failure flag set to true. The total runtime duration is converted first to minutes before dividing by the failure downtime record count. This KPI is calculated by using the following expression:
MTBF (minutes) = Total runtime duration / Failure downtime count