How to Create a Bill of Materials That Your CM Won't Reject

A detailed bill of materials spreadsheet ready for contract manufacturer review

You spent 4 months on your design. Your schematic is clean, your layout passes DRC, and you’re feeling good. You send your BOM to the contract manufacturer, and 3 days later you get an email back: 23 clarification questions, 6 flagged line items, and a polite note that they can’t quote until you fix it.

That week of back-and-forth was avoidable. Almost every BOM rejection traces back to the same handful of mistakes, and they’re all preventable if you understand what the CM is actually looking for.

Your BOM isn’t a parts list for your own reference. It’s a communication document, the interface between your design intent and someone else’s procurement and assembly process. When that interface is fuzzy, everything downstream breaks.

This guide covers the required fields, the structure, the common mistakes, and a referenceable bill of materials format for both PCBA and mechanical assemblies. Bookmark it. Come back to it every time you prep a handoff.

The 8 Reasons Your BOM Gets Kicked Back

CMs see the same problems over and over. Here’s the list, in rough order of how often they cause rejections:

  1. Missing or wrong manufacturer part numbers (MPNs). The CM can’t procure what they can’t identify.
  2. Distributor SKUs instead of MPNs. A Digi-Key or Mouser part number isn’t an MPN. It’s a catalog reference that can change or go stale.
  3. No alternates for sole-sourced parts. If the only MPN you listed has a 26-week lead time, the CM is stuck.
  4. Ambiguous or missing reference designators. The assembler can’t place parts they can’t map to your board.
  5. Quantities that don’t match the schematic. You list “R1, R2, R3” but the quantity says 2. Which is it?
  6. Missing package or value specs on passives. “100nF cap” could be 0402, 0603, or 0805. Three different land patterns, three different reels.
  7. DNP items listed without clear marking. Did you forget to fill in the MPN, or is it intentionally unpopulated? The CM can’t tell.
  8. PCBA and mechanical items mashed into one flat list. These go to different teams with different systems. Mixing them creates confusion at intake.

Every field in a well-structured bom template exists to prevent one of these problems. Let’s build one.

Anatomy of a PCBA BOM, Field by Field

Here’s what each column is, and why your CM needs it.

Item / Line Number. A sequential, unique ID for each BOM line. This gives everyone a shared reference when discussing issues (“line 14 has a lead time problem”).

Reference Designator(s). R1, R2, C5, U3. These must match your schematic and PCB layout exactly. The assembler uses these to place parts. If they don’t match, the build stops.

Quantity. Per board. Not per panel, not per order. The CM will multiply by order quantity themselves.

Manufacturer. Full company name: “Texas Instruments,” not “TI.” Abbreviations create ambiguity, especially with companies that share initials.

Manufacturer Part Number (MPN). The exact, complete MPN from the manufacturer’s datasheet. Not truncated, not from memory. Copy-paste it.

Description. Human-readable, with key specs baked in: “RES, 10K, 1%, 1/16W, 0402.” This lets a buyer verify they’re looking at the right part without pulling up every datasheet.

Package / Footprint. Must match the land pattern in your layout file. This is the CM’s sanity check that your BOM and your Gerbers agree.

Alternate Manufacturer and Alternate MPN. At least one alternate where possible. This is your insurance against supply chain surprises.

DNP Flag. A clear column: “Yes” means do not place, “No” means populate. Don’t just delete DNP parts from the BOM. The CM needs to know those pads exist and are intentionally empty.

Notes. Special handling, orientation concerns, known lead-time risks, or procurement instructions.

Here’s a realistic PCBA BOM example with 4 lines:

| Line | Ref Des   | Qty | Manufacturer        | MPN                | Description                      | Package | Alt Mfr  | Alt MPN           | DNP | Notes           |
|------|-----------|-----|---------------------|--------------------|----------------------------------|---------|----------|-------------------|-----|-----------------|
| 1    | R1,R2,R3  | 3   | Yageo               | RC0402FR-0710KL    | RES, 10K, 1%, 1/16W, 0402       | 0402    | Samsung  | RC1005F103CS      | No  |                 |
| 2    | C1,C2     | 2   | Murata              | GRM155R71E104KA87D | CAP, 100nF, 25V, X7R, 0402      | 0402    | TDK      | C1005X7R1E104K    | No  |                 |
| 3    | U1        | 1   | Texas Instruments   | TPS63020DSJR       | Buck-Boost Converter, 3.3V Out   | VSON-14 |          |                   | No  | Check lead time |
| 4    | R15       | 1   |                     |                    | RES, 0 Ohm, 0402                | 0402    |          |                   | YES | Debug jumper    |

This is the minimum viable structure that meets cm bom requirements. Some manufacturers will ask for extra columns: lifecycle status, RoHS compliance flag, unit price for quoting. But if you nail these columns, you won’t get rejected at intake.

The Mechanical BOM: What’s Different

Your product isn’t just a PCBA. Enclosures, fasteners, cables, gaskets, labels, packaging: all of these need a BOM too, and the conventions are different.

No reference designators. Mechanical BOMs use an assembly reference or drawing callout number (like “ENC-01” or “HW-03”) that maps to your mechanical assembly drawing. If you don’t have an assembly drawing, you need one. A mechanical BOM without a drawing is like a PCBA BOM without a layout.

Quantity means “per assembly.” Not per board, because there’s no board. It’s per finished unit.

The supplier vs. manufacturer line gets blurry. A custom injection-molded enclosure doesn’t have a traditional MPN. It has your internal part number, a tooling owner, and a vendor. Your BOM needs to reflect that clearly.

Material and finish callouts are often required. “ABS, black, matte texture MT-11000” isn’t optional detail; it’s the spec the vendor needs to quote and produce correctly.

Custom vs. COTS distinction matters. Flag which parts are custom-fabricated (and who owns the tooling) vs. commercial off-the-shelf items. This changes procurement lead times drastically.

Here’s a mechanical bom template example:

| Line | Assy Ref | Qty | Description               | Part Number      | Vendor/Mfr    | Material / Finish      | Custom? | Notes             |
|------|----------|-----|---------------------------|------------------|---------------|------------------------|---------|-------------------|
| 1    | ENC-01   | 1   | Top enclosure shell       | ENC-2024-TOP-A   | Protolabs     | ABS, Black, MT-11000   | Yes     | Rev A tooling     |
| 2    | ENC-02   | 1   | Bottom enclosure shell    | ENC-2024-BOT-A   | Protolabs     | ABS, Black, MT-11000   | Yes     | Rev A tooling     |
| 3    | HW-01    | 4   | M2.5x6mm pan head screw  | 92000A103        | McMaster-Carr | SS 18-8                | No      |                   |
| 4    | LBL-01   | 1   | Product label, regulatory | LBL-FCC-CE-V2   | StickerGiant  | Polyester, white       | Yes     | UL recognized     |

Keep your PCBA and mechanical BOMs as separate tabs or separate files. They go to different teams. Combining them into one flat list is one of the fastest ways to trigger a rejection.

BOM Hygiene Rules That Prevent Silent Errors

These rules sound tedious. They’ll save you a week of back-and-forth.

  1. One MPN per line. Don’t combine different parts on the same line, even if they share a footprint. A 10K resistor and a 4.7K resistor are different line items.

  2. Ref des count must equal quantity. If you list “R1, R2, R3” then Qty = 3. CMs will flag mismatches and halt until you clarify.

  3. Use full MPNs. “GRM155R71E104…” is not the same as “GRM155R71E104KA87D.” Truncated MPNs force procurement to guess, and they’ll guess wrong.

  4. Separate your PCBA BOM and mechanical BOM. Different tabs, different files. A flat combined list creates confusion at intake.

  5. Version and date your BOM. Put the revision, date, and author in the file header or filename. “BOM_v2.3_2024-11-15_jchen.xlsx” beats “BOM_final_FINAL.xlsx” every time.

  6. Flag long-lead and sole-source items explicitly. Don’t make the CM discover a 20-week lead time during quoting. Call it out in the notes column. If you’ve been tracking component availability during design, carry that knowledge into the BOM. Teams building with the Hubble Device SDK or similar off-the-shelf modules tend to have a head start here, since availability data is already part of their workflow.

  7. Remove obsolete and placeholder lines. “TBD” entries or commented-out parts signal the BOM isn’t production-ready. The CM will send it back.

  8. Export as .xlsx or .csv, not PDF. CMs need to import your BOM data into their MRP/ERP systems. A PDF means someone re-types every line by hand. That’s where errors creep in.

The Pre-Flight Checklist

Run through this before you hit send.

PRE-SUBMISSION BOM CHECKLIST
─────────────────────────────
[ ] Every line has a valid, complete MPN (or is flagged as custom)
[ ] Ref des count matches quantity on every PCBA line
[ ] At least one alternate MPN for critical/high-risk components
[ ] DNP items are clearly marked, not just deleted
[ ] PCBA and mechanical BOMs are separate documents/tabs
[ ] File is .xlsx or .csv (not PDF)
[ ] BOM header includes: revision, date, author, project name
[ ] Description field includes value, tolerance, voltage, package
[ ] No distributor SKUs posing as MPNs
[ ] Notes column flags lead-time risks or special handling

If you can’t check a box, fix it before submitting. Every unchecked box costs you a day or two of delay while the CM waits for your answer.

Clean BOMs Ship Faster

A clean BOM is the fastest path to an accurate quote and an on-time build. The CM intake team reviews dozens of BOMs a week. The ones that sail through share the same traits: complete MPNs, matched quantities, clear DNP markings, and separate PCBA and mechanical documents.

The formats and checklists above aren’t the only way to structure a bill of materials, but they cover what every CM needs to see. If your CM has a specific intake template, ask for it and map your data into their format. Ten minutes of work that eliminates an entire round of questions. That same principle (clean data in, clean data out) applies when you’re ready to register your devices and push data to your backend.


Hubble Network enables direct-to-satellite connectivity for your devices—no gateways, no extra infrastructure. See how it works →