Skip to content

About

Per shift OEE with availability, performance and quality loss breakdown, a downtime Pareto and the money lost to each stop reason. Pure Python library, unit tests and a live dashboard.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

OEE Dashboard

Overall Equipment Effectiveness for a machine, line or whole plant — per shift, with downturn pareto

OEE is the single number a manufacturer tracks to answer "how much of the time are we making good product at the standard rate?". It is the product of three losses:

Python No deps Stack Tests License Live demo


Dashboard preview

Why this exists

Machines rarely fail on the day you can afford them to. Most lost output is hidden in small, repeated stops — a jam here, a changeover there, a hopper that runs dry. OEE decomposes total loss into Availability (time lost), Performance (running below the ideal cycle rate) and Quality (scrap and rework), so the plant manager can see which loss class, which shift and which machine to attack first.

The method (ISO 22400 / OEE industry standard)

Availability = Operating time        / Planned production time
Performance  = Units x Ideal cycle time / Operating time      (capped at 100%)
Quality      = Good units            / Total units started
OEE          = Availability x Performance x Quality
  • Planned production time — announced shift time minus scheduled idle (lunches, breaks, planned cleaning).
  • Operating time — planned time minus unplanned stops (breakdowns, changeovers, no-material, operator waits…).
  • Ideal cycle time — the standard time per unit (min/unit) for a well-running machine.
  • Performance is capped at 100% so running faster than the ideal rate cannot inflate the score.

Reference bands used for the rating:

OEE Rating
< 65% Typical — improvement needed
65–75% Acceptable
75–85% Good
≥ 85% World Class

What's in the repo

  • oee.py — dependency-free OEE library + CLI. Computes Availability, Performance, Quality, OEE, the rating band, a downtime Pareto and the money lost to downtime at a given burden rate.
  • test_oee.py — 11 unit tests, including the classic worked example (8 h shift, 30 min break, 90 min downtime, 400 units, 8 defective).
  • index.html — standalone interactive dashboard: per-shift log, live OEE gauge, world-class reference bands and a downtime Pareto chart. No build step, no dependencies, works offline.

Quick start

# web dashboard
open index.html          # or: python3 -m http.server 8000

# CLI (OEE per demo shift + downtime pareto)
python3 oee.py

# library
python3 -c "
import oee
s = oee.shift(planned_min=450, downtime_min=90, units=400, good_units=392, ideal_cycle_min=0.5)
print(f'OEE = {s.oee:.1%} ({s.rating})')"

# tests
python3 -m unittest test_oee -v

Example output

Shift 1: A=89% P=89% Q=98% -> OEE=78.0% (Good)
Shift 2: A=92% P=94% Q=98% -> OEE=84.1% (Good)
Shift 3: A=81% P=88% Q=97% -> OEE=69.8% (Acceptable)
...
Downtime pareto
  32.7%    85.0 min  Breakdown — tablet press jam
  23.1%    60.0 min  Changeover between products
  17.3%    45.0 min  No raw material at hopper

Repository layout

oee-dashboard/
├── index.html   # interactive dashboard (open this)
├── oee.py       # OEE library + CLI
├── test_oee.py  # unit tests
├── docs/        # README preview screenshot
└── README.md

License

MIT — take it into your plant and make the numbers honest.

About

Per shift OEE with availability, performance and quality loss breakdown, a downtime Pareto and the money lost to each stop reason. Pure Python library, unit tests and a live dashboard.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages