Key takeaways
Short answer: ERP owns planning, scheduling, and financial transactions. MES owns real-time execution: what ran, when, how fast, and what failed. ERP asks "what should happen"; MES records "what actually happened." Forcing ERP to track the floor directly produces stale, manually-entered data because ERP was never designed for second-by-second machine events. See also mes vs erp.
ERP transactions are batch-oriented and human-entered. The floor generates thousands of events per shift. By the time an operator keys a number into ERP, it is already stale and often wrong. MES captures events automatically as they happen.
MES receives the schedule and work orders from ERP, executes them, and feeds back actuals (quantities, times, scrap). Get this handshake wrong and you get double entry, conflicting numbers, and the classic "why does ERP say something different from the floor?" problem.
1. Skipping MES and bolting data entry onto ERP. Stale, manual, wrong.
2. No clear handoff. ERP and MES fight over the same data.
3. Treating OEE as an ERP feature. ERP cannot see micro-stops or speed loss.
OEE is an MES-layer metric — it needs real-time Availability, Performance, and Quality data ERP never sees. A modern OEE platform can act as the MES execution layer, capturing floor reality and feeding actuals back to ERP.
See how Fabrico captures this automatically on your lines — explore OEE for manufacturing or book a demo.
Not accurately. OEE needs real-time machine data ERP does not capture.
Most plants do — ERP for planning, MES for execution.
Maintenance execution; it complements MES. See the MES vs CMMS distinction.
Increasingly an OEE/MES platform covers execution without a heavyweight legacy MES.