Configure-to-Order (CTO/ETO) BOM & routing rules: validate boolean constraints, parametric quantities, and cycle times
For production managers, planners and plant leaders · Plan implementation
TL;DR — what you’ll learn
- Replace manual copy-and-edit an old BOM engineering clerical work with a 150% Modular Super-BOM and Master Routing driven by a deterministic Boolean Parametric Constraint Engine ([ASCM Modular BOM](https://www.ascm.org/) / [ISO 10303-214](https://www.iso.org/standard/66654.html)).
- Enforce Three Constraint Classes at Sales Order Entry—Exclusion (NAND), Mandatory Implication (IMPLIES), and Physical Boundary Inequalities ($f(x) \le \text{Limit}$)—so physically incompatible mechanical/electrical combinations ($85\%+$ of the raw Cartesian option space) are blocked before a sales order is booked.
- Calculate continuous dimensional material quantities (e.g., skid structural steel $\text{kg}$, cable harness length $\text{m}$, powder-coat surface area $\text{m}^2$) and Operation Cycle Times ($T_{\text{setup}} + k \cdot L_{\text{weld}}$) via parametric formulas directly inside the instantiated Manufacturing BOM (mBOM) and Work Order Routing.
- Draw a hard CTO-to-ETO Gate (CONFIG_STATUS = ETO_ENGINEERING_HOLD): whenever a customer requests a parameter outside the pre-validated CTO envelope, block automatic shop-floor Work Order release until Design Engineering signs off custom drawings and stress calculations.

Illustrative manufacturing inspection room and machine shop floor; not a client facility.
In industrial equipment manufacturing—centrifugal process pumps, LV/MV electrical switchgear panels, industrial HVAC air-handling units, packaging machinery, and specialty commercial vehicles, customers order tailored combinations of flow rates, voltages, hazardous-area ratings, alloys, and frame dimensions. When a manufacturer lacks a rule-governed Product Configurator linked to a 150% Super-BOM, two destructive failure modes occur. First, sales reps select options from a price-list spreadsheet that are physically or legally incompatible (for instance, pairing a $75\text{ kW}$ motor with a light-duty $45\text{ mm}$ pump shaft that shears under starting torque, or selecting standard Nitrile elastomer seals for a $165^\circ\text{C}$ thermal fluid application). Second, every confirmed sales order lands in an engineering backlog where a drafter manually clones a "similar" past BOM (BOM-2024-0819) and edits 40 lines by hand, inevitably forgetting to swap the carbon-steel coupling guard for a non-sparking brass guard on an ATEX Zone 1 order, or leaving the old 2.0-meter skid welding cycle time on a 3.2-meter skid work order.
The direct solution is to govern sales-to-manufacturing configuration through a formal Constraint Satisfaction and Parametric Super-BOM Engine inside the ERP (ERPNext Item Variants & BOM Templates). Distinct from M061 (which covers commercial quotation cost rollups and margin approval workflows), this guide (M124) specifies boolean compatibility rules, parametric BOM quantity math, formula-driven routing operation times, configuration hash deduplication, and the CTO-vs-ETO engineering release boundary.
Scope and engineering-authority boundary
This article defines the ERP, Product Configurator, and Manufacturing BOM/Routing data architecture for Configure-to-Order (CTO) and Engineer-to-Order (ETO) production release:
- What this workflow governs: Evaluating boolean/arithmetic option constraints, filtering a 150% Super-BOM into a buildable 100% single-level/multi-level
mBOM, computing parametric component quantities and routing run times, reusing existing Variant Item Codes via canonical configuration hashes, and routing out-of-envelope ETO exceptions to human engineers. - What this workflow does not replace: A software configurator never replaces professional mechanical, electrical, or pressure-vessel engineering design authority. Pre-configured CTO rules may only auto-release work orders within the pre-certified engineering design envelope (e.g., pre-calculated torsional limits, ATEX / IECEx component certificates, or ASME BPVC pressure ratings). Any customer requirement that falls outside tested boundary limits (
IS_CUSTOM_ETO == TRUE) must hard-lock Work Order release until a qualified engineer completes formal design calculations and approves the ETO BOM.
Bounded configure to order manufacturing erp verification and exception-routing workflow
Follow the workflow below, or open its complete text version.
Read the complete workflow as text
- Capture configure to order manufactu baseline record → Verify revision, unit Basis and cutoff alignment
- Verify revision, unit Basis and cutoff alignment → Run deterministic reconciliation and tolerance check
- Run deterministic reconciliation and tolerance check → Quarantine mismatched or unapproved lines
- Quarantine mismatched or unapproved lines → Route exception to named domain and finance owner
- Route exception to named domain and finance owner → Release verified record with immutable audit trail
Designing the three-layer CTO/ETO Super-BOM and routing engine
1. Boolean compatibility and physical boundary rules (Pruning the Cartesian space). An unconfigured product line with just $6\text{ feature families}$ ($4\text{ pump sizes} \times 6\text{ motor powers} \times 3\text{ mechanical seal plans} \times 4\text{ elastomers} \times 3\text{ hazardous area classes} \times 4\text{ wetted alloys}$) generates $4 \times 6 \times 3 \times 4 \times 3 \times 4 = \mathbf{3,456\text{ theoretical combinations}}$. Rather than maintaining $3,456$ static BOMs, define explicit Boolean and Arithmetic Constraint Rules:
- Mutual Exclusion (
NAND/ Disallowed Pair): $$\text{Rule C-01:}\quad \left(T_{\text{fluid}} over 120^\circ\text{C}\right) \implies \neg\left(\text{Elastomer} \in {\text{NBR_NITRILE}, \text{EPDM}}\right)$$ - Mandatory Implication (
IMPLIES/ Cascading Selection): $$\text{Rule C-02:}\quad \left(\text{Area_Class} == \text{ATEX_ZONE_1}\right) \implies \left(\text{Motor_Enclosure} == \text{EX_D_IIC_T4}\right) \land \left(\text{Coupling_Guard} == \text{NON_SPARKING_BRASS}\right)$$ - Physical / Mechanical Inequality Gate: $$\text{Rule C-03:}\quad \tau_{\text{max}} = \frac{9550 \times P_{\text{motor}}(\text{kW})}{N_{\text{rpm}}} \times K_{\text{service}} \le \tau_{\text{allowable}}(\text{Shaft_Dia},; \text{Material})$$
2. The 150% Super-BOM with parametric quantity expressions. A 150% Super-BOM contains every possible sub-assembly and raw material across the product family, where each BOM line $i$ carries two attributes:
- Selection Condition ($B_i(\mathbf{x}) \in {\text{True}, \text{False}}$): A boolean predicate over the configuration vector $\mathbf{x}$ determining whether Line $i$ is included in the instantiated $100%$
mBOM. - Parametric Quantity Formula ($Q_i(\mathbf{x})$): For discrete components (motors, seals, gauges), $Q_i = 1\text{ or }2\text{ pcs}$. For continuous structural or fluid materials (skid baseplate channel steel, tie-rod length, hydraulic oil fill, blast primer), $Q_i(\mathbf{x})$ is a deterministic algebraic function of the dimensional parameters: $$M_{\text{steel}}(\text{kg}) = \left(2 \times L_{\text{skid}}(\text{m}) \times \rho_{\text{channel}}(\text{kg/m}) + M_{\text{cross_members}}(\text{kg})\right) \times (1 + \gamma_{\text{kerf}})$$
3. Dynamic Master Routing with parametric setup and run-time formulas. Static ERP routings fail in CTO manufacturing because a 3.2-meter heavy-duty ATEX pump skid takes far longer to weld, blast, paint, and hydro-test than a 1.6-meter standard water skid. Attach inclusion predicates and Parametric Standard Time Formulas to every operation on the Master Routing: $$T_{\text{run, Op20}}(\text{min}) = T_{\text{base_fixture}} + \left(r_{\text{weld}}(\text{min/m}) \times L_{\text{weld_seam}}(\text{m})\right) + \mathbb{I}(\text{ATEX_ZONE_1}) \times T_{\text{earth_boss}}$$
under div over
under table over
under thead over
under tr over
under th over Configuration Layer under /th over
under th over Rule / Formula Type under /th over
under th over Concrete Industrial Example (PUMP-SKID-CTO) under /th over
under th over Error / Action if Violated under /th over
under /tr over
under /thead over
under tbody over
under tr over
under td over under strong over 1. Thermal-Chemical Compatibility under /strong over under /td over
under td over Boolean Exclusion ( under code over NAND under /code over ) under /td over
under td over under code over IF T_fluid > 120°C THEN Elastomer NOT IN ('NBR', 'NEOPRENE') under /code over under /td over
under td over Hard-block order save ( under code over ERR_SEAL_THERMAL_LIMIT under /code over ); prompt upgrade to under code over FKM_VITON under /code over ($\le 200^\circ\text{C}$) or under code over FFKM_KALREZ under /code over ($\le 310^\circ\text{C}$) under /td over
under /tr over
under tr over
under td over under strong over 2. Hazardous Area Compliance under /strong over under /td over
under td over Boolean Implication ( under code over IMPLIES under /code over ) under /td over
under td over under code over IF Zone:= 'ATEX_ZONE_1' THEN Guard = 'BRASS_NON_SPARK' AND Earth_Lugs = 2 under /code over under /td over
under td over Auto-lock dependent safety options; prohibit manual deselection by sales user under /td over
under /tr over
under tr over
under td over under strong over 3. Shaft Torsional Margin under /strong over under /td over
under td over Mechanical Inequality under /td over
under td over under code over IF P_motor ≥ 55 kW (@ 1480 RPM) THEN Shaft_Module == '65MM_17_4PH' under /code over under /td over
under td over Block standard $45\text{ mm}$ shaft selection (ERR_SHAFT_TORQUE_OVERLOAD) under /td over
under /tr over
under tr over
under td over under strong over 4. ETO Boundary Escape under /strong over under /td over
under td over Envelope Limit Gate under /td over
under td over under code over IF L_skid > 4.50 m OR P_design > 40 bar THEN Mode = 'ETO_CUSTOM' under /code over under /td over
under td over Allow quote capture as under code over ETO_ENGINEERING_HOLD under /code over ; block auto-mBOM/Work Order release under /td over
under /tr over
under /tbody over
under /table over
under /div over
Illustrative worked example: 3,456-to-412 constraint pruning and parametric skid BOM/routing instantiation
All figures below are illustrative and synthetic. An application engineer configures Sales Order SO-2026-7741 for a refinery chemical-transfer skid pump (PUMP-SKID-CTO) with the following customer specification vector $\mathbf{x}$:
- Pump Size:
DN100-250 - Motor Power ($P_{\text{motor}}$): $75.0\text{ kW}$ ($400\text{ V}, 50\text{ Hz}, 2\text{-pole}$)
- Process Fluid Temperature ($T_{\text{fluid}}$): $165.0^\circ\text{C}$
- Hazardous Area Classification:
ATEX_ZONE_1(Ex d IIC T4) - Wetted Metallurgy:
DUPLEX_SS_2205 - Custom Skid Baseplate Length ($L_{\text{skid}}$): $3.20\text{ meters}$
Step 1: Prune the 3,456-combination Cartesian space and validate $\mathbf{x}$.
Across the 6 option families ($4 \times 6 \times 3 \times 4 \times 3 \times 4 = \mathbf{3,456\text{ theoretical combinations}}$), applying the engineering constraint table (C-01 through C-08) eliminates $3,044\text{ invalid or unsafe combinations}$ ($88.08%$ blocked), leaving $412\text{ valid CTO configurations}$ ($11.92%$). When the sales rep initially clicks Elastomer = NBR_NITRILE and Shaft = 45MM_STD on SO-2026-7741:
- Rule
C-01fires: BlocksNBR_NITRILEbecause $T_{\text{fluid}} = 165^\circ\text{C} over 120^\circ\text{C}$; user selectsFFKM_KALREZ. - Rule
C-02fires: BecauseATEX_ZONE_1is active, the configurator automatically swaps the painted carbon-steel coupling guard (GRD-CS-01) for the Non-Sparking Brass Guard (GRD-BRS-ATEX) and selects the Flameproof $75\text{ kW}$ Ex d Motor (MTR-75KW-EXD). - Rule
C-03fires: Because $P_{\text{motor}} = 75.0\text{ kW} \ge 55.0\text{ kW}$, the configurator blocks45MM_STDand enforces the Heavy-Duty $65\text{ mm}$ 17-4PH Shaft Assembly (SHF-65MM-174PH).
Step 2: Compute parametric Super-BOM material quantities and Master Routing cycle times.
Once all boolean constraints pass, the ERP instantiates Manufacturing BOM MBOM-SO7741-REV1 and Routing RTG-SO7741-REV1 using the parametric formulas for $L_{\text{skid}} = 3.20\text{ m}$:
- Baseplate Structural Channel Steel (
RAW-CHN-PFC180, linear mass $23.095\text{ kg/m}$ per rail $\times 2\text{ rails} \times 1.05\text{ saw-kerf factor} = 48.50\text{ kg/m}$ of skid length, plus $34.80\text{ kg}$ fixed end-frame/pump-pedestal allowance): $$M_{\text{steel}} = \left(48.50\text{ kg/m} \times 3.20\text{ m}\right) + 34.80\text{ kg} = 155.20\text{ kg} + 34.80\text{ kg} = \mathbf{190.00\text{ kg}}$$ - Operation 20 (
Skid Frame Fit-Up & TIG Welding) Standard Run Time: With total structural weld seam length $L_{\text{weld}} = 3.0 \times L_{\text{skid}} = 3.0 \times 3.20\text{ m} = \mathbf{9.60\text{ meters}}$, fixture setup $T_{\text{base}} = 35.0\text{ min}$, weld deposition time $r_{\text{weld}} = 14.50\text{ min/m}$, and mandatory ATEX dual stainless earthing boss weld $T_{\text{atex}} = 18.0\text{ min}$: $$T_{\text{Op20}} = 35.0\text{ min} + \left(14.50\text{ min/m} \times 9.60\text{ m}\right) + 18.0\text{ min} = 35.0 + 139.20 + 18.0 = \mathbf{192.20\text{ standard minutes}}; (3.203\text{ hours})$$
Scroll horizontally to see all columns.
Instantiated MBOM-SO7741 / Routing Element |
Selection Predicate Evaluated | Parametric Formula Applied | Computed Output Value | Shop-Floor / MRP Impact |
|---|---|---|---|---|
| Combinatorial Space Pruning | $6\text{ Option Families}$ (C-01..C-08) |
$3,456\text{ raw} - 3,044\text{ invalid}$ | $412\text{ valid CTOs}$ | Blocks $88.08%$ of invalid combinations at quote entry |
| Line 10: Wetted Volute & Impeller | Size=='DN100-250' AND Alloy=='DUPLEX_2205' |
Discrete $Q = 1\text{ set}$ | CAS-DN100-DX2205 ($1\text{ pc}$) |
Pulls Duplex 2205 casting from foundry supermarket |
| Line 20: Heavy Shaft & Cartridge Seal | P_motor ≥ 55kW AND T_fluid over 160C |
Discrete $Q = 1\text{ set}$ | SHF-65MM + SEAL-FFKM |
Prevents $45\text{ mm}$ shaft shear & Nitrile seal melt |
| Line 30: ATEX Guard & Ex d Motor | Zone:= 'ATEX_ZONE_1' |
Discrete $Q = 1\text{ set}$ | MTR-75KW-EXD + GRD-BRS |
Enforces non-sparking brass coupling guard |
| Line 40: Structural Channel Steel | Skid_Mounted == TRUE ($L = 3.20\text{ m}$) |
$(48.50 \times 3.20) + 34.80\text{ kg}$ | $190.00\text{ kg}$ (RAW-CHN-PFC180) |
Issues exact cut-list length ($2 \times 3,200\text{ mm}$) to saw |
Routing Op 20: Skid Fit & TIG Weld |
L_weld = 9.60 m + ATEX_ZONE_1 |
$35.0 + (14.50 \times 9.60) + 18.0$ | $192.20\text{ min}$ ($3.203\text{ hrs}$) | Schedules exact welder capacity & standard cost |
Independent arithmetic verification.
- Constraint pruning ratio: $3,044\text{ disallowed} / 3,456\text{ total Cartesian} = 88.0787% \approx 88.08%$ blocked; $412 / 3,456 = 11.92%$ valid.
- Parametric steel mass: $(48.50\text{ kg/m} \times 3.20\text{ m}) + 34.80\text{ kg} = 155.20 + 34.80 = 190.00\text{ kg}$.
- Parametric welding time: $35.0\text{ min} + (14.50\text{ min/m} \times 9.60\text{ m} = 139.20\text{ min}) + 18.0\text{ min} = 192.20\text{ min}$ ($192.20 / 60 = 3.2033\text{ hours}$).
Workflow, owner roles, exception handling and recovery controls
Scroll horizontally to see all columns.
| Workflow stage | Accountable owner | Required system evidence | Exception condition | System hold & recovery control |
|---|---|---|---|---|
| 1. Constraint Rule & Super-BOM Authoring | Chief Product Engineer & Manufacturing Eng | Versioned Boolean Constraint Table (C-01..C-N), 150% Super-BOM, parametric formulas |
Newly added option lacks a selection condition on the Super-BOM (orphan option) | Run automated SAT Completeness Check before publishing rule revision; block any option that yields $0$ or $ over 1$ mutually exclusive BOM items |
| 2. Sales / Application Order Configuration | Sales Engineer / Dealer Portal | Validated Feature-Option vector $\mathbf{x}$, SHA-256 canonical configuration hash | User selects incompatible options (165°C + NBR) or exceeds CTO envelope ($L_{\text{skid}} = 5.2\text{ m}$) |
Hard-block invalid CTO combinations immediately; if outside CTO dimensional envelope, route order to ETO_ENGINEERING_HOLD |
| 3. Variant Hash Deduplication & BOM Instantiation | ERP Configuration Engine | Canonical SHA-256 hash of sorted $(\text{Feature}=\text{Value})$ pairs; instantiated 100% mBOM |
Identical configuration ordered 3 months ago by another customer | Match canonical hash to reuse existing Variant Item ID and validated mBOM instead of creating duplicate item masters |
| 4. ETO Custom Engineering Handoff | Lead Design Engineer | Custom ETO delta BOM lines, FEA/pressure calculation attachment, PE digital signoff | Production planner attempts to release a Work Order while status is ETO_ENGINEERING_HOLD |
Hard-lock Work Order creation until Design Engineering signs off the ETO BOM and clears the hold |
| 5. Shop-Floor Feedback & Formula Calibration | Industrial Engineer | Actual logged Op 20 weld hours vs parametric formula prediction ($192.20\text{ min}$) |
Actual weld time deviates from parametric formula by $ over 12%$ across 5 consecutive skids | Trigger Industrial Engineering review to recalibrate the linear slope coefficient ($r_{\text{weld}}$) in the Master Routing |
Bounded pilot and implementation check
Pilot the boolean constraint engine, 150% Super-BOM, and parametric routing generator on 1 configurable product family (covering 5–7 option groups and 1–2 dimensional parameters) over 4 weeks:
- Pilot boundary: Encode all mechanical, thermal, and hazardous-area compatibility rules; map 100% of modular sub-assemblies to Super-BOM selection conditions; and replace manual BOM cloning on incoming orders for the pilot family.
- Acceptance tests:
ACT-M124-01(Incompatible Option Hard-Block): Attempt to save a configuration with $T_{\text{fluid}} = 165^\circ\text{C}$ andElastomer = NBR_NITRILE, or $P_{\text{motor}} = 75\text{ kW}$ andShaft = 45MM_STD; confirm both are blocked with explicit rule citations.ACT-M124-02(Deterministic Parametric BOM & Routing Math): Enter theSO-2026-7741fixture ($L_{\text{skid}} = 3.20\text{ m}$,ATEX_ZONE_1) and verify the instantiatedmBOMoutputs exactly $190.00\text{ kg}$ of channel steel andOp 20outputs $192.20\text{ minutes}$.ACT-M124-03(Canonical Hash Variant Reuse): Enter the exact same option vector a second time on a new Sales Order; confirm the ERP binds the existing Variant Item ID rather than creating a duplicate SKU.ACT-M124-04(ETO Boundary Hold Interlock): Enter a skid length of $L_{\text{skid}} = 5.00\text{ m}$ (exceeding the $4.50\text{ m}$ CTO limit); confirm the order saves inETO_ENGINEERING_HOLDand blocks Work Order release until Engineering signoff.
Next actions
- Stop cloning and hand-editing historical BOMs for standard configurable products: Consolidate variants into a single 150% Super-BOM with explicit boolean selection predicates (
IF/AND/NOT). - Move compatibility rules upstream to the point of order entry: Block invalid temperature, torque, voltage, and ATEX combinations before the customer signs the order acknowledgement.
- Parameterize continuous material quantities and routing times: Use linear/surface formulas ($a \cdot L + b$) for structural steel, cabling, welding, and painting so custom dimensions cost and schedule accurately without manual recalculation.
- Enforce a canonical configuration hash (
SHA-256) and an explicit ETO boundary gate: Automatically reuse item masters when an identical configuration repeats, and isolate true out-of-envelope ETO designs for human engineering signoff.
Frequently Asked Questions
How should Configure-to-Order (CTO) and Engineer-to-Order (ETO) equipment manufacturers validate sales-configurator option constraints so invalid mechanical/electrical combinations never generate shop work orders?.
Teams should govern configure to order manufacturing erp by linking every transaction to its source evidence, timestamp, and assigned owner before permitting downstream posting. Distinct from M061 (sales quote cost estimation); M124 governs boolean/parametric compatibility matrices, auto-generated variant BOM/routing synthesis, and ETO custom-engineering hold gates. Rather than relying on informal spreadsheet overrides, the workflow enforces a documented verification gate and preserves the original observation whenever a correction is recorded.
How does product configurator software handle exceptions and mismatches?.
When a discrepancy occurs during product configurator software, the system routes the blocked record into an owned exception queue rather than silently dropping or auto-adjusting the balance. Assigned operational, quality, and finance owners must review and approve exceptions before posting. Each exception retains the original quantity, date, and counterparty reference until the designated reviewer resolves the variance with supporting evidence.
What should teams test before automating engineer to order erp?.
Before scaling engineer to order erp, run a bounded pilot using historical records that include partial receipts, late updates, duplicate messages, and rejected lines. Verify that the integration preserves idempotency, maintains a clear segregation of duties between operational entry and financial approval, and produces an auditable trail for every state transition.
Scope this automation around your operation
Tell us your current systems, transaction volume and the exception you need to resolve. We can discuss a focused first release, its review controls and how to measure the result.
Sources and further reading
Sources checked 15 October 2026. Worked examples and workflow diagrams are original illustrations, not reported client results.
