Normalize the currency before ranking anything

Distributors do not quote in the same currency: for one part you may get USD from one and HKD from another. Sort by the raw number and HKD 0.5 lands ahead of USD 0.5 — a cheapest that is purely an artifact of the currency. There is only one fix: convert everything at the current rate before comparing, and show the original price and the rate used next to the result, because that is the evidence for how the USD figure was reached.

Price breaks: check which tier you can actually buy

Components are priced in quantity tiers. Taking the lowest unit price is easy, and that tier often starts at several thousand pieces. Quote it to a customer who needs 200 and you have quoted a number they cannot buy. The right order is: find the tier that covers this line quantity, and only fall back to the lowest tier when nobody has enough — with the minimum order quantity stated next to it.

A price with no stock behind it is worthless

Quoting something unbuyable is worse than quoting nothing: the customer orders against it and the delivery date arrives with no goods. So suppliers with zero stock are excluded from comparison. If nobody has stock, the line stays unpriced, with each supplier stock level and reference price recorded in the note plus a suggested next step — wait for the lead time, change the package, or approve an alternative; that call is the customer to make.

One detail matters here: a missing stock figure is not zero. Treating unknown as zero kills off suppliers that were actually usable, so unknown is its own tier: after in stock, before out of stock.

The part number you get back may not be the one you asked for

Search by part number and distributors will happily widen the match: ask for NE555P and get NE555PWR, ask for LM358N and get LM358N/NOPB. Those may be a different package or temperature grade, and only the person who designed the board can approve a substitution. In the worst case the API returns an entirely unrelated neighbouring part.

Hence a hard rule: quote exact part numbers only (equal once separators are stripped). No exact match means no price, and close matches are listed separately as something for you to confirm.

What these rules add up to

Your quote will have a few fewer priced lines — some stay honestly blank, with the reason attached. But every line that remains is one you can order today.

For the design half of the job, see how an AI actually draws a PCB inside Altium and KiCad.

Run it yourself Pricing needs no account; AI design needs one local connector.

Start BOM quoting