Discrete Manufacturing
ERP
Manufacturing
Material Requirements Planning
Bill of Materials Template: Single-Level and Indented BOM Formats for Manufacturers

Last updated: October 11, 2026 · Independent guide · We do not sell rankings or coverage.
A bill of materials template for a manufacturer needs more than a parts list with costs. To load cleanly into an ERP or MRP system, each line must name the parent item and its revision, the component, the quantity per one parent unit, the unit of measure, a scrap factor and a flag that marks phantom subassemblies. Below you will find a single-level and an indented (multi-level) bill of materials template with those fields, an illustrative cost roll-up, the spreadsheet errors that break imports, and how the same columns map into Microsoft Dynamics 365 Business Central, Oracle NetSuite, Katana and MRPeasy.
How to use this template
Copy the column specification into the first row of a spreadsheet, then paste the sample rows from the CSV blocks and replace them with your own items. Keep one row per parent-component relationship, and enter quantities for one unit of the parent, not for a batch. Create every item number in your item master before you build the BOM, because Katana and MRPeasy both reject BOM lines whose items do not already exist (Katana Support, August 26, 2026; MRPeasy user manual, no date shown).
Single-level bill of materials template
A single-level BOM lists only the direct components of one parent; each subassembly has its own. Most ERP import tools expect this structure, so keep it as your master record.
| Column header | What to enter | Example | Required for ERP import? |
|---|---|---|---|
| Parent Item | Item number of the product or subassembly being built | SH-100 | Yes |
| Parent Revision | Revision code of this BOM, plus an effective date column if your ERP uses dated versions | C | Yes if you use versions |
| Line No. | Sequence or find number, in steps of 10 so you can insert lines later | 30 | Recommended |
| Component Item | Item number exactly as it appears in the item master | RM-1010 | Yes |
| Description | Reference only; the ERP pulls the description from the item record | Steel sheet 16 ga CR | No |
| Quantity Per | Net quantity for one unit of the parent, before scrap | 3.2 | Yes |
| UoM | Unit the quantity is expressed in; must exist on the component’s item record | SQFT | Yes |
| Scrap % | Planned loss added on top of Quantity Per, as a whole percentage | 8 | Optional (0 if none) |
| Phantom | Y if the line is a subassembly that is never stocked and is built inside the parent order | N | Yes for subassemblies |
| Make/Buy | M for manufactured, B for purchased; drives MRP order type | B | Usually set on the item, not the BOM |
| Unit Cost (USD) | Current standard or average cost per UoM, for the roll-up only | 1.25 | No (the ERP holds cost) |
| Notes | Assembly instructions, reference designators or approved alternates | Cut from 48 x 96 sheet | No |
Sample rows for an illustrative wall shelf (SH-100, revision C). Paste them into cell A1 and use your spreadsheet’s text-to-columns or CSV import to split on commas.
Parent Item,Parent Revision,Line No.,Component Item,Description,Quantity Per,UoM,Scrap %,Phantom,Make/Buy,Unit Cost (USD),Notes SH-100,C,10,SA-200,Bracket assembly,2,EA,0,N,M,1.653,Left and right are identical SH-100,C,20,SA-300,Hardware kit,1,EA,0,Y,M,0.60,Phantom: never stocked SH-100,C,30,RM-1010,Steel sheet 16 ga CR,3.2,SQFT,8,N,B,1.25,Cut from 48 x 96 sheet SH-100,C,40,PK-500,Carton 24 x 12 x 4,1,EA,2,N,B,1.10, SH-100,C,50,LB-010,Product label,1,EA,5,N,B,0.04, SH-100,C,60,PC-020,Powder coat black,0.15,LB,10,N,B,6.00,Shelf panel only
Indented (multi-level) bill of materials template
An indented BOM shows the whole product structure in one view, with a Level column for depth. It is easier to review and to cost, but most import tools still load one parent at a time, so keep the Parent Item column on every row.
Level,Parent Item,Parent Revision,Component Item,Description,Quantity Per,UoM,Scrap %,Phantom,Make/Buy,Unit Cost (USD) 0,,,SH-100,Wall shelf 24 in,1,EA,0,N,M, 1,SH-100,C,SA-200,Bracket assembly,2,EA,0,N,M, 2,SA-200,B,RM-2020,Steel flat bar 1/8 x 1-1/2,0.9,FT,5,N,B,1.40 2,SA-200,B,PC-020,Powder coat black,0.05,LB,10,N,B,6.00 1,SH-100,C,SA-300,Hardware kit,1,EA,0,Y,M, 2,SA-300,A,HW-101,Screw #10 x 1-1/2 in,4,EA,0,N,B,0.06 2,SA-300,A,HW-102,Wall anchor,4,EA,0,N,B,0.09 1,SH-100,C,RM-1010,Steel sheet 16 ga CR,3.2,SQFT,8,N,B,1.25 1,SH-100,C,PK-500,Carton 24 x 12 x 4,1,EA,2,N,B,1.10 1,SH-100,C,LB-010,Product label,1,EA,5,N,B,0.04 1,SH-100,C,PC-020,Powder coat black,0.15,LB,10,N,B,6.00
Each subassembly carries its own revision (SA-200 is at B while the shelf is at C), so a bracket change does not force a new shelf revision unless it affects form, fit or function.
Walking through each part of the template
Parent item, revision and line number
Business Central stores revisions as production BOM versions, each with a Version Code and a Starting Date, and a version stays valid until the next version’s starting date (Microsoft Learn, July 22, 2026). NetSuite’s Advanced Bill of Materials uses BOM Revision records with an Effective Start Date and Effective End Date, and Oracle’s scripting sample ends one revision before the next begins to prevent a date collision (Oracle NetSuite Help, no date shown). If your system uses dates, add Effective From and Effective To columns.
Quantity per and unit of measure
Enter the net quantity consumed by one finished unit, in the unit the component is issued in. If sheet is bought by the sheet but consumed by the square foot, set up a conversion on the item record. Business Central’s Production BOM Line table includes a Unit of Measure Code field alongside Quantity per (azurecurve BC table reference by Ian Grieve, no date shown). Katana works differently: units of measure are set on the item card and cannot be defined through its BOM import template (Katana Support, August 26, 2026).
Scrap factor versus component yield
This field changes meaning between systems. Business Central’s Scrap % adds the entered percentage of components to expected consumption (Microsoft Learn, July 22, 2026), so 3.2 square feet at 8% becomes 3.456. NetSuite instead uses Component Yield, the anticipated yield after loss during manufacturing: Oracle’s example shows a 50% yield turning a BOM quantity of 1 into a required quantity of 2 (Oracle NetSuite Help, no date shown).
The two are not interchangeable. If yield is applied by division, as the 50% example suggests, then as an illustration 92% yield gives 3.2 / 0.92 = 3.478 square feet, not 3.456, and the equivalent yield for 8% scrap is 1 / 1.08, or 92.6%. Oracle’s other component yield examples do not all follow that arithmetic, so check one work order in your account before you convert a full import (Oracle NetSuite Help, no date shown).
Phantom flag
A phantom is a subassembly built within the parent’s order and never stocked, like the sample hardware kit. Business Central handles this with a line Type of Production BOM: the phantom has no item card or inventory of its own and planning replaces it with its components (Microsoft Learn, July 22, 2026). NetSuite uses a Phantom checkbox on the assembly item and an Item Source of Phantom on the component line (Oracle NetSuite Help, no date shown). MRPeasy treats a subassembly that has a BOM but no routing, and is not set as procured, as a phantom kit of parts (MRPeasy user manual, no date shown). Our guide to kitting in inventory management covers how kits and phantoms differ from stocked assemblies.
How to roll up BOM cost
A cost roll-up starts at the lowest level and works upward. For each component, multiply quantity per by (1 + scrap %) and by unit cost, sum the lines, and use that total as the subassembly’s unit cost one level up. The table is an illustration using the sample data, material only.
| Line (illustration) | Gross quantity | Unit cost (USD) | Extended (USD) |
|---|---|---|---|
| SA-200: flat bar 0.9 FT + 5% | 0.945 FT | 1.40 | 1.323 |
| SA-200: powder 0.05 LB + 10% | 0.055 LB | 6.00 | 0.330 |
| SA-200 rolled cost per bracket | 1.653 | ||
| SH-100: SA-200 bracket x 2 | 2 EA | 1.653 | 3.306 |
| SH-100: SA-300 phantom (4 screws at 0.06 + 4 anchors at 0.09) | 1 EA | 0.60 | 0.600 |
| SH-100: steel sheet 3.2 SQFT + 8% | 3.456 SQFT | 1.25 | 4.320 |
| SH-100: carton + 2% | 1.02 EA | 1.10 | 1.122 |
| SH-100: label + 5% | 1.05 EA | 0.04 | 0.042 |
| SH-100: powder 0.15 LB + 10% | 0.165 LB | 6.00 | 0.990 |
| SH-100 rolled material cost | 10.380 |
Labor and overhead come from routings and are added on top. Business Central’s Calc. Production Std. Cost action offers Single Level, which sums the parent’s direct components and capacity, and All Levels, which recalculates the whole structure bottom-up; parent and components must use the Standard costing method (Microsoft Learn, June 3, 2026). NetSuite’s Planned Standard Cost Rollup, under Lists > Accounting > Planned Standard Cost Rollup, calculates down to the lowest sub-assembly and rolls costs up, and it runs only for assemblies with a cost category on the item record (Oracle NetSuite Help, no date shown). Katana and MRPeasy cost subassemblies at their average stock cost when stock exists, so a parent’s cost can differ from a pure BOM roll-up (Katana Support, May 22, 2025; MRPeasy user manual, no date shown). For how frozen standards and average costs produce different numbers, see standard cost vs actual cost.
Common spreadsheet BOM mistakes
- Unit mismatches. The BOM says 0.9 FT but the item is costed per 10-foot bar, so the roll-up is ten times too high. Confirm every BOM unit has a conversion on the item record.
- Batch quantities entered as quantity per. A formula written for a 50-unit batch gets loaded as per-unit consumption. Divide by batch size first.
- Missing or stale revisions. Copies live in several workbooks with no revision column, and purchasing buys to an old version. Keep one master file with a revision and effective date on every BOM.
- Duplicate parts. The same component appears on two lines of one BOM, or the same physical part exists under two item numbers. Sort by parent and component and flag repeats with a COUNTIFS formula before you import.
- Scrap counted twice. Business Central lets you set scrap on the production BOM or the routing (Microsoft Learn, June 3, 2026). Pick one place for each kind of loss so planned consumption is not inflated.
- Circular references. An item that appears inside its own structure breaks costing. Katana notes it does not block recipe loops, but cannot calculate manufacturing cost when one exists (Katana Support, May 22, 2025).
- Reformatted part numbers. MRPeasy warns that spreadsheets can alter numeric-looking part numbers, for example by removing leading zeros (MRPeasy user manual, no date shown).
How to import the template into Business Central, NetSuite, Katana and MRPeasy
Business Central. Manufacturing and production BOMs are part of the Premium plan, listed at $110 per user per month paid yearly, against $80 for Essentials (Microsoft, no date shown, checked October 11, 2026). To load BOMs from a spreadsheet, build a configuration package that includes the Production BOM Header and Production BOM Line (table 99000772) tables, export it to Excel, paste your rows, import and apply the data (Microsoft Learn, December 10, 2025; Microsoft Learn, May 11, 2023). Set imported BOMs to Certified afterward, because uncertified BOMs cannot be used in production or planning.
NetSuite. The Bill of Materials and Bill of Materials Revision CSV imports require the Advanced Bill of Materials feature (Oracle NetSuite Help, no date shown; Oracle NetSuite Help, no date shown). Oracle’s sample revision import files carry each revision’s Effective Start Date and Effective End Date and its component lines (Item, BOM Quantity, Component Yield and Item Source) (Oracle NetSuite Help, no date shown). Convert your scrap column to yield before loading. Our QuickBooks to NetSuite migration guide covers the wider data move.
Katana. Go to Settings > Import and more > Data import, open BOMs & Recipes, download the blank template and upload it as .xls or .xlsx. The mandatory columns are product variant code or SKU, ingredient variant code or SKU and quantity, with one row per ingredient, and you choose whether to replace or add to existing recipes (Katana Support, August 26, 2026). The article describes no scrap, revision or phantom fields, so keep those in your master file. Katana lists a free plan for up to 30 SKUs and quotes its Advantage plan privately (Katana pricing, no date shown, checked October 11, 2026).
MRPeasy. Use Production planning > BOMs > Import from CSV. Required columns are the parent Product number, Part No. and Quantity; optional columns include unit of measurement, BOM number and BOM name. A multi-level structure loads as several BOMs in one file. Uploads are limited to 3,000 lines, and failed rows are returned in a downloadable skip file (MRPeasy user manual, no date shown). Published plans run from $49 (Starter) to $149 (Unlimited) per user per month on monthly billing (MRPeasy pricing, no date shown, checked October 11, 2026).
When to move from a spreadsheet to software
Move to an MRP or ERP system when purchasing needs BOM-driven material requirements, when more than one revision of a product is active, or when cost changes must flow into inventory valuation. Katana and MRPeasy focus on production and inventory and connect to separate accounting software. Business Central and NetSuite add full financials, standard cost roll-ups and revision control, with longer implementations. Our article on MRP and kanban explains how BOM data drives material planning once it is in a system.
How we researched this
We reviewed top-ranking BOM templates from SpreadsheetDaddy, Fuzen and Airtable; none combined scrap, revision and phantom fields with import guidance for named systems. We then read the BOM, costing and import documentation from Microsoft, Oracle NetSuite, Katana and MRPeasy and checked pricing pages on October 11, 2026. All item numbers and costs in the templates are an illustration.
Related guides
- Cost of Goods Manufactured Schedule: Template and ERP Guide
- Co-Product and By-Product Costing: Methods and Entries
- Cycle Counting Software: Methods, Frequency and Tools
Frequently asked questions
What is the difference between a single-level and an indented BOM?
A single-level BOM lists only the direct components of one parent item. An indented BOM shows the full product structure, using a level number to show which components sit under each subassembly. Most ERPs store single-level BOMs and generate the indented view from them.
What columns should a bill of materials template have?
At minimum, include parent item, parent revision, component item, quantity per one parent unit and unit of measure. Add scrap percentage, a phantom flag, line number and unit cost if you plan to import into an ERP or roll up costs.
How do you calculate scrap in a BOM?
With a scrap factor, gross quantity equals quantity per multiplied by (1 + scrap %), so 3.2 units at 8% becomes 3.456. Systems that use a yield percentage, such as NetSuite, derive the requirement from the yield instead. Convert between the two before importing: if yield is applied by division, 8% scrap equals about 92.6% yield, not 92%.
What is a phantom BOM?
A phantom BOM describes a subassembly that is built inside the parent’s production order and never stocked. Planning replaces the phantom line with its components, so no separate work order is created.
Can I import an Excel BOM into Business Central?
Yes. Use a configuration package with the Production BOM Header and Production BOM Line tables. Items must exist first, and each BOM must be certified before planning can use it.
Sources
- Microsoft Learn: Create production BOMs (July 22, 2026)
- Microsoft Learn: About calculating standard cost (June 3, 2026)
- Microsoft Learn: Prepare a configuration package (December 10, 2025)
- Microsoft Learn: Apply company configuration packages (May 11, 2023)
- azurecurve Business Central table reference (Ian Grieve): Production BOM Line (no date shown)
- Microsoft: Dynamics 365 Business Central pricing (no date shown; checked October 11, 2026; vendor page)
- Oracle NetSuite Help: Bill of Materials Import (no date shown)
- Oracle NetSuite Help: Bill of Materials Revision Import (no date shown)
- Oracle NetSuite Help: Setting the Use Component Yield Preference (no date shown)
- Oracle NetSuite Help: Component Yield Examples (no date shown)
- Oracle NetSuite Help: Creating a Phantom Assembly (no date shown)
- Oracle NetSuite Help: BOM record (SuiteScript) (no date shown)
- Oracle NetSuite Help: Standard Cost Rollup (no date shown)
- Katana Support: How to import BOMs and recipes via template (August 26, 2026)
- Katana Support: Using subassemblies in product recipes (May 22, 2025)
- Katana: Pricing (no date shown; checked October 11, 2026; vendor page)
- MRPeasy user manual: Importing BOM from a CSV file (no date shown)
- MRPeasy user manual: BOM (Bill of Materials) (no date shown)
- MRPeasy: Pricing (no date shown; checked October 11, 2026; vendor page)
