Chris Collins

Tools · electronics

JLC assembly parts check

Check a KiCad BOM, JLCPCB BOM or schematic against JLCPCB's parts library before you order assembly: Basic, Preferred or Extended for every LCSC number, stock against what N boards need, the parts cost at the right price break, the feeder loading fee for Extended parts, missing LCSC numbers, Basic stand-ins for Extended resistors, capacitors and LEDs, and a fixed JLCPCB BOM to upload.

Added

Works with

How to use it

JLCPCB’s assembly quote only tells you about Extended parts and stock at the end of the order. I wanted to know before that: which of my parts cost a loading fee, whether a Basic part would do, and what the parts come to for the number of boards I want. This page reads the BOM in your browser and asks jlcsearch, a free index of JLCPCB’s library, about each LCSC number.

How to use it

  1. Open a BOM or the schematic. It reads KiCad’s BOM CSV (kicad-cli sch export bom, the legacy plugin), a JLCPCB BOM (Comment, Designator, Footprint and LCSC or JLCPCB Part #), the KiCad BOM rollup's CSV, or the .kicad_sch files themselves (choose the root and its sub-sheets together). LCSC numbers come from a field or column called LCSC, LCSC Part, JLC or JLCPCB Part #. The file stays in this browser. Schematic from the viewer takes the project last opened in the KiCad schematic viewer (its JLC check → button opens this page that way). Sample board loads an ESP32-S3 board with USB-C.

  2. Set the number of boards and the PCBA service. Economic PCBA charges a feeder loading fee for each unique Extended part. Standard PCBA charges it for every unique part. The figure is editable.

  3. Look up asks jlcsearch about every LCSC number, one at a time. Each line then shows:

    • Basic, Preferred (Preferred Extended) or Extended, and the package;

    • what you need (quantity per board × boards) against the stock, and how many boards the stock covers;

    • the unit price at the price break for that quantity, and the line total.

      At the top: the parts cost, the loading fee, the two together and per board, how many unique parts are Basic, Preferred and Extended, and how many boards the stock allows (and which part limits it).

  4. No LCSC number lists the parts JLCPCB will not place. Type an LCSC number in the table to add or change one.

  5. Basic alternatives appears on Extended resistors, capacitors, LEDs and diodes. It searches for Basic parts of the same value and package (capacitors at the same voltage or higher; a worse tolerance or a different dielectric is noted and sorted last). Use C… swaps it into the BOM. That saves the loading fee for the part. Check the datasheet before you swap anything that matters.

  6. Export: the JLCPCB BOM CSV (Comment, Designator, Footprint, LCSC) with your changes, ready to upload with the placement file from the pick-and-place file fixer, or the whole check as a CSV.

Answers are kept in this browser for three days, with the time they were fetched. Refresh all asks again.

The fees

From JLCPCB’s assembly price page (last updated October 22, 2026; checked November 3, 2026):

Service Feeder loading Charged for

Economic PCBA

$3.07

each unique Extended part. Basic parts are already loaded. Preferred Extended parts are exempt (JLCPCB’s assembly FAQ).

Standard PCBA

$1.53

each unique part, Basic or Extended

JLCPCB changes these. Type your own figure if your quote says otherwise. The setup, stencil and solder-joint charges are not included here; they don’t depend on which parts you choose.

Where the data comes from

jlcsearch is tscircuit’s open, keyless index of JLCPCB’s parts. The page asks it directly from your browser: /components/list.json?search=C25804 for a part, and /resistors/list.json, /capacitors/list.json and /components/list.json with a package and is_basic=true for alternatives. It sends CORS headers, so no relay is needed. Only LCSC numbers, values and packages are sent, never your file.

If jlcsearch can’t be reached (it is down, overloaded, or a network policy blocks it), the page says so. Then Paste parts data takes figures you have from elsewhere: CSV with an LCSC column and any of Library Type, Stock, Price (one figure, or breaks like 1-9:0.99,10-:0.90), Package, Description and MFR, or jlcsearch’s JSON. The gitwebsite app’s companion has no relay for jlcsearch. Its HTTP relay only reaches a fixed list of services.

The sample’s figures are a jlcsearch snapshot from November 3, 2026, so the example works offline. Refresh all fetches current ones.

Limits

  • jlcsearch is unofficial and lags JLCPCB. It has no stock figure for many Basic parts (they show as no stock figure and don’t limit the board count), and its prices are JLCPCB’s list prices in USD. JLCPCB’s order page is the final word.

  • jlcsearch is sometimes overloaded. The page waits and retries a few times, then tells you to try again.

  • Alternatives are matched on value and package. Resistor tolerance and capacitor voltage and dielectric are compared where jlcsearch gives them; resistor power is not. LED colors are matched by name. Diodes are matched on package and kind only, so check the ratings.

  • Parts with the same LCSC number on several lines are one loading fee, as JLCPCB counts them.

  • Through-hole parts, hand-soldered parts and consigned parts are treated like any other line.

  • Reading a schematic needs it annotated (no R?). Power symbols are skipped. DNP parts need nothing.

Related: KiCad BOM rollup (Digi-Key prices and your stock), pick-and-place file fixer (the CPL and JLCPCB BOM), KiCad schematic viewer, Parts inventory, Gerber viewer and DFM check.

Linking to an example

Share link copies a URL with the boards, service and fee figures. It never includes your BOM.

Parameter Meaning

boards

Boards to build

assembly

economic or standard

feeEco, feeStd

Feeder loading fee per part, USD, for each service

example

A preset (below)

Runs entirely in your browser — network requests go only to the services named on this page.