Time to read: 4 min

Chefs create recipes. Hardware Engineers create BOMs (Bill of Materials) and SOPs (Standard Operating Procedures). The BOM is an ingredients list for building your product, and the SOP is the set of instructions on how to build it.

In this post, we’ll dive into exactly how to construct an excellent ingredients list that will help you clearly communicate your product materials specs for your manufacturing partner.


Anatomy of a Basic BOM

An effective BOM doesn’t have to be generated by sophisticated software—it can be as simple as an Excel spreadsheet. Organization is the key to a good BOM, which also makes you look very professional to your vendors, so they’re less likely to sneak one past you!

BOMs are usually broken up into several categories, according to engineering areas of responsibility (AoRs). MEs and EEs make their own component lists during development, from which the pre-production BOM is assembled.

Categorization makes it easy for you, your colleagues, and vendors to find what they need in your BOM. For example, the PCBA (printed circuit board assembly) manufacturer only cares about the PCBs and the components that need to be surface mounted onto the boards—the packaging components usually don’t need to be procured for the early proto-builds.

Here’s an example of the typical categories and components of a consumer hardware product’s BOM; if this BOM was built in an Excel spreadsheet, each category would be its own tab (note that AoR stands for Area of Responsibility).

typical categories and components of a consumer hardware product's BOM

Within each category, you can further organize your BOM by cost. Electronics manufacturers typically charge you a margin on all components they source for you, however the cost to source expensive (chips) and low-priced components (screws) is not that different. You can negotiate with the manufacturer for a lower margin on higher priced items over a certain threshold.

Also, here’s a great BOM template to get started with. Thanks, Dragon Innovation!


Best Practices for Building a BOM

Here are a few best practices to consider as you’re building your BOM:

Figure out a part number scheme before building a BOM

It’s standard practice for each part to have a unique part number. In your BOM, the part number is the foremost identifier of the part, with a secondary text description to help with human readability.

There are different schools of thought on part numbering systems:

The simplest is a non-intelligent, purely sequential system where the part number doesn’t give any information on what a part is. For example, a screw and a resistor entered into the system adjacent to each other will be parts 001514 and 001515. This has the advantage of being lightweight in implementation; however, it’s not very human-readable.

The other system is an intelligent system, with the part number denoting what type of part it is. For example, a screw will be part SCRW1014, and a resistor will be RES2208. This is more human-readable, but as the types of parts in your master part library increases, you need to continuously make new categories and define new rules.

Regardless of what scheme you choose, make sure you keep a master part list, even if it’s just another spreadsheet. If you’re interested in learning more about part number schemes, read this.

Document control your BOM

A BOM is a living document throughout a product’s development and production. When you make changes to a part or switch out a component, you need to update the BOM, which becomes a new version of the document.

I usually add a tab named “revision history” to my spreadsheet BOM. Each time I update the BOM, I save it as a new file, insert a new line to the top of the “revision history” tab, increase the version number, and describe briefly what changed. For example:

sample BOM update

Before you get ready to do a pre-production build, have all the engineers review the latest BOM together, then lock down this version for the build and communicate its version number to the manufacturing partner.

Use engineering software to build a BOM

To save time when you first build a BOM, make use of software features you may already be using for development.

Most MCAD software programs have a BOM export feature for assemblies.GrabCAD Workbench is a great PDM (product data management) tool to help you version control your parts, and it also generates BOMs. It’s also free! Did I mention free?

For EEs, Altium has BOM generation features. However, building a parts library in Altium can be a lot of work. PartsList can help make this process easier—it imports part attributes from components on Digikey, Mouser and many other sites.

Implement PLM when you’re ready

Keeping track of BOM spreadsheets is bearable with one product, but when you have multiple products, it can become a headache quickly. A PLM (product life management) system is a BOM, master parts list, and process management tool, all in one. I’ve had good experience with Arena PLM, and Autodesk PLM 360 is a nice-looking contender.


Main Takeaways

There are many people involved in building a hardware product. A BOM is a critical communication document that gets engineers, procurers, and manufacturers on the same page. You need a BOM before any sourcing activities can happen, so start working on it as soon as design is somewhat stable.