Private PCBA handoff check

BOM ↔ CPL Designator Cross-Checker

Compare the reference designators in a bill of materials and component placement list before release. Confirm the proposed columns, then review missing and extra placements, DNP conflicts, duplicate references, quantity errors, and footprint differences in one auditable report.

Step 1

Open the BOM and CPL

Bill of materials

No BOM file selected.

Component placement list

No CPL file selected.

Quoted fields and comma, tab, semicolon, or pipe delimiters are supported. Each table is limited to 100,000 data rows and 5 million characters. Spreadsheet files such as XLSX must first be exported as CSV.

Choose or paste both tables to begin.

Use the assembler’s upload preview and release process too. Matching text files cannot prove coordinates, rotation, polarity, pin one, part number suitability, panelization, feeder data, or whether a footprint is mechanically correct.

BOMs, placements, part values, and reports stay in this browser tab. Nothing is uploaded by ToolQuill.

How the cross-check works

The checker expands explicit grouped BOM designators such as R1, R2 and bounded ranges such as R1-R4, then joins the BOM and CPL by a case-insensitive reference designator. It reports a populated BOM reference missing from the CPL, a CPL reference absent from the BOM, duplicates in either file, a declared BOM quantity that differs from its listed references, DNP conflicts, and mapped footprint or value differences.

DNP and footprint rules stay visible

DNP is read only from the column you map. Headers such as DNP treat yes/true/1 as excluded; headers such as Populate treat no/false/0 as excluded. The checker does not guess DNP from a value or part number. Footprints are compared conservatively after trimming and case folding. The optional basename mode removes only a library prefix before the last colon; it does not claim two package names are physically equivalent.

Quantity checks

When quantity is mapped, each BOM row’s non-negative integer quantity is compared with the number of explicit designators on that row. The summary also compares unique populated BOM references with unique active CPL references. This is a one-board logical comparison: panel multipliers, build quantities, attrition, spares, consumables, and non-placed mechanical items are outside its model.

Validation boundary

This is a text-table reconciliation tool, not a manufacturing approval. It does not open XLS/XLSX workbooks, Gerbers, ODB++, IPC-2581, EDA projects, variants, or manufacturer databases. It does not infer missing mappings, part substitutions, footprint equivalence, or intended DNP state. A matched designator means only that the supported mapped evidence agrees.

Frequently asked questions

Why is a DNP part reported as present?

A normal placement row means the part is active unless you map an explicit CPL status column that marks it DNP. If your exporter includes excluded rows without a status field, remove them from the CPL or provide a status column before comparing.

Why is my grouped BOM row a single column?

Commas inside a CSV field must be quoted, for example "R1, R2". Otherwise each designator becomes a separate spreadsheet column. You can also use spaces or semicolons inside the mapped designator cell.

Does a clean result guarantee JLCPCB acceptance?

No. It narrows the designator and mapped metadata review only. File templates, parts, coordinates, rotation, side, origin, and the assembler’s own preview still need inspection.

Primary references

JLCPCB’s BOM requirements describe designator, quantity, comment/value, footprint, and part-number data. Its pick-and-place requirements define the designator and placement fields, while its BOM/CPL preparation guidance says each reference designator should appear only once in the BOM. The KiCad placement exporter source documents its exported Ref, position, rotation, and side headers.

Normalize and preview a CPL · Compare KiCad DRC reports · Browse electronics manufacturing tools