Working with QuickBooks

QuickBooks Manufacturing Bill of Materials

In my post on QuickBooks manufacturing basicsI discussed the essential nuts and bolts (sorry for the pun) of building assemblies in QuickBooks. Today I’ll talk about structuring your bills of material (BOM’s). A BOM is a simple thing, right? You want to build something, you just enter in the list of all the parts that you use, and there you are. On some levels that is correct, but if you are looking for inventory accuracy, accounting accuracy, and want to make your life easy, you need to give this some more thought.

QuickBooks is only a rudimentary manufacturing system, so I’ll start off by listing some of its limitations:

  • You can only add 100 different items to a BOM if you are using Premier. Enterprise is more flexible, you can add up to 500 different items.
  • Reporting based on BOM’s is very limited
  • Although you can create multiple-level assemblies (that is, a part in an assembly can itself be another assembly), a build will only work with a single level at a time.
  • Integrating non material items in a BOM can be tricky when it comes to costing.

In this article we’ll talk about basic structuring of the BOM – we’ll go into how to use various item types in a future article.

Working with Levels

How do you look at the item you are assembling? There are different ways of listing the parts in an assembly – either a flat listing that shows all of the parts, or a nestedlisting that shows the parts in a tree structure with subassemblies. Each has its advantages, each has its problems in QuickBooks.

Let’s look at a simple assembly, a computer that I’m putting together from components. I have a desktop box, two monitors (it’s a dual monitor system, fancy), and a keyboard. That desktop box itself has a case, motherboard, power supply and a video card (I’m greatly simplifying this for the sake of discussion).

If I have all these parts and I make the computer all at once, then I can make a flat BOM, like the following:

QuickBooks Bill of Material

This is simple to work with. I can print a listing to give to the assembler, and I can issue a single buildto create the item all at once. For simple assemblies, this works well and fits within the QuickBooks approach to manufacturing. There are some drawbacks, though, which become more apparent when the product becomes more complicated:

  • If you have a more complicated product you can run into the limitation of the number of items that are allowed in a BOM.
  • If you build in stages you have no indication of what those stages are. This BOM doesn’t show you that you need to build the desktop box by first assembling the case, power supply, motherboard and video card. You also can’t use this if are building a number of desktop boxes themselves to hold on your shelves, ready for final assembly into systems.

The alternate approach is to create subassembly items and make a nestedBOM. We’ll create a new inventory assembly item for the desktop box, and alter the desktop computer assembly appropriately. Here is the BOM for the desktop box (subassembly):

QuickBooks subassembly

Here is the changed BOM for the desktop computer – note that we have dropped some of the components and have added the desktop case as a subassembly:

QuickBooks high level assembly 

Now we have two assembly items – one for the desktop box, and one for the final assembled computer. There are a number of advantages to this approach:

  • You get around the limit on the number of lines in a BOM.
  • You can build the subassembly by itself so that you can stock it for replacement parts, or to hold some ready for the final assembly.
  • If you have several variations of the final product that use the same common subassembly you can make changes to that subassembly quite easily. In a simple example, let’s say that we have a number of variations of final assembled desktop computer. Some have two monitors, some have one. Some have a 17″ monitor, some have a 20″ monitor. Some use an ergonomic keyboard, some use an economy keyboard. All use the same desktop box as a starting point. If you use a flatBOM then you have to enter all of the components for the desktop box for each of your final assemblies, rather than just adding the one subassembly component. If you have to make a change to that desktop box – such as changing to a different type of video card, you would have to make the change in each final assembly if you use a flat BOM, where you only have to make one change if you use the nested BOM.
  • Your printed BOM more closely mimics the assembly process – you have one BOM for the desktop box, you have another BOM for the final assembled computer.

However, there are trade-offs. Your manufacturing process in QuickBooks is more complicated, your QuickBooks reports don’t show you as much information as you had before.

  • If you want to build an assembled computer you now have a two step process instead of one. You must first issue a buildfor the desktop box subassembly. When that is done, you then have to issue a buildfor the assembled computer. QuickBooks won’t issue a multiple level build– that is, you can’t issue the build for the top level assembly and have it take care of all the parts of the subassemblies.
  • There is no way in QuickBooks to print a complete BOM of the top level assembly including the parts of the subassembly. You can only print a single level BOM.
  • When you look at the top level assembly in the build assemblywindow, which tells you if you can build the required quantity of the assembly, you don’t have a way of seeing if you have any shortages of the lowest level parts in the subassembly. You can’t see if you can build this item. You first have to look at the subassembly, then at the top level assembly.

These limitations make it difficult to work with multiple level BOM’s in QuickBooks. If you have a simple product, or a limited number of products, you might be better off working with flatBOM’s. If your products are more complex, though, that might not be an option. With complicated products you need the ability to print a BOM for a subassembly, and you may need the ability to manufacture quantities of the subassembly separate from the final assembly itself. If you often have changes to the composition of your subassemblies you will find it hard to achieve accuracy if you have to go through all of your assemblies to make a change, rather than just editing the common subassembly one time.

Working with nestedBOM’s in QuickBooks can be done, you just need to pay close attention to the order in which you are building assemblies, and keep careful records of your assembly listings.

Working with 3rd Party Programs

If you are working with complicated products and need to maintain multiple level BOM’s then you may find it worthwhile to work with one of several 3rdparty add-on programs that work with QuickBooks. At this time we won’t go into a detailed description of those that are available – you can find information on them in the QuickBooks Solutions Marketplace. These 3rd party programs fall into a few broad categories:

  • Inventory replacements: Some programs, like Fishbowl Inventory, maintain a complete inventory system outsideof QuickBooks. This gives the product more flexibility in how inventory can be managed, but can be more expensive and means that you have to manage a completely separate program and database.
  • Closely integrated: Another approach is to work with the inventory records in QuickBooks while generating reports and managing data in ways that QuickBooks doesn’t do, such as CCRQBOM. With this approach you do more of your work in QuickBooks where things are familiar, and you don’t have to manage a separate database. Often this approach is less expensive, but you still have to live with some of the restrictions in QuickBooks.

About the author

Charlie Russell

Charlie Russell is the founder of CCRSoftware. He's been involved with the small business software industry since the mid 70's, and remembers releasing his first commercial accounting software product when you had a one-floppy disk drive system, loading the program from one floppy and then replacing that with the other floppy to hold the data. He has a special interest in inventory and manufacturing software for small businesses. Charlie is a Certified Advanced QuickBooks ProAdvisor with additional certifications for QuickBooks Online and QuickBooks Enterprise. He also is a Xero Certified Partner. Visit his CCRSoftware web site for information about his QuickBooks add-on products. Charlie can be reached at [email protected]

He is also the author of the California Wildflower Hikes blog

Connect with Charlie at Google


  • I am trying to apply QuickBooks manufacturing and inventory to a food processing business. I can make up a BOM but as often happens with food, you can make the same recipe twice and have different yields. I have been through your tutorials and articles about manufacturing but I am left with how to make sure the correct amount of ingredients are removed from inventory when making a batch which will sometimes yield 52 bottles and sometimes 58.
    Any advice?

  • Varada, QuickBooks is not set up for variable yield. THe short answer is that if you are primarily interested in handling the variable number of items created, just issue the job for the expected amount and then do a “value adjustment” in the inventory adjustment window to correct the balance, leaving the total value the same. If you expect to make 52 bottles, issue the build for 52 bottles. If you end up with 58 bottls, look at the total value on hand, and total quantity on hand, then increase the quantity on hand to be 8 higher, but with the same total value.

  • Charlie,
    You are the QB Guru!
    Above you say “Your printed BOM more closely mimics the assembly process – you have one BOM for the desktop box, you have another BOM for the final assembled computer”
    How can I print an assembly that has another assembly, so another BOM within it.That will print everything i need to assemble the complete assembly. Showing me everything I need to make the entire assembly.
    For example:
    I have an assembly for a cabinet that has a drawer in it.
    So i have what is needed for the Cabinet in the assembly, then i have the assembly for the drawer, the drawer slides, screws and so on, as a sub assembly in the cabinet assembly. I need to print a BOM for the cabinet assembly that will include the box’s assembly parts and the drawer parts, all in one BOM print out!
    I’m using 2013 Enterprise Solutions Contractor editon.(I havent found a way to do it in the contractor edition, is there a way in the manufacturing edition?!)
    Thanks for your help!

    • Russell, you are talking about a multiple level BOM. As I point out in the article, QuickBooks (any version) doesn’t handle that well as far as printing or building assemblies. It only works at a single level. There are manufacturing add-on products that can help.

      The simplest one to use (which will work with the Contractor as well as the Manufacturing editions) is CCRQBOM, which can print a full level BOM for you based on your QuickBooks item list. Note that this is a product that my own company produces. See it at

  • I have a client with a jewelry business. They do custom designs and would like to keep track of that in their QuickBooks. Any suggestions on whether it should be an assembly, group, or build?

    Thank you,

  • We have a manufaturing tiles company. How I can introduce the monthly production?…Do I have to made a Production order?..

  • Hi!
    I am a new startup and I started with quickbooks online. I have to start to do the configuration of the bill of materials etc. but I can’t find where to put it. Do you know where I can find it, do you have a manual for this
    KInd Regards


    • QuickBooks Online doesn’t provide an “inventory assembly” item, so you have no way to enter a bill of materials. With QBO you have to look at a manufacturing add-on product to handle that chore.

  • I am trying to print a report that would show all single level bill of materials and list all of it’s components. So item #420-3046-03 is a 3ft air/coolant line. Next it would list 410-3042, 410-3257,260-3391 which are the components used to complete the air/coolant line. I am trying to print a reference guide for the people building the units to be able to look up the item # and see all of the items used to complete the part. Is there any way to do this in QuickBooks?

    • Chris, if you edit the assembly item, you should see a “Print” button to the right. That prints a single level BOM. Unfortunately you cannot edit the format, so it includes cost information, which many people don’t like.

      Alternately, you can use an addon product to do this with greater control. My own company, CCRSoftware, produces CCRQBOM. This can be used to print a BOM and you can edit the template. See it at

      • Yes I have been able to do this. What I am trying to do now would be to print multiple BOM all at once listing components in a report type format more like a book. The assembler would be able to look up the assembly they are making from the report which would print the assembly part numbers in order and then list the components. I have one that was made by a previous employee in 2009. The cost information does not matter.

Leave a Comment