Functional Weave
Code in Rust

manufacturing.oee@1.0.0

README.md

2,169 bytes · view raw

# manufacturing.oee

Overall equipment effectiveness, as defined by Nakajima for TPM and used by
most OEE software:

    run time      = planned production time - downtime
    availability  = run time / planned production time
    performance   = (ideal cycle time x total count) / run time
    quality       = good count / total count
    OEE           = availability x performance x quality
                  = (good count x ideal cycle time) / planned production time

Every figure is in basis points (10000 = 100%). The worked example from
oee.com: 420 minutes planned, 47 minutes down, a 1.0 second ideal cycle,
19,271 made and 18,848 good gives availability 8881, performance 8611, quality
9780 and OEE 7479 (74.79%).

**OEE is rounded once, from the exact product.** Multiplying three factors that
were each already rounded to basis points is off by one surprisingly often: 8
hours planned, 1 hour down, a 1.5 second cycle, 15,000 made and 14,700 good is
exactly 76.5625%, so 7656; the rounded factors (8750 x 8929 x 9800) give 7657.
Each factor and OEE itself are rounded from their exact ratio by `mode`.

**Units.** Planned time and downtime are whole seconds; the ideal cycle time is
whole milliseconds, because cycle times under a second (or 1.5 s) are common.

**Performance may exceed 100%.** That means the ideal cycle time is set slower
than the machine really runs. It is reported as it is, not capped, because
capping hides the bad standard and makes OEE disagree with its factors.

**Edge cases.** With no run time (downtime equals planned time) performance is
0, and with nothing made quality is 0; OEE is 0 in both cases. Counting units
with no run time is an error. Good count may not exceed total count, downtime
may not exceed planned time, and planned time and ideal cycle time must be
positive. Planned time is limited to 10^11 seconds, and total count x ideal
cycle x 10000 to 2^53 - 1, so every ratio is computed exactly.

Sources: Seiichi Nakajima, *Introduction to TPM: Total Productive
Maintenance*, Productivity Press, 1988; "OEE Calculation", oee.com (Vorne
Industries), https://www.oee.com/calculating-oee/ (the worked example above).