Guide
KiCad and Altium BOM export columns, and how they map to a clean BOM
KiCad and Altium name their BOM columns differently, and a default export typically lacks some columns an assembler expects. Quantity and designators come from the design. Manufacturer, MPN and internal part number appear only if the library carries them as fields or parameters. Map each export column to one clean column before sending the file.
Steps
Mapping an export
Note the tool and version
Menus and defaults change between releases. Record which version produced the file.
Add the missing fields
Add the fields or parameters that hold manufacturer, MPN and internal part number to the export.
Check the grouping
Grouped exports combine lines by the fields you choose. Make sure the grouping separates parts that differ in MPN.
Choose delimiters on purpose
Pick a file delimiter and a designator separator that do not collide, and quote cells that hold commas.
Map each column
Match every export column to one clean column, using the table below.
Prove the result
Compare quantity with the designator count on every line, and check the fitted state of DNP parts.
KiCad
What KiCad exports
In KiCad 9 the BOM is built in the Symbol Fields Table, opened with Generate Bill of Materials on the Tools menu. You choose which fields to show and which to group by. Virtual fields such as ${QUANTITY}, ${ITEM_NUMBER} and ${DNP} can be added as columns, and an Exclude DNP box leaves DNP parts out. A symbol can carry the attributes Exclude from bill of materials and Do not populate. Export options include a field delimiter, a string delimiter and a reference range delimiter: with none set, consecutive designators are listed one by one (R1,R2,R3). Presets cover CSV, TSV and semicolon-separated files.
Altium
What Altium exports
Altium Designer's BOM Report Manager offers component parameters such as Comment, Description, Designator, Footprint, LibRef and Quantity, plus any parameters you add, and exports to formats including CSV, Excel and PDF. Variants can mark a component Not Fitted. By default those parts are left out. An option shows them, with a Fitted column and a quantity of 0. Check the documentation for your version before relying on a setting. For the target columns, see BOM formats for PCB assembly.
Mapping
Typical export fields and the clean columns they map to
| Clean column | KiCad usually | Altium usually | Watch for |
|---|---|---|---|
| qty | Qty or ${QUANTITY} | Quantity | Grouping decides what is counted |
| ref_des | Reference | Designator | Range delimiters and separators |
| part_number | A custom field | A parameter | Neither tool adds it for you |
| manufacturer | A custom field | A parameter | Blank unless the library fills it |
| mpn | A custom field | A parameter | The Value is not an MPN |
| description | Description | Description | Often generic |
| footprint | Footprint | Footprint | Library prefix before the name |
| dnp | ${DNP} or the attribute | Not Fitted, or a Fitted column | Fitted reads the other way round |
| notes | A custom field | Comment, if used as a note | Comment often holds the value |
Typical only. Field names depend on your version, your library and the template you export with.
Pitfalls
What goes wrong
- Value is not the MPN. A Value of 10k tells a buyer nothing about which part to order. Export a real MPN field; see MPN vs internal part number.
- Excluded is not DNP. A part excluded from the BOM never appears. A DNP part appears, flagged. An assembler reads them differently; see DNP in a BOM.
- Library prefixes. A footprint written as library:name carries a library an assembler does not need. Strip it or keep it, consistently.
- Blank fields. A library entry without a manufacturer or MPN exports an empty cell. Look for blanks before you send.
- Delimiter collisions. Designators joined with commas inside a comma-delimited file shift the columns unless the cell is quoted.
- Coarse grouping. Grouping by value alone merges parts that differ in MPN, and grouping by too many fields splits one part into several lines.
- The wrong variant. An export for the wrong variant lists parts the build leaves off.
The tool
How BOMParser helps
BOMParser reads PDF files only. It does not open native CSV, XML, project or design files, so it applies when an export has been printed or saved as a PDF. It maps headers such as Designator, Reference, Quantity, Qty, Footprint, Manufacturer and MPN to its ten columns, and reads a Fitted column the other way round. A Comment column is read as notes when the table also has a Description or Value column, so a value that lives in Comment lands in notes. Columns it does not map, such as LibRef, appear only in the JSON export. 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 export questions
Which KiCad menu generates a BOM?
In KiCad 9, Generate Bill of Materials on the schematic editor's Tools menu opens the Symbol Fields Table, which builds and exports the BOM. Earlier versions used a different dialog, so check the documentation for yours.
Does KiCad export an MPN column by default?
Typically not. Add a custom field such as MPN to the symbols, then enable it as a column in the export.
What does Altium's Comment column hold?
The component's comment field, which many libraries use for the value or the part name. Check a few rows before mapping it to a description or a notes column.
How are DNP parts shown in each tool?
KiCad has a Do not populate attribute and a DNP field. Altium marks components Not Fitted per variant, and its BOM leaves them out by default or shows them with a Fitted column and a quantity of 0. Map whichever you get to one DNP column.
Can I send the raw export to an assembler?
Sometimes, but check it first. Raw exports often have missing manufacturer fields, library prefixes, coarse grouping or designator separators that clash with the file's delimiter.
Should the BOM have one line per designator or per part?
Per part is the usual choice for assembly: one line per distinct part with all its designators. The BOM formats guide covers the trade-off.
Which delimiter should I choose?
Comma is common, but designator lists contain commas, so quote the cells or use semicolons or tabs. Whatever you choose, open the file and check that the columns line up.
Keep reading
Related guides
BOM formats for PCB assembly
The columns assemblers expect, and consolidated versus per-designator rows.
MPN vs internal part number
Why a BOM needs both, and how to keep a mapping table.
DNP in a BOM
How to mark do-not-populate lines, and how they get read.