For plant managers & CI leads

Your 85% OEE isprobably a story.

Changeovers get relabeled “planned” and drop out of planned time. The dashboard stays green while a fifth of your capacity hides in plain sight — until you buy a machine to replace capacity you already own. This grader computes every line’s OEE twice, reported and true, and refuses to call a number honest when time has been taken out of its planned time.

Get the Grader — $99one-time · instant download · yours to keep
Five deliverables · runnable
OEE Honesty Grader engine
Python
Grader workbook (.xlsx)
.xlsx
OEE-audit facilitator guide
.docx
Availability-integrity runbook
.docx
Seven-line worked sample
.csv
Works alongside
Manufacturing Ops Pack · CSV Quality Gate · Supplier-Concentration Gate
01.The Problem

The most-quoted number on the plant floor is the one nobody checks.

20–30%

of capacity commonly hides in the “hidden factory” that inflated OEE conceals — capacity a plant tries to buy new when it already owns it.

3 ways

OEE gets softened: changeovers taken out of planned time, an ideal cycle padded to the rate the line really runs, and micro-stops moved out of availability (that one only shifts loss between factors). The grader catches the first and reports the third.

6 figures

is the size of a single avoidable line or capex decision made off a number that omitted the very time the new machine was meant to recover.

Every AI vendor on the floor is selling prediction — sensors, vision, digital twins, a six-figure pilot. None of them check whether the number you already report is telling the truth. That is arithmetic, not machine learning, and it is where the money actually leaks.

02.See It Work

Grade a line yourself. Watch a good number get caught.

Live grader · evaluated 2026-06-30

INFLATED
74.3%
true OEE
Reported OEE
78.2%
Inflation
+3.9 pts
C/O out of planned time
25.0 min
Weakest · Performance
87.0%
Availability
87.1%
Performance
87.0%
Quality
98.0%

25.0 minutes of changeover were taken out of planned time, so this line reads INFLATED even at a true 74.3%. Tap "Put the changeover back" to see it release to its real band. The excluded micro-stops stay inside run time: they move loss from Availability to Performance, and OEE does not move.

Scores an equipment number, never a person. Deterministic and offline — your inputs, no benchmark multiplier.

Diagram of the OEE Honesty Grader: Availability, Performance, and Quality scored to a true OEE and a hidden-downtime gate forcing INFLATED on an 83.8% reported number.
Shareable diagram

How the gate works, in one image

How the OEE Honesty Grader rebuilds true OEE from A, P, and Q and forces INFLATED when changeover taken out of planned time pads the headline — the same math the demo runs, as a diagram you can share or embed anywhere.

View & embed the full diagram

The worked line runs at a true 74.3% — a genuinely strong OEE — yet reads INFLATED because 25 minutes of changeover were booked as planned and taken out of its planned time. Put them back and the same line releases to TRUE OEE AS DESCRIBED. Its 35 excluded micro-stop minutes are reported, not gated: they move loss from Availability to Performance, and OEE does not move. That is the whole discipline: the gate makes the reporting honest so the number can be trusted.

03.The Engine

One command reads your shift log and grades every line.

$ python3 oee_grader.py sample_lines.csv --as-of 2026-06-30
==================================================================
OEE HONESTY GRADER  -  RedHub AI  (OEE-099)
Evaluation date: 2026-06-30
==================================================================

Line: Line 1 - Filler
  Reported OEE :  78.2%
  True OEE     :  74.3%   (inflation +3.9 pts)  <- changeover hidden in planned time
  A / P / Q    : 87.1% / 87.0% / 98.0%
  Weakest      : Performance at 87.0%
  C/O moved    : 25.0 min (booked as planned downtime; back in planned time)
  Micro-stops  : 35.0 min left out of downtime - moves loss to Performance, OEE unchanged
  VERDICT      : INFLATED

Line: Line 1 - Filler (cleaned up)
  Reported OEE :  74.3%
  True OEE     :  74.3%   (inflation +0.0 pts)
  A / P / Q    : 80.2% / 94.5% / 98.0%
  Weakest      : Availability at 80.2%
  C/O moved    : 0.0 min
  VERDICT      : TRUE OEE AS DESCRIBED

Line: Line 2 - Capper
  Reported OEE :  81.3%
  True OEE     :  81.3%   (inflation +0.0 pts)
  A / P / Q    : 87.5% / 94.3% / 98.5%
  Weakest      : Availability at 87.5%
  C/O moved    : 0.0 min
  VERDICT      : TRUE OEE AS DESCRIBED

Line: Line 3 - Labeler
  Reported OEE :  61.1%
  True OEE     :  61.1%   (inflation +0.0 pts)
  A / P / Q    : 68.8% / 92.9% / 95.7%
  Weakest      : Availability at 68.8%
  C/O moved    : 0.0 min
  VERDICT      : TRUE OEE AS DESCRIBED

Line: Line 4 - Palletizer
  Reported OEE :  66.3%
  True OEE     :  60.6%   (inflation +5.7 pts)  <- changeover hidden in planned time
  A / P / Q    : 68.6% / 91.7% / 96.4%
  Weakest      : Availability at 68.6%
  C/O moved    : 45.0 min (booked as planned downtime; back in planned time)
  VERDICT      : INFLATED

Line: Line 5 - Case Packer
  Reported OEE :  74.8%
  True OEE     :  74.8%   (inflation +0.0 pts)
  A / P / Q    : 81.3% / 93.8% / 98.0%
  Weakest      : Availability at 81.3%
  C/O moved    : 0.0 min
  VERDICT      : TRUE OEE AS DESCRIBED

Line: Line 6 - Shrink Wrapper
  Reported OEE :  48.9%
  True OEE     :  48.9%   (inflation +0.0 pts)
  A / P / Q    : 60.4% / 86.9% / 93.1%
  Weakest      : Availability at 60.4%
  C/O moved    : 0.0 min
  VERDICT      : SOFT NUMBER

------------------------------------------------------------------
PLANT REPORTING VERDICT : INFLATED REPORTING
Fix first               : Line 4 - Palletizer (inflation +5.7 pts, true OEE 60.6%)
------------------------------------------------------------------
Scores an equipment number, never a person. Not a safety-compliance
certification and not accounting advice.

Stdlib-only Python, no install beyond Python itself. The workbook reproduces these exact verdicts, and the demo above computes the identical numbers — verified byte-for-byte on the shipped sample.

04.The Standard

Three rules keep the number honest.

Reported vs. true, side by side

Every line is computed both ways from your own inputs. The gap between them is the inflation — named, in points, not buried.

Planned time is dispositive

Any changeover taken out of planned time forces INFLATED, whatever the true number. An OEE that shrinks its own planned time is not an OEE. Put it back and it releases. A row whose numbers cannot all be true is refused, never capped at 100%.

World-standard math, no multiplier

Availability × Performance × Quality, exactly as the standard defines it. No benchmark stat, no invented uplift — just your numbers.

05.What It Is — And Isn't

A reporting-integrity check, not a sensor or a scorecard for people.

What it is
  • A deterministic, offline grader you run on shift facts you already have.
  • A way to expose the hidden factory before it drives a capital decision.
  • A workbook and engine that agree byte-for-byte, so any team can reproduce the verdict.
What it isn’t
  • Not a sensor, PLC integration, or predictive-maintenance model — it connects to nothing.
  • It scores an equipment number, never a person, operator, or crew.
  • Not a safety-compliance certification and not accounting advice.
06.Who It's For

Anyone who signs off on an OEE number or spends against one.

Built for
  • Plant and operations managers who report OEE up the chain
  • Continuous-improvement and lean leads running the numbers
  • Finance and ops reviewing a capacity or capex request
  • Consultants auditing a plant's reporting before a project
Not built for
  • Real-time line monitoring — this grades a window, not a live feed
  • Ranking or evaluating operators or shifts
  • Plants that want a black-box AI score instead of the arithmetic
  • Replacing your MES — it reads facts you export from it
08.Common Questions

The honest answers.

Height and honesty are different problems. A low OEE is a real number that happens to be small — that is a SOFT NUMBER, and it is fine to report as long as nothing is hidden. An inflated OEE looks healthy because time was taken out of the denominator: changeover minutes booked as "planned" beyond your own changeover budget, which drops them from planned production time. The grader computes your OEE both ways — as reported and as true, with those minutes put back — and the gap between them is the inflation. Any changeover moved out of planned time makes the line read INFLATED, whatever the true number is. Excluded micro-stops are reported too, but they do not move OEE (see below).

Stop reporting a number
you can’t defend.

One purchase, lifetime access, 12 months of updates. $99, once.

Sold by RedHub AI LLC · Secured by Stripe · redhub.ai