Inventory Management

Manufacturing Bill of Materials (BOM)

Manage component lists and track materials needed for production with precision

Get this built around your data

✓ Free to download  ·  ✓ Excel 2016+ and Google Sheets  ·  ✓ Custom version in 24h

A bill of materials is a tree, and spreadsheets are flat. This template stores the parent-child relationship explicitly so multi-level assemblies roll up their cost correctly instead of being flattened by hand.

What the worksheet looks like

The actual columns, with sample rows

BOM sheet: one row per component per parent, with the level made explicit.
ABCDEFG
1ParentComponentLevelQtyUnit costExt. cost
2CHAIR-01FRAME-A1118.4018.40
3FRAME-ATUBE-25242.108.40
4FRAME-AWELD-KIT211.751.75
5CHAIR-01SEAT-PAD116.906.90

The formulas that do the work

Why each one is written the way it is

  • =[@Qty]*[@[Unit cost]] Extended cost per line. Kept as its own column rather than folded into the roll-up, so a wrong unit cost is visible at the line rather than only in the total.
  • =SUMIFS(BOM[Ext. cost], BOM[Parent], [@Component]) Sub-assembly cost. Pointing the parent lookup at the component column is what makes the tree roll upward one level at a time.
  • =SUMPRODUCT((BOM[Parent]=[@SKU])*BOM[Qty]*BOM[Unit cost]) Single-level cost of an assembly in one expression, useful for a quick check against the roll-up.
  • =IF(COUNTIFS(BOM[Component],[@Parent])=0,"Top level","") Flags finished goods — components that are never themselves a child. A part that should be top level and is not usually means a typo in a parent code.

Costing an assembly nobody had costed

A worked example with real numbers

A furniture maker priced a chair from the cost of its four visible parts and lost money on every unit. Expanding the BOM to two levels added the welding kit, fasteners and packaging that lived inside sub-assemblies — €11.30 a unit, about 9% of the sale price. The list price did not change; the discount authority did.

What is in the workbook

Tab by tab

Every tab in the workbook and what it is for.
TabContents
BOMParent, component, level and quantity — the whole structure.
PartsPart master with unit cost, supplier and lead time.
RollupFully exploded cost per finished item.
Where usedReverse lookup: every assembly a part appears in.
READMEHow to add a level and how the roll-up walks the tree.

Features and related templates

What is included, and what to look at next

What it does

  • Multi-level BOM structure
  • Component tracking
  • Material requirements
  • Cost calculation
  • Version control
  • Assembly instructions
  • Substitute parts
  • Inventory integration

Need it adapted?

  • Built around your own data and column names
  • Connected to your source system
  • Delivered within 24 hours

Questions about this template

Specific to this workbook, not generic

How many BOM levels does it handle?

Four by default, which covers most light assembly. Deeper trees work but the roll-up needs one extra step per level — beyond four or five, an MRP system is the right tool.

How do I find everywhere a part is used?

The Where-used sheet filters the BOM by component. It is the sheet you need the day a supplier discontinues something.

Does it handle scrap or yield loss?

Add a yield column and multiply the quantity by 1/yield. A 95% yield means you consume 1.053 units for every one that ships, and ignoring it understates cost on every line.

"This BOM template has transformed our production planning process. We now have complete visibility of our material requirements and can optimize our procurement efficiently."

- Kevin P., Manufacturing Manager