MES Software: Vendors, Features & Costs Compared 2026
MES software compared: vendors, functions per VDI 5600, costs (cloud vs. on-premise) and implementation. Honest market overview 2026.
BOM explosion (German: Stücklistenauflösung) is the process by which a multi-level bill of materials — a hierarchical specification of what a product is made of — is resolved into a flat, order-specific list of the exact materials, quantities, batches and serial numbers consumed during production. The ERP explodes the BOM at planning level to generate purchase requirements and capacity demand. The MES explodes it at execution level to document what was actually built, from which specific batch, by which specific operator, on which specific machine, at which specific time. Both happen. Both are called "BOM explosion." They are architecturally different operations with different consumers, different failure modes and different business consequences.
The distinction between ERP-side and MES-side BOM explosion is the single most important thing to understand about this topic, and it is almost never explained precisely in vendor material. Getting it wrong during an MES rollout is one of the most expensive data-model mistakes a manufacturing organisation can make, because the correction typically requires re-loading production history against a revised model — months of work.
"BOM" is four or five different artefacts depending on who you ask. The ERP planner, the process engineer, the production operator, the quality auditor and the recall investigator all work with a BOM, and they are not working with the same BOM. Clarifying this explicitly is the first thing that helps.
| Representation | What it is | Primary consumer |
|---|---|---|
| Single-level BOM | The direct components of one assembly, one level deep. | Process engineering, work-plan design |
| Multi-level (indented) BOM | The full hierarchical tree — assembly, sub-assemblies, components, raw materials. | Product engineering, PLM |
| Summarized (flat) BOM | The exploded list — every part across all levels, summed by part number. | ERP procurement, MRP |
| Variant / 150% BOM | A superset BOM with configuration logic that selects the right components per variant. | Configure-to-order engineering, MES variant selection |
| As-built BOM | What was actually built — concrete batch and serial numbers captured during production. | Quality, recall investigation, regulatory audit |
The ERP lives in the first four. The MES produces the fifth. The as-built BOM is the only representation that describes reality rather than specification, and it is the one that matters when a customer complaint arrives six months after the batch shipped, when a supplier issues a component recall, or when a regulator asks for a device history record. A manufacturing organisation that does not produce as-built BOMs cannot answer these questions completely — it can only answer them probabilistically, from the planned BOM, with all the gaps that introduces.
Architecturally, BOMs come in two fundamentally different shapes. The reference BOM is a template: it describes what product P is composed of, as a specification. The instance BOM is a record: it describes what unit #123456 of product P actually contained, as a fact. These are different tables in a working manufacturing data model, with different update patterns, different retention requirements and different access paths.
The mistake I see most often in MES rollouts is treating these as the same entity — typically by storing only the reference BOM and retrieving it at query time when someone asks "what was in unit #123456?" This appears to work for the first year. It fails the moment a reference BOM is revised between the build date and the query date, because the system now returns the current specification as if it were the historical reality. The historical reality is lost. Regulated industries catch this in their first audit. Non-regulated industries discover it when the first expensive customer complaint arrives and they cannot prove what they shipped. The architectural fix is boring and critical: capture the instance BOM at build time as an immutable record, with full batch and serial linkage, and never reconstruct it from the reference BOM at read time. This single data-model choice separates MES systems that survive their first recall event from the ones that do not.
In high-mix environments — automotive, industrial machinery, configurable consumer goods — the BOM architecture gets substantially more complex. A single product family may have hundreds or thousands of valid variants, and maintaining a separate BOM for each variant is both unmaintainable and actively harmful for traceability, because variant-level BOMs drift independently over time. Two architectural patterns dominate:
The wrong answer in both cases is variant-level BOM maintenance — separate BOMs for every variant, maintained manually. Within a year these BOMs diverge from each other in small ways that nobody notices, and the "which variant got which component revision?" question becomes unanswerable without going back to individual engineering tickets.
A phantom assembly (also called a pseudo-BOM or blow-through item) is a BOM node that exists for engineering clarity but is never physically built as an intermediate product. A sub-assembly of three parts that is always built directly into its parent, never stocked, never tracked as its own unit — architecturally it should be a phantom so that MRP looks through it to the underlying components. Getting phantom handling wrong produces two characteristic failures: either the MRP generates work orders for assemblies that are never built (and the shopfloor quietly ignores them), or the as-built BOM records the phantom as a discrete step that never physically happened. Both break traceability. The rule of thumb I use when reviewing a new customer's BOM structure: if you cannot point to a physical inventory location where this sub-assembly lives between steps, it should be a phantom.
From building the SAP/Navision/Infor integration layer for 15,000+ machines: the ERP-to-MES handshake for BOM data is where most multi-plant MES rollouts quietly break, and the failure mode is almost always the same. The architecture that works reliably across all the ERP systems we integrate with — SAP R/3 via ABAP IDoc, Microsoft Dynamics/Navision via file or REST, Infor/InforCOM, proAlpha — has three invariants. First, the ERP owns the reference BOM; the MES never writes back to the reference BOM. The MES only writes back the as-built BOM as a new object, separate from the reference. Second, the BOM version on the order is fixed at order release, not at order execution. If the reference BOM is revised between release and start-of-production, the order runs against the version that was current at release — otherwise you get the "which BOM was active when this unit was built?" ambiguity that makes recalls unanswerable. Third, batch and serial data flow bottom-up: the MES captures them at consumption time from scanner, operator entry or automatic reader, builds the instance-level linkage in the MES database, and pushes back a summary to the ERP for inventory posting. Batch and serial detail stay in the MES, because the ERP's data model is not designed for per-unit genealogy. Carcoustics runs exactly this pattern across 500+ machines in Germany, Poland, Slovakia, Czech Republic, Mexico, US and China. Meleghy runs it across six plants in Germany, Czech Republic and Hungary. Klocke runs a simplified version against a Navision file interface for GMP-regulated pharma packaging where the as-built BOM is audited directly under GMP scope. The architectural pattern is the same in all three cases despite very different ERPs, very different industries and very different regulatory environments — because the underlying data-model problem is the same.
Even with a correct BOM explosion architecture, there is a drift pathology that shows up in year two or three of an MES deployment and is almost never discussed in rollout documentation. Five characteristic silent-drift patterns:
The defence against silent drift is not more BOM discipline at rollout. It is periodic reconciliation: quarterly diffing the MES-side reference BOMs against the ERP-side reference BOMs and investigating every difference. In a well-governed environment the diff should be empty. When it is not, you have just found a drift that would otherwise have surfaced during a recall.
The single most valuable thing the MES as-built BOM buys you is the ability to execute a precise recall. The progression from imprecise to precise recall governance looks like this:
The ROI calculation on the fourth architecture is almost never done correctly at MES procurement time, because nobody plans for a recall. It becomes visible the first time one actually happens, at which point the cost of over-recalling 50,000 units when only 3,000 were affected dwarfs the entire MES implementation cost several times over. This is the business case that justifies the data-model rigour around instance BOMs — not day-to-day production efficiency, which the MES also provides, but the insurance policy that shows up exactly once every few years and is worth orders of magnitude more than its cost when it does.
SYMESTIC implements BOM explosion as a three-layer architecture. The reference BOM is owned by the ERP and retrieved via bidirectional integration — SAP R/3 via ABAP IDoc, Microsoft Dynamics/Navision via file or REST, Infor/InforCOM, proAlpha — at order release time, with the BOM version frozen against the order. Variant resolution applies the order's configuration code against the reference BOM on the MES side to produce the order-specific 100% BOM. As-built consumption is captured at execution time via OPC UA signals, IoT-gateway reads, operator scans or automatic serialisation, and the resulting instance BOM is stored as an immutable per-unit record in the MES database with full batch-and-serial genealogy. The summary is pushed back to the ERP for inventory posting; the genealogy stays in the MES, where its data model is designed for it. The production control module orchestrates the order-BOM binding; the process data module captures consumption events; the production metrics module links consumption to OEE so that scrap, rework and microstops can be attributed to specific suppliers and specific batches rather than only to machines. Over 15,000 connected machines in 18 countries run on this foundation, including GMP-regulated pharma packaging at Klocke where the as-built BOM serves as the audit artefact under GMP scope.
What is the difference between BOM explosion in the ERP and in the MES?
ERP BOM explosion happens at planning level — it explodes the BOM to generate purchase requirements, capacity demand and MRP signals. MES BOM explosion happens at execution level — it records which specific batches and serial numbers were actually consumed in which specific unit at which specific time. ERP plans; MES documents reality. Both are called "BOM explosion" but they produce different artefacts for different consumers. The ERP output is a procurement and planning input. The MES output is an auditable as-built record.
What is a 150% BOM?
A 150% BOM is a super-set BOM that contains every component that could possibly be used across all variants of a product family, with configuration logic (option codes, feature rules) that selects the relevant subset per order. When the MES receives a specific order, it resolves the 150% BOM against the order's variant code to produce the correct 100% BOM for that specific unit. This is the dominant architecture for high-variant environments — particularly automotive — because it reduces BOM maintenance to a single object per product family rather than one BOM per variant.
What is a phantom assembly?
A phantom assembly (also called a pseudo-BOM or blow-through item) is a BOM node that exists for engineering clarity but is never physically built as a discrete intermediate product. MRP and the MES should look through phantoms directly to their underlying components, rather than generating work orders for them. The rule of thumb: if you cannot point to a physical inventory location where the sub-assembly lives between steps, it should be modelled as a phantom.
How does BOM explosion support a recall?
Precise recall requires knowing which specific units contain components from which specific supplier batches — the instance BOM with full batch-and-serial genealogy. With this in place, a recall scopes to exactly the affected units; without it, the recall has to be scoped to a time window of potentially affected products, typically 3–10× larger than the actually affected population. The ROI of a well-architected BOM genealogy is invisible until a recall happens, at which point it dwarfs the entire MES implementation cost.
What happens when a BOM is revised while an order is in production?
In a correct architecture, the BOM version is fixed against the order at release time and does not change mid-production. Revisions published after release apply only to subsequent orders. Without this freeze-on-release discipline, the system cannot answer "which BOM version was active when this unit was built?" — and recall investigations become guesswork. This is one of the most common configuration mistakes in multi-plant MES rollouts and one of the hardest to correct retroactively.
How should rework be reflected in the as-built BOM?
Rework should produce a two-state as-built record: the original component with its batch and timestamp, and the replacement component with its batch and timestamp. Recording only the final state — which many MES implementations do — loses rework history and breaks warranty analysis when the question "was this unit ever reworked?" arises later. The correct pattern is append-only instance BOMs with rework events as first-class entries.
What is the biggest BOM-explosion mistake in MES rollouts?
Treating the reference BOM and the instance BOM as the same data model, and reconstructing historical as-built composition by retrieving the current reference BOM at query time. This appears to work until the reference BOM is revised, at which point historical reality is silently overwritten by current specification. The correct pattern is to capture the instance BOM as an immutable per-unit record at build time and never reconstruct it at read time. See also work plan and change control for the related version-governance topics.
Related: MES: Definition, functions & benefits · OEE: Definition, calculation & practice · MES software compared · Cloud MES vs. on-premise · AI in manufacturing and MES · Production metrics module · Process data module · Production control module · Alarms module · Automotive · Metal processing · Food & beverage · Plastics processing · For production managers · For operational excellence · For COOs & plant managers.
MES software compared: vendors, functions per VDI 5600, costs (cloud vs. on-premise) and implementation. Honest market overview 2026.
OEE software captures availability, performance & quality automatically in real time. Vendor comparison, costs & case studies. 30-day free trial.
MES (Manufacturing Execution System): Functions per VDI 5600, architectures, costs and real-world results. With implementation data from 15,000+ machines.