How to Calculate OEE from MES Data and ERP Standards
how to calculate OEE from MES data and ERP standards
Also searched as
- OEE formula availability performance quality
- calculate OEE using ERP routing standards
- OEE ideal cycle time from ERP routing
- why is my OEE over 100 percent
Short answer
OEE equals Availability times Performance times Quality. Availability comes from MES run and stop events against planned production time, Performance compares actual output to the ideal cycle time (usually the routing standard from the ERP), and Quality is good units divided by total units. The numbers are only trustworthy if planned time, ideal cycle time and the good/scrap split are defined once and used consistently.
Applies to: Discrete and process plants using any MES or machine data collection with an ERP that holds routings and standards (SyteLine, LN, M3, SAP, NetSuite, Dynamics, Epicor)
How to calculate OEE step by step
- 1Define planned production time per machine and shift: scheduled shift minus planned non-production time (breaks, planned maintenance, no-demand periods) according to a written policy.
- 2Collect run time as planned production time minus unplanned stop time, from MES machine state events. Short stops under a set threshold may count as speed loss rather than downtime; document the threshold.
- 3Availability = Run time divided by Planned production time.
- 4Get the ideal cycle time per item and operation from the ERP routing (run time per piece, or pieces per hour), and confirm it is the best demonstrated rate, not a padded costing standard.
- 5Performance = (Ideal cycle time times Total count) divided by Run time.
- 6Quality = Good count divided by Total count, where total includes scrap and rework as defined in your scrap policy.
- 7OEE = Availability times Performance times Quality. Calculate per machine per order or per shift, then roll up by weighted time, not by averaging percentages.
- 8Validate with a sanity pass: any figure over 100 percent in a component points to a wrong ideal cycle time or counting error, not great performance.
The formula and what each term really needs
Availability, Performance and Quality each answer a different loss category. Availability captures stops: breakdowns, changeovers, waiting for material. Performance captures slow cycles and micro-stops. Quality captures scrap and rework. The product gives the fraction of planned time spent making good parts at ideal speed. A worked example: 480 minute shift, 60 minutes planned break leaves 420 planned; 63 minutes of stops leaves 357 run, so Availability is about 85 percent. Ideal cycle 0.5 minutes, 600 parts made, so Performance is 300 divided by 357, about 84 percent. 570 good of 600 gives Quality 95 percent. OEE is about 68 percent.
The arithmetic is easy. The disputes are about inputs: what counts as planned time, what is the ideal cycle, and what counts as a good part. Settle those in writing before comparing plants or lines.
Availability = RunTime / PlannedProductionTime Performance = (IdealCycleTime * TotalCount) / RunTime Quality = GoodCount / TotalCount OEE = Availability * Performance * Quality
Where ERP data fits
The MES supplies time and counts. The ERP supplies the context that makes them comparable: routing run rates, work center capacity calendars, planned downtime from maintenance schedules, and the order, item and revision being made. Joining the two is what lets you compute Performance per item rather than per machine average, which matters on mixed-product lines where cycle time varies by part number.
Be careful with routing standards. A costing standard is often padded with allowances for setup, fatigue and typical losses. Using it as the ideal cycle time inflates Performance above 100 percent on good days. Prefer a demonstrated best rate or the machine's rated speed for OEE, and keep the costing standard for variance analysis.
Data traps that distort OEE
Counting errors: if a machine counts cycles but each cycle makes two parts, Performance doubles unless the parts-per-cycle factor is applied. Reworked parts counted as good on the first pass and again on the second inflate Quality. Changeover time booked as run time hides Availability loss, and the opposite error, booking all setup as downtime when the plan allows for it, understates it.
Roll-ups: never average OEE percentages across machines. Sum the underlying time and counts, then recompute, otherwise a short, poor shift on one machine skews the plant figure as much as a full, strong shift on another.
Use OEE for decisions, not leaderboards
OEE is a diagnostic, not a target to hit on every machine. A bottleneck machine at 60 percent costs far more than a non-bottleneck at 60 percent, so weight attention by constraint. Pair OEE with the loss breakdown (Pareto of downtime reasons, scrap reasons, speed loss) because the single number does not tell you what to fix.
Comparing across plants only makes sense if the same definitions are used. A plant that excludes changeovers from planned time will always look better than one that includes them.
Common pitfalls
- !Using the padded ERP costing standard as the ideal cycle time, giving Performance above 100 percent.
- !Averaging OEE percentages across machines or shifts instead of summing time and counts.
- !Ignoring parts-per-cycle, so multi-cavity tools overstate Performance.
- !Counting reworked units as good at both passes, inflating Quality.
- !No written definition of planned downtime, so each plant calculates a different OEE.
How an ERP-grounded AI assistant handles this
An assistant grounded in your ERP and MES data, such as ERPray, can compute OEE per line and item while showing the exact query and the definitions it used, and flag rows where Performance exceeds 100 percent so a human can check the ideal cycle time. It will not decide your planned-time policy for you, and it cannot fix wrong machine counts; it can only point out where the numbers are inconsistent.
Frequently asked questions
What is a good OEE number?
Rules of thumb quote 85 percent as world class for discrete manufacturing, but it depends heavily on definitions and product mix. A job shop with frequent changeovers may sensibly sit well below that. Track your own trend and loss categories rather than chasing a published benchmark.
Why is my OEE over 100 percent?
Almost always the ideal cycle time is too slow (a padded standard), the part count is multiplied incorrectly, or run time is understated because stops were over-recorded. Check the routing rate against the machine's rated speed and verify the parts-per-cycle setting before trusting any component above 100.
Can I calculate OEE in the ERP alone?
Only roughly. ERP labor and quantity reporting is too coarse to separate availability from performance losses. You need machine state or timestamped event data, usually from an MES, PLC or historian, and then the ERP supplies standards and order context.
Does planned maintenance count against OEE?
That is a policy choice. The common definition excludes planned non-production time from planned production time, so scheduled maintenance does not hurt OEE, whereas TEEP measures against all calendar time. Pick one, document it, and apply it consistently.
Related
How to Design Scrap and Downtime Reason Codes for MES and ERP
Keep one governed list of reason codes with a small hierarchy, owned in a single system and synchronised to the other. Separate scrap reasons from downtime reasons, mark each downtime code planned or unplanned and each scrap code as process, material, design or operator related, and map codes to ERP accounts or cost categories where accounting needs them. Fewer, clearer codes beat long lists nobody uses correctly.
How-toHow to Send Production and Labor Reporting from MES to ERP
Treat the ERP work order as the system of record for cost and quantity, and the MES as the system of record for what physically happened. Send one confirmation message per operation (or per shift or lot) containing work order, operation sequence, good quantity, scrap quantity with reason, and labor start/stop per employee and work center, post it through the ERP's supported transaction API, and make the message idempotent so a retry never double-posts.
AdvancedHow to Connect OPC UA Machine Data to Your ERP
Do not connect OPC UA servers straight to the ERP. Read machine tags through an edge gateway or MES, convert signals into business events (cycle complete, stop, state change, count), attach the work order context, and post summarised confirmations to the ERP through its supported API. The ERP wants quantities, times and reasons per order, not millions of raw tag values.
AdvancedISA-95 and B2MML: How to Integrate ERP with MES
ISA-95 defines the boundary between business systems (Level 4, the ERP) and manufacturing operations (Level 3, the MES) and the information that crosses it. B2MML is the XML implementation of those models. In practice you exchange a ProductionSchedule from ERP to MES, and ProductionPerformance, plus material and equipment information, back, mapping each element to your ERP's work order and confirmation APIs.
How-toHow to Sync an NCR From Your QMS to ERP Quarantine and MRB Disposition
The reliable pattern is two events: when the NCR opens, the ERP moves or flags the affected lot or serial into a non-nettable quarantine status; when the Material Review Board closes it, the disposition (use as is, rework, repair, scrap, return to vendor) triggers exactly one matching ERP transaction. The NCR number is the key that ties both sides together.
How-toHow to Link a CAPA to ERP Lots and Serial Numbers for Containment and Effectiveness
A CAPA is only as good as its containment scope, and the scope comes from ERP genealogy: forward trace from the suspect raw material lot or process to every job, serial and shipment that consumed it, and backward trace from the failed serial to its components. Store the CAPA number against those ERP records, then use ERP rejection and return data to verify effectiveness.
AI for ERPAI shop floor assistant for operators working inside your ERP
An on-prem AI copilot answers operator questions against your ERP work instructions, travelers, and routings in plain language, at the machine, without a screen full of menus.
AI for ERPAI Demand Forecasting for Manufacturers: Better Numbers and an Explanation Planners Can Trust
AI demand forecasting explains ERP forecast changes in plain language, flags exceptions for planners, and handles short-history SKUs without Excel overrides.
Stuck on MES and ERP data?
Talk to engineers who work inside MES and ERP data every week, and who build private AI that answers these questions from your own ERP data.