So you wanna get your PCB assembled…

Preparation

Make an ActiveBOM. It’ll make life easier.

Cost Optimization

In general, you pay a little per component, a lot per part number. The pick and place machines have a finite amount of reels, and it costs time to have them replaced, so a high-P/N board will cost much more than a board with similar number of components, but fewer P/Ns. Sometimes this is unavoidable, but there are some tricks to help with this:

There are two types of costs: setup costs and assembly costs. Setup costs are per design and cover things like reeling, stencil, engineering, etc. Assembly costs are per board and cover the actual BOM, machine time, etc. This can mean that some boards have a high setup cost and low assembly cost (expensive to make one, cheap to make more) and others the opposite (cheap to make one, expensive to make many). While the cost of, for example, 3 boards may seem high, it could just be due to setup costs, and assembling two more may be very inexpensive as a result.

Variants

If you want to have some components not installed/placed, then you will need to use Altium’s Variants feature. Create a new variant named something like “Default” and then go though your schematics and DNP the components that you want non-populated.

I like to use this for what I expect to not want installed in the final product rather than what I want the assembly house to install, since then it documents what the state as-tested will be (padshares, component swaps, etc).

LCSC Part

If ordering from JLCPCB, consider pre-selecting LCSC part numbers to make the final selection of parts go way smoother. This also saves the decisions made into version control, so in the future it’s easier to see what decisions were made.