Bill of Materials (BOM)
A Bill of Materials is the foundation of manufacturing in any ERP system. It is the recipe, the formula, the blueprint — the structured list of every component, raw material, and sub-assembly required to produce a finished good, along with the exact quantity of each. Without an accurate BOM, production planning is guesswork, material procurement is reactive, and cost estimation is unreliable.
In Udyamo ERP Lite, the BOM is the starting point for production orders, material requirements calculations, and production costing. This chapter covers the concept in depth and walks through creating a BOM step by step.
What You Will Learn
- What a Bill of Materials is and why it matters for manufacturing
- BOM structure: parent item, components, quantities, and units
- How scrap percentage accounts for material waste
- The role of optional items in a BOM
- Multi-level BOM concepts
- BOM versioning and why it is necessary
- How BOM cost is calculated
- The BOM approval workflow: draft, approved, archived
- Step-by-step: creating a BOM for a steel flange in Udyamo ERP Lite
Prerequisites
Required: Before creating a BOM, ensure the following are set up in your system:
- All finished goods and raw material items exist in the Item Master (see Chapter 7)
- Units of measurement are configured (see Chapter 8)
- You understand the manufacturing workflow overview (see Chapter 12)
What is a Bill of Materials?
Think of a BOM as a recipe card in a commercial kitchen. A recipe for a particular dish lists every ingredient, the quantity of each, and sometimes notes about substitutions or preparation. A BOM does the same for a manufactured product.
Consider a steel fabrication shop that manufactures MS (Mild Steel) flanges. Each flange requires:
- 3.2 kg of MS Plate (10 mm thick)
- 8 pieces of Hex Bolts (M12 x 40 mm)
- 8 pieces of Hex Nuts (M12)
- 1 piece of Rubber Gasket (150 mm)
- 0.5 litres of Rust-Preventive Primer
The BOM captures this information in a structured format that the ERP system can use for planning, costing, and material issuance.
BOM Structure
Every BOM in Udyamo ERP Lite has two parts:
The Parent Item — the finished good that the BOM produces. This is the item that will be received into stock when the production order is completed. In our example, the parent item is "MS Flange — 150 mm PN16".
The Component Items (BOM Items) — the individual raw materials, consumables, or sub-assemblies that go into making the parent item. Each component line specifies:
| Field | Description | Example |
|---|---|---|
| Item | The component item from the item master | MS Plate 10 mm |
| Quantity | How much of this component is needed for one unit of the parent item | 3.2 |
| Unit | The unit of measurement for this component | Kg |
| Scrap Percentage | Expected material waste during production (see below) | 5% |
| Optional | Whether this component is optional or mandatory | No |
| Cost Per Unit | The cost of one unit of this component | 72.00 |
| Notes | Any additional instructions or specifications | Cut to 200 mm x 200 mm squares |
Scrap Percentage
No manufacturing process is 100% efficient. When you cut a circular flange from a square plate, the material around the circle is wasted. When you apply primer, some is lost to overspray. Scrap percentage captures this expected waste.
If the BOM specifies 3.2 kg of MS Plate with a 5% scrap percentage, the actual material requirement for one flange is:
3.2 kg + (3.2 kg x 5%) = 3.2 + 0.16 = 3.36 kg
When the system calculates material requirements for a production order of 100 flanges, it will use 3.36 kg per unit (336 kg total) rather than 3.2 kg per unit (320 kg). This prevents material shortages on the shop floor.
Tip: Set scrap percentages based on actual production experience. Track your actual scrap rates over a few production runs before setting the BOM values. Overestimating scrap leads to excess inventory; underestimating leads to production stoppages.
Optional Items
Some components are not required for every unit produced. For example, a protective cap might only be added to flanges destined for export, or a special coating might only be applied when the customer specifies it.
Marking a BOM item as optional means it will appear in the BOM for reference and costing purposes, but the system will not flag it as a shortage if it is unavailable. When creating a material issue for a production order, the production supervisor can choose whether to include optional items based on the specific order requirements.
Multi-Level BOM Concept
In many manufacturing scenarios, a finished product contains sub-assemblies that are themselves manufactured from components. This creates a hierarchy:
MS Flange Assembly (Level 0 — Finished Good)
├── MS Flange Body (Level 1 — Sub-assembly)
│ ├── MS Plate 10 mm (Level 2 — Raw Material)
│ └── Rust-Preventive Primer (Level 2 — Consumable)
├── Bolt-Nut Set M12 (Level 1 — Sub-assembly)
│ ├── Hex Bolt M12 x 40 mm (Level 2 — Raw Material)
│ └── Hex Nut M12 (Level 2 — Raw Material)
└── Rubber Gasket 150 mm (Level 1 — Raw Material)
In a multi-level BOM, each sub-assembly has its own BOM. The top-level BOM references the sub-assembly as a component, and the system can "explode" the BOM to calculate the total raw material requirements across all levels.
Udyamo ERP Lite supports single-level BOMs directly. For multi-level scenarios, you create separate BOMs for each sub-assembly and manage them through linked production orders.
BOM Versioning
Products evolve. An engineering change might replace one grade of steel with another. A cost reduction initiative might substitute a cheaper gasket material. A customer specification might require thicker plate for a high-pressure application.
BOM versioning tracks these changes over time:
| Version | Change | Date |
|---|---|---|
| v1 | Original BOM with 8 mm MS Plate | 01-Apr-2025 |
| v2 | Changed to 10 mm MS Plate per revised spec | 15-Jun-2025 |
| v3 | Replaced rubber gasket with PTFE gasket for high-temp variant | 01-Sep-2025 |
Each BOM in Udyamo ERP Lite carries a version field. When you need to modify a BOM, you create a new version rather than editing the approved one. This preserves the historical record — you can always trace back to see which BOM version was used for a specific production order.
BOM Cost Calculation
The total cost of a BOM is calculated as the sum of component costs, adjusted for scrap:
Total BOM Cost = Sum of (Quantity x (1 + Scrap%) x Cost Per Unit) for each component
For our MS Flange example:
| Component | Qty | Scrap % | Effective Qty | Cost/Unit | Line Cost |
|---|---|---|---|---|---|
| MS Plate 10 mm | 3.2 kg | 5% | 3.36 kg | 72.00 | 241.92 |
| Hex Bolt M12 x 40 mm | 8 pcs | 0% | 8 pcs | 5.50 | 44.00 |
| Hex Nut M12 | 8 pcs | 0% | 8 pcs | 2.50 | 20.00 |
| Rubber Gasket 150 mm | 1 pc | 0% | 1 pc | 35.00 | 35.00 |
| Rust-Preventive Primer | 0.5 L | 10% | 0.55 L | 120.00 | 66.00 |
| Total | 406.92 |
This total cost is stored in the BOM's total_cost field and serves as the basis for production costing and pricing decisions.
Warning: BOM cost is only as accurate as the component costs you enter. Review and update component costs periodically, especially for materials with volatile prices like steel, copper, and polymers. Outdated costs lead to incorrect margins and pricing errors.
BOM Approval Workflow
BOMs go through a three-stage lifecycle:
Draft — the BOM is being created or modified. It can be freely edited. Draft BOMs cannot be used to create production orders.
Approved — the BOM has been reviewed and approved for production use. Only approved BOMs can be linked to production orders. Edits are restricted to prevent unauthorized changes to active production recipes.
Archived — the BOM is no longer in active use but is retained for historical reference. Archived BOMs cannot be used for new production orders, but existing production orders that reference them remain intact.

This workflow ensures that production always uses a vetted, approved recipe, and that changes go through a review process rather than being made ad hoc on the shop floor.
Step by Step: Creating a BOM for a Steel Flange
Step 1: Navigate to the BOM list.
Go to Manufacturing > Bill of Materials. You will see a list of existing BOMs (if any). Click New BOM to create a new one.

Step 2: Fill in the BOM header.
| Field | Value | Notes |
|---|---|---|
| Name | MS Flange 150mm PN16 — Standard | A descriptive name that identifies this BOM |
| Item | MS Flange — 150 mm PN16 | Select the finished good from the item master |
| Version | 1 | The version number for this BOM |
| Status | Draft | New BOMs start in draft status |
| Notes | Standard BOM for PN16 flanges using 10 mm MS plate | Any additional context for this BOM |
Step 3: Add component items.
In the BOM Items section, click Add Item to add each component:
Component 1: MS Plate
- Item: MS Plate 10 mm
- Quantity: 3.2
- Unit: Kg
- Scrap Percentage: 5
- Optional: No
- Cost Per Unit: 72.00
- Notes: Cut to 200 mm x 200 mm blanks
Component 2: Hex Bolts
- Item: Hex Bolt M12 x 40 mm
- Quantity: 8
- Unit: Pcs
- Scrap Percentage: 0
- Optional: No
- Cost Per Unit: 5.50
Component 3: Hex Nuts
- Item: Hex Nut M12
- Quantity: 8
- Unit: Pcs
- Scrap Percentage: 0
- Optional: No
- Cost Per Unit: 2.50
Component 4: Rubber Gasket
- Item: Rubber Gasket 150 mm
- Quantity: 1
- Unit: Pcs
- Scrap Percentage: 0
- Optional: No
- Cost Per Unit: 35.00
Component 5: Primer
- Item: Rust-Preventive Primer
- Quantity: 0.5
- Unit: Litre
- Scrap Percentage: 10
- Optional: No
- Cost Per Unit: 120.00
- Notes: Apply two coats after machining
Step 4: Review the total cost.
The system calculates the total BOM cost as the sum of all component line costs. Verify that the total (406.92 in this example) is consistent with your expected production cost per unit.
Step 5: Save the BOM.
Click Save to save the BOM in draft status. Review all fields and component lines carefully.
Step 6: Approve the BOM.
Once you are satisfied that the BOM is accurate, change the status to Approved. The BOM is now available for use in production orders.
Warning: Once a BOM is approved, modifications should be made by creating a new version rather than editing the approved BOM directly. This preserves the audit trail and ensures production orders reference the correct version.
Tips & Best Practices
Tip: Use consistent naming conventions for your BOMs. Include the product name, variant, and a brief descriptor. For example: "MS Flange 150mm PN16 — Standard" vs "MS Flange 150mm PN16 — Export Grade". This makes it easy to find the right BOM when creating production orders.
Tip: Review BOM costs quarterly, or whenever you negotiate new rates with suppliers. Material prices change — especially for steel, which can fluctuate significantly in the Indian market. Keeping BOM costs current ensures your quotations and pricing reflect actual production costs.
Tip: For products with many variants (different sizes, materials, or finishes), create a base BOM first and then create variant BOMs by adjusting the relevant components. This is faster and less error-prone than building each BOM from scratch.
Warning: Never approve a BOM without verifying quantities against actual production experience. A theoretical BOM based on engineering drawings may differ from what the shop floor actually consumes. Run a small production batch first and adjust quantities and scrap percentages based on real data.
Quick Reference
| Field | Required | Description |
|---|---|---|
| Name | Yes | Descriptive name for the BOM |
| Item | Yes | The finished good this BOM produces |
| Status | Yes | Draft, Approved, or Archived |
| Version | Yes | Version number for tracking changes |
| Notes | No | Additional context or instructions |
| Total Cost | Auto | Calculated sum of all component line costs |
BOM Item Fields
| Field | Required | Description |
|---|---|---|
| Item | Yes | The component item (raw material, consumable, or sub-assembly) |
| Quantity | Yes | Quantity needed per unit of the finished good |
| Unit | Yes | Unit of measurement for this component |
| Scrap Percentage | No | Expected waste percentage (default 0) |
| Optional | No | Whether the component is optional (default No) |
| Cost Per Unit | No | Unit cost for BOM costing |
| Notes | No | Component-specific instructions or specifications |