Overall Equipment Effectiveness (OEE) is a key performance indicator (KPI) used in manufacturing to measure the efficiency of a production process. It's a composite metric that highlights the percentage of planned production time that is truly productive. A high OEE score indicates a well-running and efficient operation.
The OEE Formula Breakdown
OEE is calculated by multiplying three distinct factors: Availability, Performance, and Quality.
OEE = Availability × Performance × Quality
1. Availability
Availability measures the percentage of planned production time during which the equipment was actually running. It accounts for unplanned stops (downtime) and planned stops (like breaks or scheduled maintenance, if these are excluded from planned production time).
Availability = (Planned Production Time – Downtime) / Planned Production Time
Where:
Planned Production Time: The total time the equipment is scheduled to run.
Downtime: All the time the equipment was stopped for any reason (breakdowns, setups, adjustments, etc.).
2. Performance
Performance measures how close the equipment is running to its theoretical maximum speed. It accounts for minor stops (like slow cycles or brief interruptions) and reduced speed.
Performance = (Total Parts Produced × Ideal Cycle Time per Part) / Run Time
Where:
Total Parts Produced: The total number of parts manufactured, including good parts and defects.
Ideal Cycle Time per Part: The theoretical minimum time to produce one part under optimal conditions.
Run Time: This is the time the equipment was actually running, calculated as Planned Production Time – Downtime.
3. Quality
Quality measures the percentage of good parts produced out of the total parts produced. It accounts for defects, scrap, and rework.
Quality = Number of Good Parts Produced / Total Parts Produced
How to Use This Calculator
To calculate your OEE, you need to input the following values:
Total Planned Production Time (minutes): The total duration you intend for the equipment to operate.
Total Downtime (minutes): The sum of all periods the equipment was stopped.
Number of Good Parts Produced: The count of parts that meet quality standards.
Ideal Cycle Time per Part (seconds): The fastest possible time to produce one part.
Total Parts Produced (including defects): The overall count of all parts made, regardless of quality.
The calculator will then determine your OEE score as a percentage.
Interpreting OEE Scores
World Class: 85% and above.
Good: 60% – 70%.
Poor: Below 40%.
Analyzing each component (Availability, Performance, Quality) individually can help pinpoint specific areas for improvement.
Example Calculation
Let's say a machine is planned to run for an 8-hour shift (480 minutes).
It experiences 60 minutes of downtime.
It produces 400 good parts.
The ideal cycle time for one part is 30 seconds (0.5 minutes).
In total, 420 parts were produced (including 20 defects).
Quality: 400 good parts / 420 total parts = 0.9524 (95.24%)
OEE: 0.875 * 0.5 * 0.9524 = 0.4167 (41.7%)
In this example, the OEE is approximately 41.7%, indicating significant room for improvement, particularly in performance.
function calculateOEE() {
var availableTime = parseFloat(document.getElementById("availableTime").value);
var downtime = parseFloat(document.getElementById("downtime").value);
var goodParts = parseFloat(document.getElementById("goodParts").value);
var idealCycleTimeSec = parseFloat(document.getElementById("idealCycleTime").value);
var totalPartsProduced = parseFloat(document.getElementById("totalPartsProduced").value);
var errorMessage = "";
if (isNaN(availableTime) || availableTime <= 0) {
errorMessage += "Please enter a valid positive number for Total Planned Production Time.\n";
}
if (isNaN(downtime) || downtime < 0) {
errorMessage += "Please enter a valid non-negative number for Total Downtime.\n";
}
if (isNaN(goodParts) || goodParts < 0) {
errorMessage += "Please enter a valid non-negative number for Number of Good Parts Produced.\n";
}
if (isNaN(idealCycleTimeSec) || idealCycleTimeSec <= 0) {
errorMessage += "Please enter a valid positive number for Ideal Cycle Time per Part (seconds).\n";
}
if (isNaN(totalPartsProduced) || totalPartsProduced < 0) {
errorMessage += "Please enter a valid non-negative number for Total Parts Produced.\n";
}
if (availableTime <= downtime) {
errorMessage += "Total Downtime cannot be greater than or equal to Total Planned Production Time.\n";
}
if (totalPartsProduced 0) ? (totalPartsProduced * idealCycleTimeMin) / runTime : 0;
// Calculate Quality
// Ensure totalPartsProduced is not zero to avoid division by zero
var quality = (totalPartsProduced > 0) ? (goodParts / totalPartsProduced) : 0;
// Calculate OEE
var oee = availability * performance * quality;
// Cap OEE at 1 if it somehow exceeds due to input variations or minor floating point issues
oee = Math.min(oee, 1);
// Format OEE as a percentage
var oeePercentage = (oee * 100).toFixed(2);
document.getElementById("result-value").innerText = oeePercentage + "%";
}