Guide
BOM formats for PCB assembly: the columns assemblers expect
An assembly BOM needs, for every line, a quantity per board, the reference designators, a manufacturer and manufacturer part number, a description or package, and a do-not-populate flag. Send one row per distinct part unless your assembler asks for one row per designator. Check that each quantity equals its designator count before you send it.
Checklist
Build the file in six steps
One row per distinct part
Group lines that share a manufacturer part number, footprint and fitted state. Quantity is the count for one board.
Fixed columns, one header row
Use line, qty, ref_des, part_number, manufacturer, mpn, description, footprint, dnp, notes, in that order. No merged cells, logos or blank rows.
Designators expanded in one cell
Write R5,R6,R7,R8, never R5-R8, in one quoted cell, so a spreadsheet can count them.
Mark unfitted parts
Keep do-not-populate lines with Y in the dnp column. Do not delete them.
Save as CSV or XLSX
UTF-8, comma-delimited CSV loads almost anywhere. In XLSX, check that part numbers such as 1E5 stayed text.
Prove the count
On every line that lists designators, qty must equal their number. Fix a mismatch in the source, not in the export.
Layouts
Consolidated or one row per designator
A consolidated BOM has one row per distinct part, carrying the quantity for one board and every designator that uses it. Purchasing and quoting teams read this layout: rows are lines to source, and each row is one thing to buy.
A per-designator BOM, sometimes called flat or exploded, has one row per placed component, each with a quantity of 1. It suits placement data, rework tracking and some PLM imports. It is easy to make from a consolidated BOM by splitting the designator cell; the reverse needs a grouping key of MPN, footprint and fitted state.
Consolidated: one row per part
line,qty,ref_des,mpn,footprint,dnp
1,2,"C1,C2",GRM155R71C104KA88D,C_0402,N
Per designator: one row per placement
ref_des,mpn,footprint,dnp
C1,GRM155R71C104KA88D,C_0402,N
C2,GRM155R71C104KA88D,C_0402,NSend the consolidated layout unless told otherwise, and keep one master. If a per-designator file is requested, generate it from the master. Merging lines with the same MPN is covered in BOM consolidation and duplicate lines.
File rules
Rules that survive an import
Importers read a file literally; most failures come from the file, not the parts.
- One header row, first in the sheet. No title block above it, no totals row below.
- No colour as data. Fill colours do not survive CSV, and import tools ignore them.
- UTF-8 and commas, with any cell that holds a comma in double quotes. A designator cell always does.
- Part numbers stored as text, so Excel cannot turn 1E5 into 100000 or drop a leading zero.
- Headers that say what the column holds. Keep order quantities out of qty; see quantity per board vs order quantity.
The ten columns BOMParser writes are defined on the BOM template page. Use them as a target even when you retype a BOM yourself.
Reference
Columns an assembly BOM carries
| Column | Settles | Typical headers | If missing |
|---|---|---|---|
| Quantity per board | How many to buy and place | Qty, Quantity | Nothing can be priced |
| Reference designators | Where each part goes | Designator, Ref Des | The count cannot be checked |
| Manufacturer | Whose part it is | Manufacturer, Mfr | The MPN may be ambiguous |
| MPN | The exact part to buy | MPN, Mfr PN | The assembler guesses or asks |
| Description | Value and rating, for people | Description, Value | Review is slow |
| Footprint or package | Size and mounting style | Footprint, Package | Set-up is estimated |
| DNP | Which lines are not fitted | DNP, Fitted | Wrong parts get placed |
| Internal part number | Your own identifier | Part Number | Matching to your ERP is manual |
Header names vary by tool and by assembler. Check your assembler's instructions before renaming anything.
Pitfalls
What goes wrong
- Ranges instead of lists. A spreadsheet sees R5-R8 as one entry, so the designator count says 1 where the quantity says 4.
- A quantity column with two meanings. If Qty holds per-board counts on some rows and order counts on others, every extension is wrong.
- Rows that are not parts. A title block, totals row or note across columns loads as lines.
- Excel edits. 1E5 becomes a number, leading zeros vanish, and a micro or ohm sign can show wrongly when a CSV without a byte-order mark is opened by double-click in some versions of Excel.
- Deleted DNP rows. The footprint is still on the board, so the next reader wonders what was left out. See DNP in a BOM.
- Descriptions in place of part numbers. A line that says 10K 0402 is priced as a guess.
The tool
How BOMParser helps
BOMParser reads a BOM that arrives as a PDF and writes the consolidated layout above: one row per BOM line, ten fixed columns, designators expanded into one quoted cell, quantity checked against the designator count. It shows lines as printed or merged by MPN, and does not write one row per designator. Convert a file on the BOM to CSV page; pricing lists the plans. Free: 1 file per day, up to 10 pages, no account. Files over 10 pages are converted up to page 10 on the free allowance; a page code converts the whole file, up to 150 pages.
FAQ
BOM format questions
What columns does a PCB assembly BOM need?
Quantity per board, reference designators, manufacturer, manufacturer part number, a description or package, and a do-not-populate flag. An internal part number and notes help. Your assembler's instructions override this list.
Should a BOM be consolidated or one row per designator?
Consolidated, unless the assembler asks otherwise. A per-designator file can be generated from it by splitting the designator cell.
Is CSV or Excel better for sending a BOM?
Either works if the layout is clean. CSV loads almost anywhere; XLSX keeps text formatting. Check that part numbers stayed text and that every row is a BOM line.
Do I still need a footprint column with a placement file?
Usually. The placement file gives positions and rotations; the package column says what size and mounting style each line is. Ask what your assembler expects.
How should designators be written in the BOM?
Expanded and comma-separated in one cell: R5,R6,R7,R8. A range such as R5-R8 counts as one entry in a spreadsheet.
Where do alternate parts go?
Not on extra rows that repeat the designators. Put them in a notes field as alt: maker and part number, or in an approved-alternates table.
Keep reading
Related guides
BOM for assembly quotes
What a quoting team needs to price a build.
MPN vs internal part number
Why a BOM needs both, and how to keep a mapping table.
KiCad and Altium BOM export columns
Typical export fields, and how they map to a clean BOM.