Do not populate and exclude from BOM answer different questions. The first expresses assembly intent for a position; the second controls whether an item appears in a particular material list. Treating them as interchangeable can make a real component disappear from purchasing or make an unpopulated option look mandatory.

Define the meaning of each flag

KiCad 9’s schematic BOM documentation describes DNP and BOM-exclusion controls separately, with export visibility affected by the selected options. Review those controls in the actual exporter, including any custom script or preset used by the project.

Create a small reference list covering populated components, optional unpopulated positions, mechanical-only items, and schematic symbols that do not represent a purchased component. State why each item should appear in purchasing, placement, assembly drawings, and engineering review outputs. A single Boolean column rarely captures all four purposes.

Check a configuration across outputs

  • Freeze the assembly variant and its revision.
  • Inspect each exceptional item’s native flags.
  • Export the BOM using the saved production preset.
  • Compare its membership and DNP indication with placement and drawings.
  • Review whether downstream import removes or reinterprets any rows.

The variant paste-output check addresses another consequence of population decisions. Hiding a BOM row does not establish whether a stencil aperture should exist. Likewise, a crossed-out drawing symbol does not guarantee that the purchasing export omits the item.

Use explicit exceptions

For example, a commissioning header may remain in the schematic and board but be absent from the production assembly. Keeping it visible as DNP in an engineering BOM can aid review, while a procurement BOM may omit it. Both outputs can be correct if their purposes and variant identities are clear. A file simply called BOM without that context invites conflicting interpretations.

Conversely, a populated connector excluded from the BOM because an engineer once used it as a mechanical placeholder is a purchasing omission. Investigate the native flag rather than manually adding a line to every generated spreadsheet. The instance-parameter review helps prevent later library updates from undoing an intentional correction.

Close the check with a reference-by-reference exception list, not only a total quantity. Retain the exporter preset and verify it after software migration. Correct native intent and correct export selection are both required to produce a trustworthy assembly list.

Move from reading to a build-ready project

Use the fabrication and assembly checklists to prepare drawings, production files and test requirements.

Open the DFM checklist