BOMParser

Guide

DNP (do not populate) in a BOM: how to mark it and how assemblers read it

DNP means do not populate: the footprint is on the board, but no part is fitted in this build. Mark it with a dedicated column holding Y or N, keep the line and its designators in the BOM, and leave the quantity out of purchase totals, so the assembler leaves the pads empty and nobody orders the part.

By BOMParser. Published

Steps

Marking a DNP line

  1. Decide the build

    List which parts are unfitted in this build or variant: options, test-only parts, spare footprints.

  2. Add a DNP column

    One column, two values: Y for do not populate, N for populate. Do not mix a column with wording in other cells.

  3. Keep the line and its designators

    The part stays in the file so the next revision still has it. Say why in the notes.

  4. State the quantity rule

    Either qty equals the designator count on a DNP line, or it is 0 with the designators listed. Write the rule down and keep to it.

  5. Leave DNP out of buys and costs

    Purchase totals, cost rollups and kit lists skip lines marked Y.

  6. Ask how the assembler reads it

    Confirm which marking their process uses before the first build.

Reading

How assemblers read a DNP mark

There is no universal rule, so do not depend on one. Import tools usually look for a dedicated column named DNP, DNI or Fitted. People reading a quote look for the words in the description or notes. A quantity of zero is read by some systems as not fitted and dropped by others. Colour and strikethrough are lost the moment the BOM becomes a CSV or a PDF printout.

Pick one marking and use it everywhere in the file. A column plus a note is safe; a column that contradicts a note is not.

Wording

Words, look-alikes and inverted columns

DNP, DNI, DNF, NF, NP and no-pop all mean the same thing. Choose one. Beware NF: a case-insensitive text search for it also matches 100nF, so a script that looks anywhere in a description will mark capacitors as unfitted. Match whole words, in a dedicated column.

A Fitted or Populate column works the other way round: N there means do not populate. Read the header before the value.

Variants

One board, several builds

A board often ships in more than one build: a base unit, one with a wireless module, one with extra test parts. There are two common ways to describe them. Keep one BOM per variant, or keep one BOM with a DNP column for each variant. One file per variant is clearer for an assembler and for a quote. One shared file is easier to keep in step with the design. Either way, name the variant in the file name and in the revision log, so that a quote ties to a single build; see BOM revision control.

Comparison

Ways to mark DNP

MarkingSurvives CSVRisk
DNP column, Y or NYesLowest. Machine-readable, one meaning.
DNP in description or notesYesSeen by eye, missed by import tools. A text search for NF also hits 100nF.
Quantity 0, designators listedYesSome systems drop zero-quantity rows, some keep them. The intent is implicit.
Row deletedYesThe footprint has no part, and the next reader cannot tell omission from intent.
Strikethrough or colourNoLost in CSV and in PDF text. It is formatting, not data.
Separate BOM per variantYesClear for each build. More files to keep in step.

Pitfalls

What goes wrong

  • Ordered anyway. A total that sums every line buys the DNP parts too.
  • Placed anyway. A colour was the only marker, and it did not survive the export.
  • Inverted columns. A Fitted column holds N where a DNP column would hold Y.
  • A false duplicate. A DNP alternate shares a designator with the fitted part. That is legitimate, but a plain duplicate-designator check flags it. See alternate and substitute parts.
  • Pads left unspecified. The footprint still exists, so paste data may still cover its pads. Tell the assembler what should happen to them.

The tool

How BOMParser helps

BOMParser reads a DNP, DNI, Do Not Populate or Not Fitted column, reads Fitted and Populate columns the other way round, and also catches DNP wording in description, notes, quantity and designator cells. A DNP line stays in the CSV with dnp = Y, is left out of the part totals and the upload CSV, and still has its designator count checked: it ties at the listed count or at 0. It matches whole words, so 100nF is not read as unfitted. 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

DNP questions

What does DNP mean on a BOM?

Do not populate: the part has a footprint on the board but is not fitted in this build. DNI (do not install) and DNF (do not fit) mean the same thing.

Should DNP lines stay in the BOM?

Yes, flagged. The footprint is on the board and a later revision may fit the part. Deleting the row loses that history and invites questions from the assembler.

Should a DNP line have a quantity of 0 or the designator count?

Either, if you state the rule and apply it to every DNP line. The designator count keeps the arithmetic check working; zero keeps naive totals correct. Pick one.

Does the assembler buy DNP parts?

It should not. Purchase and cost totals skip lines marked DNP, but confirm that your assembler's quote does the same.

How do I handle assembly variants?

Use one DNP column per variant, or one BOM per variant. Name the variant in the file and in the revision log, so a quote ties to a single build.

Is colouring or striking out a row enough?

No. Formatting disappears in CSV and in PDF text. Put the mark in a column that holds a value.

Keep reading

Related guides

Reference designators explained

Prefixes, ranges, and what a designator count proves.

Alternate and substitute parts

Recording alternates without breaking the count.

BOM for assembly quotes

What a quoting team needs to price a build.