ECO to PO: why change orders break your procurement data

· bomrail

Every hardware company past a certain size has a version of this story. An engineering change order releases — a tolerance tightens, a connector swaps, a board respins. The PLM system does its job perfectly: the part bumps from rev C to rev D, the BOM updates, the approvals are all logged. Six weeks later, forty parts arrive at receiving, built to rev C, against a purchase order nobody thought to update. Now you own a batch of parts that match the PO exactly and the product not at all — and the argument about whose fault that is lasts longer than the machining did.

This isn’t a discipline failure. It’s a structural one, and it’s worth understanding precisely, because the obvious fixes don’t fix it.

The gap is between systems, not people

Walk the data. The ECO lives in PLM — Duro, Arena, wherever design truth lives. It knows which part numbers changed, from which revision, to which revision, effective when. The purchase order lives in your ERP or factory system — NetSuite, ION, Odoo. It knows what was ordered, from whom, at what price, due when. The PO line references a part number and, if your process is good, a revision.

Here’s the structural problem: the ECO and the PO never meet. No system contains both. The PLM has no idea POs exist; it fires its “released” notification into email and considers its job done. The ERP has no idea the ECO happened; rev C is just a string in a column, and the string didn’t change. The only join between “this revision is now obsolete” and “we have open orders for this revision” happens in a human’s head — usually the change analyst’s, usually via a checklist item that says notify procurement, usually as the fourteenth thing on release day.

The failure rate of that manual join is low per event. Multiply by every ECO against every open PO, and “low” becomes “quarterly.”

Why the standard fixes underdeliver

“Add it to the ECO checklist.” It’s already on the checklist. The checklist requires the analyst to go search the ERP for affected POs — a cross-system query performed by hand, under time pressure, on release day. The checklist documents the intention; it doesn’t execute the query. When the search gets skipped, nothing notices it was skipped.

“Sync PLM to ERP.” Item-master syncs are genuinely useful, and if you run Duro alongside NetSuite or Odoo you probably have one. But look at what it does: it updates the item record to rev D. The open PO line still says rev C — correctly, in fact, because that PO was placed against rev C and silently rewriting issued purchase orders would be worse. The sync moves the new truth; it doesn’t reconcile the new truth against outstanding commitments. That’s a different operation, and no sync performs it.

“Buy the module.” ERP change-management modules exist and help — if your ECOs originate in the ERP. When engineering truth lives in a dedicated PLM (which is why you bought the PLM), the module is downstream of the same gap.

“Effectivity dates handle this.” Effectivity tells you when rev D applies. It still doesn’t enumerate which open POs, quotes, or in-transit shipments reference rev C. Knowing the cutover date and knowing your exposure at the cutover are different facts.

What the failure actually costs

The received-obsolete-parts case is the visible one: scrap or rework, a supplier dispute over who eats the cost, and a schedule slip while replacements are machined. The quieter costs compound worse:

  • Stale quotes. Suppliers quoting against superseded drawings; the error surfaces at first article, months later.
  • Bill mismatches. Finance pays for rev C parts while inventory shows rev D demand — the ledger and the shelf drift apart, and nobody can say what the ECO actually cost.
  • Defensive over-ordering. Once burned, planners start padding buys “in case something changed,” which is inventory bloat with extra steps.
  • Trust erosion. The most expensive one. Once people stop trusting the PO data, every order gets a confirmation email, every receipt gets a manual check, and you’ve reintroduced the labor the systems were bought to remove.

The fix is a query, not a pipeline

Strip the problem to its logic and it’s one cross-system query: given the parts and revision bumps in this ECO, find every open commitment — POs, quotes, work orders — that references a superseded revision. Everything about the failure follows from that query being manual. So the fix is making it automatic and cheap enough to run constantly, which is not a data-transfer problem — no record needs to move anywhere. It’s a read-and-join problem across systems that don’t share a database.

That’s the shape of problem AI agents with tool access handle well. Connect the PLM and the ERP to an agent through an MCP server — typed, read-only tools on each system — and the query becomes a sentence: “Which open POs are affected by ECO-142?” The agent pulls the ECO’s affected items from PLM, searches open PO lines for those parts at superseded revisions, checks bill status in accounting if you ask, and returns the exposure list with sources. Release day gets a standing question instead of a checklist item; better, it’s a question anyone can re-ask before release to price the change. (This exact scenario is the demo on the bomrail homepage, because it’s the one every hardware team recognizes on sight.)

Two properties matter for trusting it. Live reads — the answer reflects both systems at question time, no overnight batch to lag behind release day. And revision awareness — the tools must treat “PN-1042 rev C” and “PN-1042 rev D” as different things, or the query returns garbage. Generic integration layers flatten revisions away; this failure mode is made of revisions, which is why we treat them as first-class in every tool we expose.

Where to start, whatever tools you use

Even without any of the above: measure the gap once. Take your last five released ECOs, and for each, search your ERP for open POs referencing the affected parts as of the release date. If the count is zero across all five, your checklist process is genuinely working — write down why and protect it. In our experience the count is not zero, and the dollar figure attached to it is the most persuasive document you’ll produce this quarter.

If Duro, Arena, ION, NetSuite, Xero or Odoo are the systems on either side of your gap, that reconciliation is precisely what bomrail makes conversational — the design-partner program is open.

Related integrations

We're onboarding 5 design partners

Hardware teams running ION, Duro or Xero: get white-glove setup, direct access to the founder, and locked-in pricing — in exchange for honest feedback.

Apply for early access