EnableYourData.com

KPI · Inventory, purchasing and production

OEE: formula and example.

OEE (overall equipment effectiveness) measures how much of the planned production time actually produces good products at the ideal speed. It is the product of three factors: availability, performance and quality. It shows whether losses come from downtime, running too slowly or rejects.

OEE formula

Availability × performance × quality, where availability = run time ÷ planned time, performance = (ideal cycle time × units produced) ÷ run time and quality = good units ÷ units produced

Worked example

Acme Groothandel's packing line was planned for 500 minutes one day and ran for 450: availability is 450 ÷ 500 = 90%. At an ideal cycle time of 6 seconds, the 4,050 units produced took 24,300 seconds, or 405 minutes: performance is 405 ÷ 450 = 90%. Of those, 3,888 were good: quality is 3,888 ÷ 4,050 = 96%. OEE is 0.90 × 0.90 × 0.96 = 77.8%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A higher OEE means you get more good output from the same planned time. The headline figure says little without its three factors: a drop caused by downtime needs a different fix than a drop caused by rejects. Compare a line with itself over time; lines making different products with different cycle times are hard to compare with each other.

Pitfalls with OEE

  • Including planned stops such as changeovers or maintenance in planned time on some days but not others.
  • Choosing a generous ideal cycle time, which flatters performance.
  • Reporting only the OEE score without the losses per factor, so nobody knows what to act on.

SQL & DAX

Calculating OEE in SQL and DAX

Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.

SQL · PostgreSQL
SELECT date_trunc('week', started_at) AS week,
       ROUND(SUM(run_minutes)::numeric / NULLIF(SUM(planned_minutes), 0), 3) AS availability,
       ROUND((SUM(ideal_cycle_seconds * (good_qty + scrap_qty)) / 60.0)::numeric
             / NULLIF(SUM(run_minutes), 0), 3) AS performance,
       ROUND(SUM(good_qty)::numeric / NULLIF(SUM(good_qty + scrap_qty), 0), 3) AS quality,
       ROUND((SUM(ideal_cycle_seconds * good_qty) / 60.0)::numeric
             / NULLIF(SUM(planned_minutes), 0), 3) AS oee
FROM production_orders
WHERE finished_at IS NOT NULL
GROUP BY 1
ORDER BY 1;
DAX · Power BI
Availability = DIVIDE(SUM(Production[RunMinutes]), SUM(Production[PlannedMinutes]))
OEE = DIVIDE(SUMX(Production, Production[IdealCycleSeconds] * Production[GoodQty]) / 60, SUM(Production[PlannedMinutes]))

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for OEE per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.

Read more →

In your Power BI dashboard

Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.

Read more →

Custom dashboards (pilot)

Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

How do you calculate OEE?

Multiply availability, performance and quality. Availability is run time divided by planned time, performance is the ideal time for the units made divided by run time, and quality is good units divided by all units made. You get the same result by multiplying good units by the ideal cycle time and dividing by planned time.

What is the difference between OEE and capacity utilisation?

Capacity utilisation measures how much of the available time you have scheduled and used. OEE looks at how effective that scheduled time was. A line can be fully booked and still have a low OEE.

What are the six big losses in OEE?

The six big losses are breakdowns, changeovers, minor stops, reduced speed, start-up rejects and production rejects. The first two reduce availability, the middle two performance and the last two quality. Logging losses this way shows where the biggest gains are.

Use AI on your own data. Securely, and without the headache.

In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.