The most expensive BOM error in procurement is the line that looks valid but does not resolve to a real, orderable manufacturer part. It survives the ERP import, survives the quote, and only becomes visible when the wrong part — or no part — reaches the line. By then you have already paid for sourcing, and sometimes for the build. Catching that line before the purchase order is the whole job of BOM error checking.
A BOM has to clear three gates before it is buildable: every line must resolve to a real MPN at the current manufacturer, the landed cost must roll up correctly, and the assembly package must be defect-free. The cost roll-up and the assembly-defect gates are covered in our PCB Assembly BOM Cost and assembly BOM best practices guides. What follows is the first gate — the one that decides whether a BOM is clean enough to quote at all.
The procurement decision: is this BOM clean enough to release?
A BOM is procurement-ready when every line resolves to a unique, orderable manufacturer part number (MPN) at the current manufacturer, with a known lifecycle status, a known populate status, and — for any single-source or critical line — a pre-approved alternate. If any of those is missing, the line is a risk, and the job of BOM error checking is to grade that risk before it becomes a purchase order.
The buyer's decisions, in order, are:
- Resolve: does this MPN map to a real, orderable part at the current manufacturer?
- Flag: which lines are unresolvable, ambiguous, or single-source?
- Triage lifecycle: is the part Active, NRND, EOL/PDN, or Obsolete — and what action does each status trigger?
- Approve alternates: is there a pre-approved second source, or does an alternate need engineering sign-off?
- Release or hold: is the BOM clean enough to RFQ, or does it go back to engineering?
Everything below is a tool for answering those five questions.
Why MPN matching fails: the noise sources
MPNs are not globally standardized, and "string equality" is nearly useless for matching them. A BOM line can look correct and still fail to resolve in a supplier database. The common noise sources:
- Packaging suffixes — the last 1–3 characters of a passive MPN often encode tape-and-reel vs cut-tape, tolerance, or RoHS/lead-finish. A Murata GRM capacitor part number encodes package, tolerance, and packing in single-character suffix fields; changing one character changes the part.
- Manufacturer-name rot from M&A — design tools still emit "Xilinx" or "Altera" long after those became AMD and Intel. The MPN may be valid; the manufacturer name is stale and breaks matching.
- Distributor SKU used as the MPN — a DigiKey
-NDsuffix or a Mouser81-…prefix is a distributor code, not a manufacturer part number. It must be converted back to the OCM MPN before matching. - Transcription damage — leading zeros dropped, dash characters mangled by spreadsheet auto-formatting, and look-alike character errors (
0vsO,1vsI,8vsB). A single character error can pass an ERP import check and reach procurement, where it becomes scrap or rework. - Tolerance / grade codes — a single letter can change a 1% part into a 5% part. Swapping tolerance without engineering approval can cause burn-in or field failures.
The practical rule: MPN + manufacturer, normalized to the current OCM name, with the suffix decoded — not string equality.
The BOM risk-grading matrix
For each error category, the matrix states the severity, the procurement decision, and the evidence to request before the PO is released. Use it as a triage sheet on every BOM intake.
BOM risk-grading matrix by error category
Procurement-side triage. Severity drives the action: CRITICAL lines block the RFQ; HIGH lines need engineering or lifecycle action before PO; MEDIUM lines are normalized and re-verified.
| Error category | Severity | Procurement decision | Evidence to request before PO |
|---|---|---|---|
| MPN not resolvable to any orderable part | CRITICAL | Hold the RFQ. Do not release the PO. | MPN + current manufacturer; datasheet link; OCM product page |
| MPN character mismatch (0/O, 1/I, 8/B, mangled dash) | CRITICAL | Reject the line; re-verify the exact MPN from the datasheet | Screenshot or copy of the exact MPN from the manufacturer datasheet |
| Package suffix mismatch (D vs J reel, 0402 vs 0603, QFN-32 vs QFN-40) | HIGH | Engineering approval required; verify against Gerber footprint | Package drawing vs Gerber footprint; CPL alignment check |
| DNP / DNI / NC not flagged | HIGH | Add an explicit populate-status column; do not omit the line | BOM with a Fitted / DNP column and CPL exclusion list |
| No approved alternate / single-source | HIGH | Open AVL qualification or flag the single-source risk | Pre-approved alternate MPN; second-source distributor stock |
| Lifecycle NRND | HIGH | Stop new design-ins; scout and qualify alternates | Manufacturer lifecycle status or PCN |
| Lifecycle EOL / PDN | CRITICAL | Size a last-time buy or start a redesign; do not assume stock | PCN with LTB and last-ship dates; authorized distributor stock |
| Lifecycle Obsolete | CRITICAL | Broker purchase only with traceability; redesign preferred | Lot traceability, CoC, test plan, GIDEP / counterfeit check |
| Manufacturer name stale (M&A: Xilinx→AMD, Altera→Intel) | MEDIUM | Normalize to the current OCM name and re-match | Distributor lookup on the current manufacturer page |
| Distributor SKU used instead of MPN | MEDIUM | Convert the SKU to the manufacturer P/N before matching | Cross-reference SKU → MPN from the distributor |
| Quantity / RefDes count mismatch | MEDIUM | Fix the BOM or CPL before release | Cross-check BOM Qty vs RefDes list count |
How to use it: run every line through the categories top to bottom. The first CRITICAL hit blocks the RFQ. A BOM with no CRITICAL lines and all HIGH lines either resolved or owned by a named engineer is clean enough to quote. Anything less goes back to engineering with the specific categories flagged — not a generic "please review the BOM."
MPN parsing: what the last 2–3 characters usually mean
For passives, the MPN tail is where most matching errors happen. A Murata GRM ceramic capacitor part number is structured as GRM [dimension] [thickness] [temperature characteristic] [voltage] [capacitance] [tolerance] [individual spec] [package]. Two part numbers that differ by one character in the tolerance or package field are different parts — one might be ±10%, the other ±20%, or a different reel packing.
Two concrete traps:
- Tolerance code —
Kis commonly ±10% andMis ±20% in many passive series. A…KA01Dvs…MA01Dswap without engineering approval can shift a circuit out of spec. - Packing code — the final character often distinguishes tape-and-reel from cut-tape or a different reel quantity. It changes how you buy, not what the part is electrically — but it still breaks naive MPN matching.
For ICs, the structure varies by manufacturer: Texas Instruments logic families use the SN74 prefix plus a temperature-and-package suffix; Maxim uses a base number plus a 3–4 letter suffix encoding temperature, package, and pin count; Infineon combines a salesname with an orderable part number (OPN) suffix for packing and RoHS. The takeaway for procurement: decode the suffix before you match, and never assume two MPNs that differ by one character are the same part.
DNP, DNI, NC: flag it or pay for it
DNP (Do Not Populate), DNI (Do Not Install), and NC (No Connection / No Component) are used interchangeably across design teams, and other variants appear too: Fitted, NF, NM, No Load. The convention does not matter; the flag does.
The rule that prevents assembly holds: keep DNP components in the BOM with their MPN and an explicit populate-status column — do not delete the line. A missing DNP line is worse than a wrong one, because the CM has no way to know the pad should be empty on that variant. Use a dedicated Populate column (Fitted / DNP) and a matching CPL exclusion, and color-code the variant in the BOM if you support multiple build configurations. This is a HIGH-severity error in the matrix above precisely because it is invisible until the wrong variant ships.
Lifecycle triage: Active, NRND, EOL, Obsolete
Lifecycle status drives the most expensive procurement decisions on a BOM. The hierarchy, and the action each status demands:
- Active — currently manufactured and recommended for new designs. No action beyond normal sourcing.
- NRND (Not Recommended for New Designs) — still manufactured, but the vendor discourages new design-ins. No fixed end date; an NRND part can remain available for years. Action: stop new design-ins on this part, and begin qualifying an alternate so you are not caught when it moves to EOL.
- EOL / PDN (End of Life / Product Discontinuance Notice) — the manufacturer has committed to a discontinuation schedule with published last-time-buy (LTB) and last-ship (LTS) dates. Action: size a last-time buy or start a redesign immediately. Do not assume distributor stock will cover you — it will not, and broker stock after LTS carries counterfeit risk.
- Obsolete — no longer manufactured. Action: redesign is preferred. A broker purchase is the last resort and requires lot traceability, a Certificate of Conformance, a test plan, and a GIDEP / counterfeit check.
Last-time-buy sizing: a practical estimate is (monthly demand × remaining lifecycle months × 1.15 safety factor) − on-hand inventory − open POs. This is a starting estimate, not a final number — confirm the LTB and LTS dates from the manufacturer's PCN, and verify the lifecycle status against the manufacturer's lifecycle database or a component-intelligence platform, not just a distributor listing. Texas Instruments, for example, typically follows J-STD-048 / JESD48 practice with roughly 12 months for last orders and 6 months for last delivery; other manufacturers differ.
The formal references for this work are JEDEC JESD48-D (product discontinuance), IEC 62402 (obsolescence management), and IPC-1601 (change-notification practices). Cite them internally when you set your lifecycle policy; do not put them in customer-facing copy as a substitute for actual verification.
The RFQ-ready BOM: fields to submit and evidence to request
A BOM that bounces back from your CM is a BOM that was missing a field. Submit these fields on every PCBA RFQ line:
Required RFQ BOM fields
Submit these per line item. Missing fields are the most common cause of quote delays and wrong-part sourcing.
- Item / line number
- Reference designator(s)
- Quantity per board
- Manufacturer / brand (current OCM name)
- Manufacturer Part Number (MPN) — full, datasheet-verified
- Description / value
- Package / footprint
- Populate status — Fitted, DNP, DNI, NC, or No Load
- Approved alternate MPN(s) with manufacturer
- Customer-supplied / consigned flag
- BOM revision and Gerber / CPL revision
- Target compliance — RoHS, REACH, AEC-Q, MIL, etc.
For every CRITICAL or HIGH line, also request this evidence from your supplier or EMS before the PO:
- Lifecycle status with a named source — the OCM product page, the PCN, or a component-intelligence platform, not a distributor stock number alone.
- Authorized-distributor availability with lead time, MOQ, and stock location.
- Package confirmation vs the Gerber footprint — especially for QFN, BGA, and any 0402/0603 swap.
- AVL sign-off — which alternates engineering has pre-approved, in writing.
- Where-used / ECN history for the MPN, to catch revision drift between design and procurement.
- A risk report with a named owner for each open action — not a generic "we will look into it."
Finally, run the buyer's go/no-go questions on the BOM before you release it:
- Does every MPN resolve to a real, orderable part at the current manufacturer?
- Are the last 2–3 characters of each MPN decoded as package/tolerance/packing — or are they being ignored?
- Is every manufacturer name the current one after any M&A?
- Is there a pre-approved alternate for every single-source or critical line?
- Does every flagged line have a named owner and a due date?
If the answer to all five is yes, the BOM is procurement-ready. If not, it goes back to engineering with the specific risk categories from the matrix — not a vague request to "clean it up."
Conclusion
BOM error checking for procurement is the gate that runs before cost analysis and before assembly. Grade every line against the risk matrix, decode MPN suffixes instead of trusting string equality, flag DNP lines explicitly, triage lifecycle status with a named source, and submit the full RFQ field list so the quote does not bounce. A BOM that clears this gate is one your CM can quote, source, and build without a clarification round — and the lines that do not clear it go back to engineering with a specific category and a named owner, not a generic rework request.
For a DFM and procurement review on your BOM before you place a PO, contact HILPCB PCB Assembly or request a quote and our procurement engineering team will run the risk matrix against your BOM and flag every CRITICAL and HIGH line.
Common Questions
What is the difference between BOM error checking and BOM cost analysis?
BOM error checking decides whether each line resolves to a real, orderable manufacturer part and whether it is safe to source — it runs before the quote. BOM cost analysis rolls up the landed cost of those parts and the assembly around them — it runs after the BOM is clean. Error checking is the gate; cost analysis is the roll-up that follows.
Why do MPN matches fail even when the part number looks correct?
MPNs are not globally standardized. The last 1–3 characters often encode package, tolerance, tape-and-reel packing, or RoHS finish, so a one-character difference can be a different part. Manufacturer names go stale after mergers (Xilinx to AMD, Altera to Intel), distributor SKUs get pasted in as MPNs, and spreadsheet auto-formatting mangles dashes and leading zeros. Matching requires MPN plus the current manufacturer name, with the suffix decoded — not string equality.
What lifecycle status should block a new purchase order?
EOL/PDN and Obsolete are CRITICAL. EOL means the manufacturer has published a discontinuation schedule with last-time-buy and last-ship dates — size an LTB or start a redesign immediately. Obsolete means the part is no longer made — redesign is preferred, and a broker purchase requires lot traceability, a Certificate of Conformance, and a counterfeit check. NRND is HIGH: stop new design-ins and qualify an alternate before the part moves to EOL.
Should DNP components be removed from the BOM?
No. Keep every DNP, DNI, or NC component as a BOM line with its MPN and an explicit populate-status column. Removing DNP lines is a common cause of wrong-variant builds, because the CM has no way to know which pads should be empty on which variant. Use a dedicated Fitted/DNP column and a matching CPL exclusion.
What fields must a PCBA RFQ BOM include to avoid quote delays?
Each line needs: line number, reference designator(s), quantity per board, current manufacturer, the full datasheet-verified MPN, description, package/footprint, populate status, approved alternate MPN(s), consigned flag, BOM and Gerber/CPL revisions, and target compliance. For CRITICAL and HIGH lines, also request lifecycle status with a named source, authorized-distributor availability, package-vs-footprint confirmation, AVL sign-off, and a risk report with a named owner.
