Guide
BOM cost rollup in Excel: unit cost, price breaks and NRE
A BOM cost rollup multiplies each line's quantity per board by the number of boards, looks up the unit price at that order quantity, skips DNP lines and sums the result. Add one-off NRE once, then divide by the boards. The price-break lookup must use the order quantity, not the quantity per board.
Steps
Building the rollup
Lay out the sheet
One row per BOM line: internal PN, description, quantity per board, DNP, order quantity, unit price and line cost. Keep the number of boards in one input cell.
Compute the order quantity
Quantity per board times boards. Prices break on what you buy, not on what one board uses.
Look up the unit price
Store each part's price breaks beside it and look up the order quantity, with a fallback for orders below the first break.
Zero the DNP lines
Line cost is 0 when the DNP flag is Y, whatever the price cell holds.
Sum, then add NRE once
Material is the sum of the line costs. Add one-off charges once and divide the total by the boards.
Cross-check
Rebuild the material total a second way and compare it with the first.
Method
Price breaks and the order quantity
A price break is a unit price that applies from a stated quantity upward. The quantity bought on the line picks the break, so the lookup runs on the order quantity. Overage and minimum orders change that quantity first; see quantity per board vs order quantity.
Store each part's breaks in a row, with ascending break quantities in a header row above. One possible layout: boards in B1, break quantities in H2:J2, prices in H4:J9, lines in rows 4 to 9, the summary in G10 to G14, and the NRE figure typed into G11.
E4 =C4*$B$1
F4 =IFERROR(LOOKUP(E4,$H$2:$J$2,H4:J4),H4)
G4 =IF(D4="Y",0,E4*F4)
G10 =SUM(G4:G9)
G12 =G10+G11
G13 =G12/$B$1
G14 =SUMPRODUCT((D4:D9="N")*E4:E9*F4:F9)LOOKUP returns the price for the largest break not above the order quantity, so the breaks must ascend. Below the first break it gives #N/A, which IFERROR replaces with the first price. Where available, =XLOOKUP(E4,$H$2:$J$2,H4:J4,H4,-1) does the same job. G14 re-derives the material total and should equal G10.
Method
NRE and one-off charges
NRE (non-recurring engineering) means one-off charges such as a stencil, a test fixture or set-up; your assembler's list will differ. Add them once, outside the unit prices, then divide by the boards to see their weight per board. Reel or cut-tape fees, shipping and tax also sit outside the unit price. Labour is a separate part of a quote; see BOM for assembly quotes.
Worked example
Worked rollup for 100 boards
Every price and the NRE figure are invented for illustration, not quotes.
| Part | Per board | Order qty | Breaks 1+ / 100+ / 1000+ | Price used | Line cost |
|---|---|---|---|---|---|
| CAP-0001, 0.1 µF 0402 | 12 | 1,200 | 0.0200 / 0.0120 / 0.0090 | 0.0090 | 10.80 |
| RES-0001, 10 kΩ 0402 | 20 | 2,000 | 0.0100 / 0.0060 / 0.0040 | 0.0040 | 8.00 |
| IC-0001, MCU, LQFP-48 | 1 | 100 | 4.50 / 3.40 / 2.90 | 3.40 | 340.00 |
| CON-0001, USB-C receptacle | 1 | 100 | 0.85 / 0.62 / 0.50 | 0.62 | 62.00 |
| LED-0001, green, 0603 | 2 | 200 | 0.080 / 0.045 / 0.030 | 0.045 | 9.00 |
| JMP-0001, 0 Ω jumper 0402 (DNP) | 1 | 100 | 0.0100 / 0.0060 / 0.0040 | 0.0060 | 0.00 |
| Material | 429.80 | ||||
| NRE, one-off | 175.00 | ||||
| Total, 100 boards | 604.80 | ||||
| Per board | 6.048 |
Not financial or accounting advice.
Pitfalls
What goes wrong
- Lookup on the wrong quantity. Using the quantity per board puts every line on the 1+ break. In the table above that lifts material from 429.80 to 595.00, about 38% more.
- Unsorted breaks. LOOKUP assumes ascending order and can return a wrong price without any error.
- Priced DNP lines. A DNP line still carries a quantity and a price. Zero its cost in the formula; see DNP in a BOM.
- Numbers stored as text. Prices pasted from a web page may be text. SUM skips them and a lookup against them fails.
- Stale prices. Prices move and quotes expire. Record the source and the date beside each price.
- Filtered totals. SUM still adds rows that a filter has hidden.
SUBTOTAL(109,G4:G9)leaves them out.
The tool
How BOMParser helps
BOMParser does not look up or hold prices. It supplies the starting point: each line's quantity, part number, manufacturer, MPN and DNP flag in fixed columns, with every quantity checked against its designator count. The XLSX download holds values only, with no formulas, so build the rollup in your own sheet; extra columns such as a price appear only in the JSON export. For the spreadsheet route see PDF BOM to Excel, or convert a file on the BOM to CSV page. Pricing lists the plans. Free: 1 file per day, up to 10 pages, no account. Files over 10 pages are converted up to page 10 on the free allowance; a page code converts the whole file, up to 150 pages.
FAQ
BOM cost rollup questions
How do I calculate BOM cost in Excel?
Multiply quantity per board by the boards to get the order quantity, multiply by the unit price at that quantity, zero the DNP lines and sum. Add one-off NRE once, then divide by the boards for a per-board figure.
What is a price break?
A unit price that applies from a set quantity upward, such as one price from 100 pieces and a lower one from 1,000. The break follows the quantity bought on the line, not one board's usage.
Which Excel function looks up a price break?
LOOKUP over ascending break quantities, or XLOOKUP with a match mode of -1 where available. Both pick the largest break not above the order quantity. Wrap it in IFERROR for orders below the first break.
How do I leave DNP parts out of the total?
Keep a DNP column and make the line cost zero when it holds Y. A SUMPRODUCT or SUMIFS on the same flag gives an independent total to compare against.
What is NRE in an assembly quote?
Non-recurring engineering: one-off charges such as a stencil, a fixture or set-up, paid once whatever the quantity. Add it once to the total, then divide by the boards to see its weight per board.
Why does my rollup differ from the assembler's quote?
Common causes: a different quantity basis, overage or minimum-order rounding, a different price date, a priced DNP line, and labour or set-up that a parts-only rollup leaves out.
Keep reading
Related guides
Quantity per board vs order quantity
Panels, attrition and MOQ between the BOM and the order.
BOM for assembly quotes
What a quoting team needs to price a build.
MPN vs internal part number
Why a BOM needs both, and how to keep a mapping table.