All handoff guides

Handle DNP without hiding mismatches

An intentionally unpopulated component is different from a populated component missing from the placement file. Make that distinction with an explicit population column. Assembly Handoff Check never infers DNP from a part description, footprint, quantity alone or a filename.

The BOM identifies components against the board design; JLCPCB's BOM guide describes that association. Population decisions in this tool are a local convention that you must translate into the receiving factory's workflow. Source: JLCPCB BOM guide.

A zero quantity is not enough

Designator,Quantity,Populate
R1,1,yes
J1,0,DNP

Here R1 is populated and J1 is excluded. If J1 has no placement, that absence is expected and creates no missing-placement issue. If J1 still appears in the CPL, the checker emits a warning linked to its placement line. It keeps the original row because some assembly workflows export placements for every board footprint.

The warning asks you to confirm the exclusion in the actual assembly package. It cannot decide whether the manufacturer will ignore the row. Delete or filter an input only after understanding the assembler's requirements and preserving the original export.

Use the supported population vocabulary

IntentAccepted values
ExcludedDNP, DNI, no, false, 0, unpopulated, not fitted
Populatedyes, true, 1, fit, populated, blank

Values ignore capitalization and surrounding whitespace. Blank means populated, so a missing exclusion flag cannot silently remove a part. Unknown values such as optional or maybe create a blocker and are treated as populated for the remaining checks.

A column named DNP often means true = do not populate, the opposite of this tool's Populate Boolean convention. It is deliberately not auto-mapped. Convert it to an unambiguous Populate column first: original DNP=true becomes Populate=DNP, and original DNP=false becomes Populate=yes. Do not map it directly without converting its meaning.

Keep quantity checks per board

A populated row needs a positive integer equal to its listed reference count. A DNP row may use zero or the number of listed references. For example, J1 J2,0,DNP and J1 J2,2,DNP are both supported. A quantity of 1 for that two-reference row remains a mismatch. Order quantities multiplied by the board batch size do not belong in this per-board check.

Review one variant at a time

For two assembly variants, run two separate checks with matching variant exports. Do not combine populated and DNP rows for the same reference: that creates a duplicate BOM reference and leaves contradictory intent. The checker preserves the first entry for totals and reports the duplicate as a blocker, so the conflicting file cannot receive a clean result.

If you leave population unmapped, every BOM reference is treated as populated and a warning states that population was not checked. Read the reference-matching guide for source-line review.