TL;DR
OEE calculation multiplies three factors: Availability × Performance × Quality. In example 1 below, 88.3% × 89.8% × 95.0% gives an OEE of 75.3%. Check any result with one line: good count × ideal cycle time ÷ planned production time.
An OEE calculation needs six inputs and one formula.
This page works through three OEE calculation examples, from a single shift to a machine that runs two products. Where planned production time comes from, and the calendar records that decide it, are set out in the shift calendar data model.
OEE = Availability × Performance × Quality
| Factor | Formula | Alternative form |
|---|---|---|
| Availability | Run time ÷ planned production time | 1 - (stop time ÷ planned production time) |
| Performance | (Ideal cycle time × total count) ÷ run time | (Total count ÷ run time) ÷ ideal run rate |
| Quality | Good count ÷ total count | 1 - (reject count ÷ total count) |
| OEE | Availability × Performance × Quality | (Good count × ideal cycle time) ÷ planned production time |
If you are new to the metric, start with our complete guide to overall equipment effectiveness. This page focuses on the math.
Six numbers are enough for a machine that runs one product. The Quality factor is only as good as the scrap record behind it, which is what our scrap reason code taxonomy is for. Collect them for the same period, usually one shift.
| Input | What it means |
|---|---|
| Shift length | The total time of the period you are measuring |
| Breaks and non-production time | Breaks, meetings and time with no production scheduled. Changeovers are not included here; they count as stops. |
| Stop time | Stops longer than your short stop threshold during planned production time, such as breakdowns and changeovers |
| Ideal cycle time | The fastest time the machine can make one part under optimal conditions |
| Total count | Every unit produced, good or bad |
| Reject count | Units that were scrapped or needed rework |
The ideal cycle time is the input most often set wrong. Use the design speed or the best demonstrated speed, not last month's average.
Our guide to ideal cycle time shows how to find it.
A machine runs one eight-hour shift. Here is the data.
| Input | Value |
|---|---|
| Shift length | 480 minutes |
| Breaks | 45 minutes |
| Stop time | 51 minutes (29 breakdown, 22 changeover) |
| Ideal cycle time | 45 seconds (0.75 minutes) |
| Total count | 460 units |
| Reject count | 23 units |
Availability = 384 ÷ 435 = 88.3%
The changeover counts as a stop here, because it happened inside planned production time.
Performance = (0.75 × 460) ÷ 384 = 345 ÷ 384 = 89.8%
You get the same answer with rates. The ideal rate is 80 units per hour.
The actual rate was 460 ÷ 6.4 hours = 71.875 units per hour, and 71.875 ÷ 80 = 89.8%.
Good count = 460 - 23 = 437 units.
Quality = 437 ÷ 460 = 95.0%
OEE = 88.3% × 89.8% × 95.0% = 75.3%
Now check it: 437 × 0.75 ÷ 435 = 327.75 ÷ 435 = 75.3%.
The two methods agree, so the arithmetic is right. The check cannot catch a wrong input, such as an ideal cycle time that is set too slow.

Is 75.3% good? The widely quoted world-class figure is 85%, and most manufacturers score closer to 60%.
Fast lines are easier to calculate with rates than with cycle times.
| Input | Value |
|---|---|
| Planned production time | 450 minutes |
| Stop time | 38 minutes |
| Ideal run rate | 200 bottles per minute |
| Total count | 72,100 bottles |
| Reject count | 1,080 bottles |
Check: 71,020 good bottles ÷ (200 × 450) = 71,020 ÷ 90,000 = 78.9%.
On a line like this, performance is the biggest loss. That usually points to short stops and speed reductions, not breakdowns.
Our guide to micro stops explains how to find them.
This is where most spreadsheets go wrong.
A machine runs two products in one shift, with 440 minutes of planned production time and 400 minutes of run time.
| Product | Ideal cycle | Count | Rejects | Time earned |
|---|---|---|---|---|
| A | 0.6 min | 300 | 9 | 180 min (300 × 0.6) |
| B | 1.2 min | 150 | 6 | 180 min (150 × 1.2) |
| Total | 450 | 15 | 360 min |
Quality is weighted by standard time here, because a rejected B unit costs twice the time of a rejected A unit.
The plain count, 435 ÷ 450 = 96.7%, would not multiply back to the one-step result.
Take the average cycle time, 0.9 minutes, and multiply it by all 450 units. That gives 405 minutes of "earned" time in 400 minutes of running.
Performance comes out at 101.3%, which is impossible. The average hides the fact that the fast product made most of the units.
Never average OEE percentages. Add up the times first, then divide.
| Machine | Planned time | Fully productive time | OEE |
|---|---|---|---|
| Machine 1 | 450 min | 360 min | 80% |
| Machine 2 | 150 min | 60 min | 40% |
| Combined | 600 min | 420 min | 70% |
The simple average of 80% and 40% is 60%, which understates the combined result by 10 points.
For a line of machines in series, also look at the bottleneck. Its output sets how much the line can deliver.
See how to calculate OEE for multiple machines.
Use one row per machine per shift. The last five columns are calculated.
| Column | Formula |
|---|---|
| A. Shift length (min) | Input |
| B. Breaks and non-production time (min) | Input |
| C. Stop time (min) | Input |
| D. Ideal cycle time (min) | Input |
| E. Total count | Input |
| F. Reject count | Input |
| G. Planned production time | A - B |
| H. Availability | (G - C) ÷ G |
| I. Performance | (D × E) ÷ (G - C) |
| J. Quality | (E - F) ÷ E |
| K. OEE | H × I × J |
Add a check column with (E - F) × D ÷ G. It must always equal K.
For a ready-made version, see our OEE Excel template guide, or put a price on your losses with the cost of downtime calculator.
In example 3, multiplying the rounded factors 90.9% × 90.0% × 96.5% gives 78.9%, but the exact result is 79.0%.
Keep full precision until the last step, then round once.
It is never real. The ideal cycle time is too slow, or the count includes units from another period.
If a changeover is left out of planned production time on bad days and counted as a stop on good days, the trend means nothing.
Write the rule down once and apply it to every shift.
Use standard time earned per product, as in example 3.
A part that needed rework was not right the first time. It belongs in the reject count.
Weight by planned production time, or sum the times first.
Ideal cycle time in seconds and run time in minutes is the most common spreadsheet error. Convert everything to one unit before you start.
Stops written down at the end of a shift are usually shorter and fewer than the real ones.
Automatic data capture removes the guesswork. See OEE data collection methods.
The math is the same either way. The difference is the quality and speed of the inputs.
If your result looks too low or too high, work through why your OEE is low before changing anything on the line.
Fabrico collects stop time and counts from PLCs, IoT sensors and AI cameras, then calculates availability, performance, quality and OEE (A × P × Q) in real time.
It detects micro stops that manual logs miss, and shows downtime, MTTR and MTBF by machine on a live dashboard. The whole feature set is on the OEE software page, and the availability side is broken out under downtime tracking.
Because Fabrico has a full CMMS built in, your team can turn the losses you calculate into work orders and preventive maintenance plans in the same platform. Data can be exported to Excel at any time.
See your own OEE calculated live: book a demo.
More guides: what OEE means, the six big losses and our Overall Equipment Effectiveness hub.
Multiply availability, performance and quality.
Availability is run time ÷ planned production time, performance is (ideal cycle time × total count) ÷ run time, and quality is good count ÷ total count.
OEE = (good count × ideal cycle time) ÷ planned production time.
It gives the same result as the three-factor formula, but it does not show where the loss is.
Divide run time by planned production time.
Run time is planned production time minus all stops longer than your short stop threshold, including breakdowns and changeovers.
Multiply the ideal cycle time by the total count, then divide by run time.
For several products, add up the standard time earned for each product and divide by run time.
The ideal cycle time is set slower than the machine can actually run, or the count covers a different period than the run time.
Fix the input rather than capping the result.
In the standard approach, yes. Changeovers happen during planned production time, so they reduce availability.
Whatever rule you choose, apply it the same way every shift.
Put the six inputs in columns, then calculate planned production time, availability, performance, quality and OEE in the next columns.
Add a check column with the one-step formula. The template above lists every formula.
See how Fabrico unifies OEE and maintenance in one platform.
Request a demo