BOMParser

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.

By BOMParser. Published

Steps

Mapping an export

  1. Note the tool and version

    Menus and defaults change between releases. Record which version produced the file.

  2. Add the missing fields

    Add the fields or parameters that hold manufacturer, MPN and internal part number to the export.

  3. Check the grouping

    Grouped exports combine lines by the fields you choose. Make sure the grouping separates parts that differ in MPN.

  4. Choose delimiters on purpose

    Pick a file delimiter and a designator separator that do not collide, and quote cells that hold commas.

  5. Map each column

    Match every export column to one clean column, using the table below.

  6. 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 columnKiCad usuallyAltium usuallyWatch for
qtyQty or ${QUANTITY}QuantityGrouping decides what is counted
ref_desReferenceDesignatorRange delimiters and separators
part_numberA custom fieldA parameterNeither tool adds it for you
manufacturerA custom fieldA parameterBlank unless the library fills it
mpnA custom fieldA parameterThe Value is not an MPN
descriptionDescriptionDescriptionOften generic
footprintFootprintFootprintLibrary prefix before the name
dnp${DNP} or the attributeNot Fitted, or a Fitted columnFitted reads the other way round
notesA custom fieldComment, if used as a noteComment 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.