
Key takeaways
Short answer: The standard discrete OEE formula treats production as a sequence of parts per minute. Batch manufacturing produces fixed-size batches against a recipe — there is no "part" and no "cycle time per part" in the discrete sense. To make OEE meaningful in a batch plant, redefine the unit (batch), the ideal cycle time (recipe target), and the Quality measure (yield plus release pass). Without those substitutions, the OEE number is misleading or meaningless. See also OEE vs Utilization.
The discrete OEE formula: Availability x Performance x Quality, where Performance = (ideal cycle time x total parts) / run time. That formula assumes a single ideal cycle time across the run and discrete countable parts.
A batch plant making yogurt, pharmaceutical APIs, or specialty chemicals does not work that way. A 5000-liter mixing batch has no "cycle" — it has a recipe with steps: charge, mix, heat, hold, cool, discharge, CIP. The ideal time depends on the recipe, and the unit produced is the batch, not a part.
Apply discrete OEE here without adjustment and three things go wrong:
The unit is the batch. If a tank produces 8 batches in a shift, that is 8 units. Some plants also track "good kilograms" as a secondary unit, but the batch is the primary unit for OEE arithmetic.
Every recipe has a target total time from charge to discharge ready. That is the ideal cycle time for batches of that recipe. If you run multiple recipes, you weight by mix.
Performance = (sum of recipe target times for batches produced) / actual run time.
If the planned shift produces 8 batches of recipe A (target 45 min each = 360 min) and you ran 480 min to complete them, Performance is 360/480 = 75%.
This is where most batch plants under-report losses. Planned production time minus actual run time has to capture:
If a 12-hour shift planned to produce 6 batches but spent 2 hours in CIP and 90 minutes in unplanned downtime, Availability = (720 - 120 - 90) / 720 = 70.8%.
Discrete Quality counts good parts at the end of the line. Batch Quality has two layers:
Some plants compute Quality on a 24-hour delay because release tests run overnight. That is fine — just be explicit that today's Quality number is provisional until release lands.
A well-run discrete plant runs around 75-80% OEE. A well-run batch plant typically runs 50-65% OEE because CIP and changeover are real, mandatory losses. Comparing a batch plant's OEE to a discrete benchmark is a category error.
The right benchmark is your own plant over time, plus peer batch plants in the same regulatory regime.
An OEE platform built for batch lets you:
Fabrico's OEE module supports batch-mode time-state mapping and recipe-anchored Performance — designed for process plants where the discrete formula misleads.
See how Fabrico captures this automatically — explore OEE for manufacturing or book a demo.
No. Use the discrete formula on discrete lines and the batch-adapted formula on batch lines. Reporting both under the same "OEE" label without distinguishing them creates apples-to-oranges comparisons.
CIP is planned. But it still counts as an Availability loss against scheduled production time because the plant cannot produce during CIP. The point of measuring it is to find ways to shorten or parallelize it, not to hide it.
Weight ideal cycle time by the actual recipe mix. Sum the recipe target times for the batches you produced and divide by actual run time. Performance comes out as a weighted average.
Restate Quality for that batch. Most platforms have a back-fill option. Or track today's Quality as provisional and lock it 24-48 hours after production once release results land.
Highly dependent on the industry. Mature food and beverage plants run 55-70%. Pharma is typically 40-55% because GMP cycles add overhead. Chemicals varies widely. The right benchmark is your plant's trend over time, not a universal number.