Free tool
BOM cost calculator (bill of materials)
Enter each component or sub-assembly row to get a rolled-up material cost, unit cost and batch cost, with the scrap convention you used stated alongside the answer.
Your bill of materials
| Component / sub-assembly | Qty per parent | Unit cost | Scrap % | Remove | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Rolled up below | N/A | |||||||||||||||||||||||
Sub-assembly labour per unit | ||||||||||||||||||||||||
Estimated unit cost
$19.78
- Material cost
- $16.58
- Labour + overhead
- $3.2
- Batch cost (500 units)
- $9,890.5
| Row | Cost | Share |
|---|---|---|
| Base | $5.5 | 27.8% |
| – Cast base | $4.2 | 21.2% |
| – Felt pad | $0.6 | 3% |
| – Screw | $0.2 | 1% |
| Arm | $3.26 | 16.5% |
| Shade | $2.4 | 12.1% |
| LED module | $3.88 | 19.6% |
| Cable and plug | $1.25 | 6.3% |
| Fasteners | $0.3 | 1.5% |
| Labour per unit | $2 | 10.1% |
| Overhead per unit | $1.2 | 6.1% |
Estimated rolled-up (standard) cost for a single-level BOM: a sub-assembly's own components and labour are rolled into its line, but a sub-assembly may not itself contain another sub-assembly.
The formula
Line cost (inflate convention) = quantity per parent × unit cost × (1 + scrap%)
Line cost (deflate/yield convention) = (quantity per parent × unit cost) ÷ (1 − scrap%)
Sub-assembly rolled cost = SUM(its own component lines) + its own labour
Sub-assembly line cost = quantity per parent × its rolled cost
Material cost = SUM(every top-level line cost)
Unit cost = material cost + labour per unit + overhead per unit
Batch cost = unit cost × batch size
- Quantity per parent
- How many of this component, or how many of this sub-assembly, one unit of the parent item consumes.
- Unit cost
- The purchase or standard cost of one unit of a component, before scrap is applied.
- Scrap %
- ASCM materials management recognizes two conventions for grossing up a required quantity to cover expected scrap loss. This calculator defaults to the "inflate" convention, quantity × (1 + scrap%), where scrap is added on top of the theoretical requirement. The alternative "deflate" or yield-based convention, quantity ÷ (1 − scrap%), grosses the requirement up further so the theoretical quantity still survives after scrap% of what is issued is lost; it is the harsher of the two for the same stated percentage. Both are offered as a toggle, and the result states which one it used.
- Sub-assembly
- A row that carries its own component rows and its own labour, one level deep. Its own component rows already carry their own scrap, so scrap is not re-applied a second time at the sub-assembly row itself.
- Labour per unit
- Direct labour to build one unit of the parent, outside any sub-assembly's own labour.
- Overhead per unit
- Allocated overhead per unit of the parent, added after material and labour.
- Batch size
- How many parent units are being built in this run, to turn a unit cost into a batch cost.
Worked example
- The Base sub-assembly rolls its own components and labour together: cast base $4.2 + felt pad 4 × $0.15 + screw 4 × $0.05 + labour $0.5 = $5.5.
- The Arm carries a 5% scrap allowance under the default "inflate" convention: 1 × $3.1 × (1 + 0.05) = $3.26.
- Summing every top-level line, rolled sub-assemblies included, gives a material cost of $16.58.
- Adding labour $2 and overhead $1.2 gives a unit cost of $19.78; a batch of 500 units costs $9,890.5.
When it applies
- Standard costing of a simple assembly with one level of sub-assemblies, where every component's quantity per parent and unit cost are known.
- Comparing the rolled unit cost against a selling price to check margin on a manufactured or assembled item.
- Seeing which rows carry the most cost, and by how much, through the per-row cost breakdown and its share of the total.
When it breaks down
- Multi-level BOMs deeper than one level of nesting are out of scope: a sub-assembly's own rows may not contain a further sub-assembly, so a component that is itself an assembly of assemblies needs its lower level rolled up first, outside this calculator.
- Routings with setup costs that depend on batch size are out of scope: this calculator's batch cost is unit cost × batch size, with no separate one-time setup term to spread over the run.
- Co-products, where a single process yields more than one saleable output and the cost has to be split between them, are out of scope: every cost here is attributed to a single parent item.
Common mistakes
Leaving out scrap and yield
A component that is often trimmed, dropped or fails inspection costs more per parent than its nominal quantity per parent suggests. This calculator applies a named scrap convention to every component row rather than assuming a 0% loss by default.
Omitting labour and overhead and calling material cost the product cost
Material cost only sums the component and sub-assembly lines. This calculator adds labour per unit and overhead per unit before calling the result a unit cost, and reports material cost separately so the two are never confused.
Using purchase price instead of landed cost for imported components
A component's unit cost here should already include freight, duty and other landed costs where the component is imported, or the rolled-up unit cost will understate what the parent actually costs to build. Use the landed cost calculator to get that figure first for any imported row.
Questions
What is a bill of materials in manufacturing?
A bill of materials, or BOM, is the complete list of components, sub-assemblies and quantities needed to build one unit of a parent item, including how many of each are required per parent. It is the structural input this calculator costs out; by itself a BOM lists quantities, not dollars.
What is a costed BOM?
A costed BOM adds a unit cost, and usually a scrap or yield allowance, to each line of a bill of materials so the quantities can be rolled up into a material cost. This calculator produces a costed BOM's material cost and, once labour and overhead are added, its full unit cost.
Does BOM cost include labour?
Not on its own. A BOM's material cost is the rolled-up cost of its components and sub-assemblies only. This calculator adds labour per unit and overhead per unit as separate steps after material cost, and reports material cost and unit cost as two different numbers so the two are never conflated.
BOM cost vs COGS: what's the difference?
BOM cost is a standard, forward-looking estimate of what one unit should cost to build, computed from a bill of materials before anything is made. Cost of goods sold is the actual, historical cost recognized against units already sold, which can include variances, scrap actually incurred, and period costs a standard BOM roll-up does not capture.
BOM vs parts list: what's the difference?
A parts list is often just an enumeration of what goes into an item, sometimes without quantities per parent or structure. A bill of materials is more formal: it states the quantity per parent for every line and, for an assembled product, which lines belong to which sub-assembly, which is what this calculator needs to roll a cost up correctly.
Related
Published by Skuvelo. Results are estimates computed from the figures you enter, not a reading of your own sales or stock.
A calculator answers once. Skuvelo keeps answering.
This tool computes one number from what you type. Skuvelo computes it continuously, for every SKU, from your own sales and stock.