How to Calculate Total BOM Cost in NetSuite
NetSuite has a built-in BOM cost report, but it only works under standard costing. Here is how to get total BOM cost on average or FIFO instead.

On this page
Your predecessor's spreadsheet system dies with them. You now need the total cost of a bill of materials without maintaining hundreds of Excel files. The good news: NetSuite has a built-in report that does this. The catch: it only works with standard costing. If you run average costing, the native report returns nothing useful.
Here's the fix, and it's simpler than rebuilding that spreadsheet empire.
Why the Built-In Costed BOM Report Fails
The native report at Reports > Cost Accounting > Costed Bill of Materials requires standard cost on your items. When you open it with average cost items, you get blank or zeroed-out costs. That's the dead end you hit.
The reason is in how NetSuite structures the report. It pulls from the standard cost engine, which only populates when you run standard cost updates. Average cost items store their value differently, so the native report has nothing to read.
The SuiteApp That Fixes It
Oracle publishes a free SuiteApp called Costed Bill of Materials that extends this report to work with average cost. Install it from the SuiteApp marketplace, and the same report path suddenly works. The Manufacturing Guide confirms the SuiteApp calculates total cost based on a BOM revision, manufacturing routing, and cost templates, adding up component costs.
Here's the setup:
- Go to Reports > Cost Accounting > Costed Bill of Materials
- Select your Subsidiary from the dropdown
- Pick the Assembly Item you want to cost
- Choose the Location if you track costs by location
- Set the Build Quantity (defaults to 1)
- Select the BOM Revision and Effective Date
- Click Refresh
The report then shows the full cost explosion. You get total material cost, assembly cost, labor setup, machine run times, and the unit cost per assembly. The Item Record Management Guide explains that the sum of cost across cost categories generates total item cost, which is exactly what this report surfaces.
The Dropdown That Solves Your Price Problem
Here's the part that directly addresses your situation. The report has a Cost Type dropdown. You're not stuck with average cost.
The options include:
| Cost Source | What It Uses | When To Use It |
|---|---|---|
| Item Cost | Average cost from inventory valuation | When you want what actually hits the books |
| Purchase Price | The purchase price field on the item record | When you want current procurement estimates |
| Last Purchase Price | Most recent PO price | When you want the last actual paid amount |
Your predecessor manually updated base price, purchase price, and vendor price. The SuiteApp pulls purchase price directly from the item record. That eliminates the manual Excel lookup entirely.
The Base Price Problem
Your team sells using base price, which they set at the highest last purchase price plus a margin. The SuiteApp won't give you that number directly, because base price is a sales-side field, not a costing field.
But you don't need a spreadsheet for this. Here's the workflow:
- Run the Costed BOM report using Purchase Price as the cost source
- Export the result to CSV. The report supports this via the printer icon at the top of the inquiry page, which exports to Excel or CSV
- Apply your percentage markup in the CSV or a pivot table
That's one file instead of hundreds. And if you want to eliminate the export step entirely, you can add a custom formula field or saved search that multiplies the purchase price by your markup percentage.
Worked Example: The 3.5 Quantity Gotcha
The report multiplies component unit cost by the BOM quantity. If a component costs $0.27 and the BOM calls for 3.5 units, the report shows $0.945 for that line. That seems obvious, but it trips people up when they verify against item records.
The item record shows $0.27. The BOM shows $0.945. Both are correct. The component's on-hand, on-order, and backordered quantities display on the item record and match the inquiry. The difference is the multiplier.
When you're validating the report against your old Excel sheets, check this first. If your predecessor's spreadsheet had a formula error here, the SuiteApp will expose it. That's a feature, not a bug.
What About the "We're Losing Money" Argument?
Your team thinks average cost understates what they should charge. They're using base price because they believe it reflects replacement cost. That's a pricing strategy question, not a costing one.
The SuiteApp gives you both numbers side by side. Run it once with Item Cost and once with Purchase Price. The difference between those two is your margin risk. If purchase price is consistently higher than average cost, your team is correct that average cost understates replacement cost. If they're close, you're fine.
One caveat: the SuiteApp report reflects what's in NetSuite. If purchase prices on item records are stale, the report is stale. You still need someone to maintain those fields. The SuiteApp eliminates the spreadsheet maintenance, not the price data entry. The Item Record Management Guide notes that average costing is the default method, and your inventory reports reflect whichever costing method you choose.
The 30-40 Hour Win
Your example showed a $614 average cost, $621 last purchase price, and $678 list price. With the SuiteApp, you get the first two automatically. The third is a markup calculation.
The percentage adder approach works if your markup is consistent across items. If your predecessor was applying different margins per BOM, you'll need to document those before you kill the spreadsheets. Run the report with purchase price, apply the historical margin, and compare against the old Excel outputs for a few items. Once they match, you can retire the spreadsheets.
This won't replicate the exact methodology if your predecessor was using judgment calls. But it will get you 90% there with 5% of the effort. For the remaining 10%, you're better off with a documented pricing policy than an undocumented spreadsheet that only one person understood.
If you need to handle multiple price lists or customer-specific pricing on top of this, a price management tool becomes worth the cost. For a single base price with a markup, the SuiteApp plus a calculation column gets the job done.


