Business and Freelancing

Bill of Materials Cost Roll-Up Calculator

List your parts and prices, then the structure, and name the top assembly to get its cost.

Your numbers

Part name and cost for one unit, separated by a comma. Labor can be a part with an hourly or per-job cost. Example prices.

Parent, component, quantity per parent, and an optional scrap percent, separated by commas. Scrap raises the quantity you must buy: quantity / (1 - scrap).

Result

Cost of one Bicycle

$200.0158

8 purchased parts, 2 assemblies.

Cost of the top assembly
$200.0158
Costliest part
Frame ($85.00)
Flat list adds up to the same cost
Yes

Flat list of purchased parts

PartQuantity to buyUnit costCostShare
Frame1$85.00$85.0042.5%
Wheel2$22.50$45.0022.5%
Assembly labor1$18.00$18.009%
Tire2$9.00$18.009%
Handlebar1$14.00$14.007%
Saddle1$11.00$11.005.5%
Chain1$7.50$7.503.7%
Bolt12.6316$0.12$1.51580.8%
Total$200.0158100%

Cost of each assembly (one unit)

AssemblyCost
Wheel assembly$31.50
Bicycle$200.0158
How this was calculated
  1. Start at the top assembly and walk down. A component’s needed quantity per parent is quantity / (1 - scrap), because scrap means more has to be bought than ends up in the product.
  2. A part’s cost is its unit cost. An assembly’s cost is the sum over its components of needed quantity x component cost.
  3. The flat list multiplies the needed quantities down every level and adds the same part wherever it appears. Its total must equal the roll-up, which is shown as a check.
  4. A loop in the structure, a missing price or a name that is both a part and an assembly stops the calculation with a message.
  • Prices, quantities and scrap rates are the numbers you typed. Overhead, setup costs, volume discounts and tooling are not included unless you add them as parts.

Calculated using SumPanda.com · https://sumpanda.com/bom-cost-rollup-calculator/

Results are estimates for general information. Verify important figures before relying on them.

Next step

How to use the bill of materials cost roll-up calculator

  1. List the purchased parts with the cost of one unit. Labor can be a part too, with a cost per job or per hour.
  2. List the bill of materials: parent, component, quantity per parent, and an optional scrap percent, separated by commas.
  3. Type the name of the top assembly you want to cost.
  4. Read the cost, the flat list of purchased parts with their shares, and the cost of each assembly.

Formula

needed quantity of a component per parent = quantity / (1 - scrap)

cost of a part = its unit cost

cost of an assembly = sum over its components of needed quantity x cost of the component

flat list: multiply the needed quantities down every level and add repeats of the same part

Scrap means some of what you buy is wasted, so more must be bought than ends up in the product. With 5% scrap you buy 1 / 0.95 = 1.0526 for every unit that is used.

A bicycle

In the sample, a wheel assembly is one wheel at $22.50 and one tire at $9.00, so it costs $31.50. The bicycle uses a $85.00 frame, 2 wheel assemblies ($63.00), a $14.00 handlebar, an $11.00 saddle, a $7.50 chain, $18.00 of assembly labor and 12 bolts at $0.12 with 5% scrap.

The bolts need 12 / 0.95 = 12.6316 to be bought, which costs $1.5158. The total is $85 + $63 + $14 + $11 + $7.50 + $18 + $1.5158 = $200.0158. The flat list adds the same totals by part, and the page confirms the two methods agree.

Multi-level structures

A product is often made of sub-assemblies, which are made of parts. Costing from the bottom up avoids double counting: each assembly is costed once and then reused wherever it appears. The page also builds the flat list, which shows how many of each purchased part the whole product needs and which parts drive the cost.

The names are matched without regard to case. A name that is a part cannot also be an assembly, a component with no price and no components is reported, and a loop, where an assembly contains itself, stops the calculation with the path of the loop.

What is not in the cost

Only the parts and labor you list are costed. Overhead, setup costs, tooling, freight and volume discounts are not included unless you add them as parts. Scrap is applied at the line where you enter it, so the same part with different scrap in different assemblies is handled correctly.

Turn the unit cost into a price with the Profit Margin Calculator, find the volume that covers fixed costs with the Break-Even Calculator, or compare against the COGS Calculator.

Assumptions and limits

  • Costs are in one currency, with 4 decimal places shown. Quantities may be fractions.
  • Scrap must be at least 0 and under 100 percent.
  • The lists are limited to 500 parts and 1,000 bill of materials lines.
  • Prices, quantities and scrap rates are the numbers you typed and have not been checked against suppliers.
  • Nothing typed here leaves your browser.

Formulas reviewed October 10, 2026. See the calculation methodology for how SumPanda rounds, tests and sources its formulas.

Frequently asked questions

How is scrap different from yield?

Scrap is the share lost. Yield is the share kept. A 5% scrap rate is a 95% yield, and the quantity to buy is the required quantity divided by 0.95.

Can the same part appear in several assemblies?

Yes. Its quantities are added together in the flat list, and each assembly that uses it counts its own use. The totals still agree with the roll-up.

What does the loop message mean?

Some assembly includes itself, directly or through other assemblies, so its cost would depend on itself. The message shows the chain so you can find the wrong line in the list.

Why do prices show four decimals?

Scrap and small parts create fractions of a cent. The page keeps up to four decimals so that a cost that depends on many small parts is not rounded away.