A bill of materials (BOM) lists every material, part and sub-assembly in one unit of a product, with the quantity of each. The workshop builds from it, the buyer orders from it and the owner prices from it. A wrong line repeats in every unit you make, so keeping a BOM right matters as much as writing it.
This guide works one school desk from a Kampala workshop through every part of BOM management, in Uganda shillings. It ends with how a small maker keeps the BOM's materials in ArmPOS.
What is a bill of materials?
A bill of materials is a structured list: the finished product at the top, then everything it is made from, with quantities and units. Investopedia defines it as "a detailed list of all necessary materials, components, and instructions" for making, repairing or assembling a product.
Process trades call the same list a formula or a recipe. A soap maker's BOM lists kilograms of oil and caustic soda rather than parts, but it does the same job.
For example, a workshop in Kampala makes a steel-frame double desk for schools. Every figure in this guide is illustrative, not a real workshop's.
| Level | Item | Quantity per parent | Unit | Made or bought |
|---|---|---|---|---|
| 0 | Double school desk, DSK-2S | 1 | each | Made |
| 1 | Steel frame, welded and painted | 1 | each | Made |
| 2 | Square tube 25 mm, 6 m length | 1.5 | length | Bought |
| 2 | Welding rods 2.5 mm | 0.2 | kg | Bought |
| 2 | Black metal paint | 0.3 | litre | Bought |
| 2 | Plastic foot caps | 4 | piece | Bought |
| 1 | Desk top, 1100 × 500 mm, varnished | 1 | each | Made |
| 2 | Plywood 18 mm, 1220 × 2440 mm sheet | 0.25 | sheet | Bought |
| 2 | Clear varnish | 0.15 | litre | Bought |
| 1 | Bench seat, 1100 × 300 mm, varnished | 1 | each | Made |
| 2 | Plywood 18 mm sheet | 0.125 | sheet | Bought |
| 2 | Clear varnish | 0.1 | litre | Bought |
| 1 | Bolt M8 × 40 with nut and washer | 8 | set | Bought |
Level 0 is the product, level 1 is what goes straight into it, and level 2 is what each level 1 item is made from. Each quantity is per parent: 0.25 sheet per desk top, and one top per desk.
Why BOM management is important
BOM management matters because every quantity in a BOM gets multiplied: by the units you make, and by every level above it. A small slip in one line becomes a large purchase.
Suppose someone types 2 frames per desk instead of 1. On a school's order of 120 desks, the buying list then asks for 189 extra tube lengths, scrap allowance included. That is UGX 6,048,000 of steel, plus paint, rods and caps for 120 frames nobody will build.
Three jobs depend on the BOM being right:
- Buying. The BOM times the units to make is the start of every purchase list, as bill of materials procurement works through for those 120 desks.
- Costing. The desk's materials come to UGX 123,150 with scrap allowances, and labour and overheads go on top. How to create a bill of materials builds that cost line by line.
- Control. The BOM says what each run should use, so it is the yardstick for waste. The monthly check below shows how.
Common types of BOMs
BOMs differ in two ways: how many levels they show, and who they are for. Most small workshops need one manufacturing BOM, shown by level, and rarely the others.
Single-level, multilevel and summarized
A single-level BOM lists only what goes straight into one parent: the desk's frame, top, seat and bolts. It is quick to write, but it hides what the frame is made of.
A multilevel BOM, also called an indented BOM, shows every level, as in the table above. Breaking an assembly into its parts is called an explosion; tracing a part up to every assembly that uses it is an implosion.
A summarized BOM adds up each bought material across all levels, which is what a buyer needs. The desk's plywood appears twice in the levels but once here.
| Material | From the levels | With the scrap allowance |
|---|---|---|
| Square tube 25 mm, 6 m | 1.5 lengths | 1.575 lengths |
| Welding rods 2.5 mm | 0.2 kg | 0.2 kg |
| Black metal paint | 0.3 litre | 0.33 litre |
| Plastic foot caps | 4 | 4 |
| Plywood 18 mm sheet | 0.25 + 0.125 = 0.375 sheet | 0.375 sheet |
| Clear varnish | 0.15 + 0.1 = 0.25 litre | 0.275 litre |
| Bolt sets | 8 | 8 |
The allowances are 5% on tube and 10% on paint and varnish. Plywood carries none, because its quantity already comes from the cutting plan.
All six types, and who needs each
| Type | What it lists | Good for |
|---|---|---|
| Single-level | One parent and the items that go straight into it | Simple products, early planning, small workshops |
| Multilevel (indented) | Every level, each sub-assembly under its parent | Products with sub-assemblies; tracing a fault to one part |
| Engineering BOM (EBOM) | The product as designed, often taken from CAD drawings | Design and prototypes, before production starts |
| Manufacturing BOM (MBOM) | Everything needed to make and ship it, from raw materials to packaging | The workshop floor, buying and costing |
| Configurable BOM (CBOM) | The options a customer picks, each with its own parts | Made-to-order products: heights, colours, finishes |
| Modular BOM | Modules built once and reused across products | Ranges built from common parts, such as one frame for a desk and a bench |
A service BOM is a seventh kind: the spare parts a machine needs over its life. A maker's own machines need one too, as MRO inventory explains.
BOM management in Excel: pros and cons
Excel suits a first BOM, and it keeps working while one person edits it. It breaks when several people keep copies, or when one change must reach many products.
Pros of using Excel
- Quick to start. Most workshops already have it, and anyone can read a printed copy on the floor.
- Free or cheap. No licence beyond the one you own.
- Any layout. Columns, notes and cost formulas, set up the way your products need.
Cons of using Excel
- Copies drift apart. The floor works from last month's printout while the office edits this month's file.
- Indents break. One bad sort, and nobody can tell which tube belongs to which frame.
- No link to stock. The file can't see what is in the store or on order.
- No where-used. Before you change a shared part, you search every file by hand.
- Undated changes. Nothing records which version a batch was built to.
The indent problem has a simple fix: give every row its parent's code, not just an indent. A sort or filter can then never lose which part belongs where.
| Parent code | Level | Item code | Item | Qty per parent | Unit |
|---|---|---|---|---|---|
| DSK-2S | 1 | FRM-2S | Steel frame | 1 | each |
| FRM-2S | 2 | ST-25 | Square tube 25 mm | 1.5 | length |
| DSK-2S | 1 | TOP-2S | Desk top | 1 | each |
| TOP-2S | 2 | PLY-18 | Plywood 18 mm sheet | 0.25 | sheet |
Add a column for the quantity per finished unit: the row's quantity times its parent's. A SUMIF on the item code then gives the summarized BOM for any material.
How BOM software simplifies the process
BOM software keeps one record of each part and lets every BOM point to it, so a change made once reaches every product. A spreadsheet can't do that.
- Where-used. Before you change or drop a part, it lists every product that uses it.
- Dated revisions. It records which BOM each batch was built to.
- Explosion into a buying list. It multiplies the BOM by the plan and subtracts stock on hand and on order.
- Cost roll-up. A new price for plywood updates the cost of every product that uses it.
This software usually comes as material requirements planning (MRP), often inside an ERP. A workshop with a few products and one BOM editor rarely needs it; one making many variants from shared parts usually does. ERP inventory management sets out when a small business needs an ERP.
Key elements of a good BOM
A good BOM answers every question the floor, the buyer and the accountant will ask about a line, without a phone call. These twelve fields cover it.
| Element | What it holds | The desk's example |
|---|---|---|
| Parent and revision | The product's code and the BOM's version | DSK-2S, revision A |
| Level | Where the line sits in the structure | 2, under the frame |
| Item code | One unique code per material or part | PLY-18 |
| Description | A name and specification no supplier can misread | Plywood 18 mm, 1220 × 2440 mm |
| Quantity per parent | How many go into one parent | 0.25 sheet per top |
| Unit of measure | The unit the quantity is counted in | Sheet, litre, length |
| Made or bought | Whether you make the item or buy it | Frame made, tube bought |
| Scrap allowance | Extra for normal losses | 5% on tube |
| Unit cost | Landed cost for one unit | UGX 140,000 a sheet |
| Supplier and lead time | Who supplies it, and how long delivery takes | Timber yard, 2 weeks |
| Approved alternate | A substitute already tested | Rubber foot caps from a local hardware shop |
| Notes | Colour, finish, options, handling | Varnish: two coats |
The unit needs most care. Varnish is bought by the 4-litre tin and used by the litre, so the BOM holds litres, as units of measure explains.
How to create and manage a BOM, step by step
Create the BOM once, carefully, then manage it with two habits. Every change gets a new revision, and every month the BOM is checked against what the floor used.
Create it
- Start from one finished unit and give it a code and a revision.
- List level 1, then what each level 1 item is made from.
- Set each quantity per parent, in the unit the floor uses; take sheet goods from the cutting plan.
- Add scrap allowances and landed costs, and add up the cost.
- Build one unit to the BOM, and correct what the build shows.
Each step is worked through for the desk in how to create a BOM.
Change it with revisions
- One owner approves every change. Others propose; the owner edits.
- Each change gets a new revision letter, with the date and the first run it applies to.
- Check where-used first. A new bolt for the desk may also change the bench that shares it.
- Tell the buyer. Open orders for the old part may need cancelling or using up.
Check it against what was used, every month
Compare what the BOM says a month's output should have used with what left the store. A gap means the BOM is wrong or the floor is wasting, and the table shows which line to look at.
| Material | BOM × 100 desks | Actually used | Difference | Value of the difference |
|---|---|---|---|---|
| Square tube, lengths | 157.5 | 160 | +1.6% | 80,000 |
| Plywood, sheets | 37.5 | 41 | +9.3% | 490,000 |
| Clear varnish, litres | 27.5 | 28 | +1.8% | 10,000 |
| Black paint, litres | 33 | 33.5 | +1.5% | 7,500 |
| Total | 587,500 |
Plywood makes up 83% of the gap. Either the floor isn't following the cutting plan, so sheets yield fewer than four tops, or boards are spoiling in the store.
Look before you change the BOM: raising the plywood line would hide the waste for good. Set a tolerance, such as 3%, and investigate only the lines above it.
BOM management best practices
- Keep one master file. Everyone prints from it, and nobody keeps a private copy.
- Code before you name. One code per material stops "plywood" and "ply board" becoming two items.
- List the small parts. Bolts and foot caps stop a delivery as surely as steel does.
- Keep costs current. Update a material's cost when the supplier's price or the exchange rate moves, then check the product's price.
- Issue materials against each run. The monthly check, the buying list and the costs all need what really left the store.
How to keep a BOM's materials in ArmPOS
ArmPOS has no production module: no bill of materials, no work orders and no automatic use of materials when goods are made. Keep the BOM itself in a spreadsheet, and run the stock it describes in ArmPOS.
- Set up each bought material as a product. Give materials a category such as Raw materials, and set Hide From Online Store under Options (Add your first products).
- Buy in the supplier's unit, count in the BOM's. Build a Tin unit on Litre with Multiply 4, and make it the varnish's Purchase Unit (Categories, brands and units).
- Record each run with two adjustments. A Subtraction takes off the materials used, and an Addition puts on the finished goods made. Put the run and the BOM's revision in the Note, such as "Run 12, 40 desks, BOM rev A" (Count and adjust stock).
- Read the month's usage. The Stock Adjustment Report totals the quantities added and removed, with each adjustment's cost. Reports on a material's row in the Stock Report lists its own adjustments (Stock reports).
- Set the desk's cost from the BOM. Enter the costed BOM, its materials only, as the desk's Product Cost when you record wages and overheads as expenses. Profit and Loss takes off both, so adding them here would count them twice.
The full run method, with labels and batches, is in barcodes in manufacturing. It works the same for a workshop in Uganda or in Egypt.
Frequently asked questions
What are the main types of BOM?
By structure, single-level and multilevel. By purpose, engineering, manufacturing, configurable and modular. Most small workshops need one manufacturing BOM, shown by level.
What is the difference between a BOM and a parts list?
A parts list names the parts. A BOM adds the quantities, the units and the structure: which part goes into which assembly.
Who should own the bill of materials?
One person who approves every change, usually whoever runs production. Buyers and storekeepers read it but don't edit it.
How often should a BOM be reviewed?
At every change of design, material or supplier, and against actual usage every month. A gap above your tolerance means the BOM or the floor needs fixing.
Does ArmPOS have a BOM module?
No. Keep the BOM in a spreadsheet, and record materials, purchases and each run's two adjustments in ArmPOS.
Write down one product's BOM this week, level by level, and check it against last month's usage. To keep its materials, purchases and runs in one record, create a free ArmPOS account.