QuickBooks Manufacturing Bill of Materials

Written by Charlie Russell

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.

Save pagePDF pageEmail pagePrint page

About the author

Charlie Russell

Charlie Russell has 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 an 8-bit microcomputer with one 8 inch floppy disk drive. 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, as well as being a Xero Certified Partner. Charlie started blogging about QuickBooks in 2008 (Practical QuickBooks) and has been the managing editor and primary writer for the Sleeter Report since 2011. Charlie can be reached at charlie@ccrsoftware.com

Visit his CCRSoftware web site for information about his QuickBooks add-on products. He is also the author of the California Wildflower Hikes blog.


  • 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 http://www.ccrsoftware.com/CCRQBOM/CCRQBOM.htm

  • 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 http://ccrsoftware.com/CCRQBOM/CCRQBOM.htm

      • 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.

  • Hi Charlie, been searching on the Internet for an answer for the past two days. I hope u still offering your services coz your last blog was in dec 2014. I so hope you are. I’m at my ends wits….

    • Sharon, I’m still writing, and if you click on the “authors” link above, and then on my list of posts, you’ll see that I’ve posted 25 articles so far just this year…

      You didn’t ask a question, so there isn’t anything to answer…

      • Oh great…I’m so glad. I should have asked you straight off. Anyway. Here goes.
        I’m running a restaurant and bar and have just purchased quick books enterprise. I’m setting up items I sell, and seem to be stuck on the following:
        I purchase mince meat in 1kg bags. With the 1kg I make either 30meatballs or 50 Samoosas. And sell. So I’m getting confused as how to best set this up as I track the inventory of each item closely. Thank you in advance.

        • Sharon, it is hard to give a really good answer via blog comments, particularly since there is so much about your business process and needs that I don’t know about.

          In a very general sense, when I look at a business that is doing the kind of thing I think you are doing, the first question is “do you really need to control things in that much detail?” You have waste and scrap issues, variability of different kinds, and that makes it hard to track inventory of your mince meat closely. And, the “cost” of doing all the work to closely maintain inventory levels of mince meat may well exceed any savings you get, particularly if that mince meat component isn’t really expensive. I often recommend that you don’t try to use inventory assemblies to track that kind of process in that situation, rather that you use either a periodic inventory count or some other method of tracking that is similar. I’m guessing that all of these items move through the business fast, so “inventory parts” may not be the best approach.

          If you do have some reason where you really need to track the movement of items through inventory, then QuickBooks isn’t going to make it easy for you. A Bill of Material is set up to create “1” of something. So if you are tracking the quantity of meatballs you have (again, that seems overkill to me), you need to create a BOM (recipe) for one meatball. It takes 0.0333 of a kilogram of mince meat. That then introduces another issue, as you have some rounding errors. If you make 30 meatballs that consumes 0.999 of a kilogram…

          Alternately, you make the BOM use 1 KG of mince meat (which makes a really, really big meatball, I guess), and then when you build the assembly to build that one meatball you do an inventory quantity/value adjustment to change the quantity on hand +29 while keeping the value on hand the same. You have to do that for each build.

          It adds a lot of work to track things in that environment, and unless these are really expensive meatballs you may find that the extra work isn’t worth the cost in time and effort. Again, I don’t know your situation in detail, so I’m just making generalizations.

          • Dear Charlie, thank you for your indepth explaination. it was most helpful. you are very right in that i cannot use QB to track the food item inventory. its far too tidious and definately overkill.
            If someone has the same question, this is what i’ve done. i have opted to create the meatball item as a service in order to make the sale and the mince meat item as a non inventory part. This way QB recognises a purchase of mince and recognises the sale of a meatball.
            and as it is important for my business to track every single meatball sold and every since transfer of the mincemeat- good old excel will suffice.
            thank you again for your input

          • You can make the meatball a non-inventory item as well, just for classification purposes on QB reports – works the same as being a service item if you set it up right. If you need to track the quantity of meatballs, you can make them an inventory part and do adjustments. Or you can make it an inventory part but keep the mincemeat as a non-inventory part, so you don’t get into rounding issues on quantities.

  • I have a question about a Bill of Materials. Can you remove columns? For instance I want to print out the BOM but don’t want the prices included. I want to print it to put into a binder with an assembly guide for a machine but don’t want my employees seeing all the financials. Can you do that?

  • Hi Charlie, should labor costs be included in the BOM or just the raw material? My accountant assigned a labor cost based on time to complete an assembly, will this not dictate an incorrect total? Also when completing the BOM the total is manually entered into the ‘Cost’ cell, what does this cost cell do? Thanks!

    • I’m not sure what exactly you are looking for, but you probably can’t do what you want. That is, you have to have the items on hand before you can build the assembly. Or are you looking for something else?

  • Let’s take into consideration the example you have with the computers. We shipped a computer to the customer, but we were out of video card. I want to create a back order for the video card. What is the best way to do it?

    • Was the “computer” an assembly that you built? Or a group item? If it was an assembly, and it was an “inventory part”, and you didn’t have it, you couldn’t build it. If it was a non-inventory part then you could.

      The “build” process doesn’t have a backorder feature, and invoices won’t let you show the components of the BOM. Backorders are traced through sales orders and invoices in QuickBooks, using inventory parts. You could add the inventory part to the sales order, then create the invoice but say you don’t have it. That will show on the invoice, and show as an item in sales orders that is waiting to be fulfilled. No affect on quantity on hand or your accounts yet. Then when you get the item you can remove it from the sales order and send to the customer. You don’t want to INVOICE it, even at a zero cost, because it should have been taken care of in the “build”. Of course, as I said, if you didn’t have it on hand in the first place you couldn’t have issued a build….

  • Charlie,

    I just want to make sure I am getting this right. Let’s say I set up all BOMs that I will be using. If a customer orders a computer and I am out of a video card, I will not be able to create a SO using a BOM since I am out of the video card? Correct? Is there a way of working around it? Like adjusting negative quantity on hand for a video card, so I am able to build a BOM. And then creating another sales order for a video card (backorder) under the same customer and then close the sales order once a backordered video card is shipped.

    • You can create a SALES ORDER, but you cannot BUILD the assembly item if you don’t have the parts. And on an INVOICE you certainly can sell something you don’t have, but that would create a negative inventory situation, and I don’t like to see people allowing that to happen (lots of things wrong with negative inventory, as we’ve written about). So go ahead and add the item to the sales order, and that will make it show up on your inventory reports as “on sales order”. A “backorder” in QuickBooks only happens if you invoice the sales order and keep that item off the invoice.

      • Charlie,

        We have inventory items that we rent or loan to customers. Do you have any articles pertaining of how to handle rental items? Also, we have a rent-to-own program. Customers ask for monthly statements. I was wondering if there is an option in QB to send monthly invoices to the customers? We use QB Enterprise. I appreciate any help.

        • I don’t have any articles on rental businesses and how to use QuickBooks. I don’t work with those kinds of businesses myself. If you don’t need to track who has things, you can just bill them. Unfortunately, QuickBooks always calculates rateXquantity=amount, so you can’t get something like rateXquantityXdays=amount, unless you look at a product like CCRQInvoice. If you want to track who has what items, you can play around with Sales Orders to hold the quantities of items, perhaps. Not clean.

          For recurring billing you can use the “memorized transaction” feature to create memorized transactions, but I’m not a fan of that. Or go to http://www.q2q.us and look for their recurring billing add-on .

  • charlie u did well i like it ,sir i have questions how to enter direct labor cost in BOM if we pay him wages on weekly basis or Monthly basis how handle this

  • Thank you for all the information over the years. I do have a question related to this topic that I’m hopeful you can help with. Can the default columns in a BOM full view (from inventory center) be customized? I would like to print my BOM’s but also want to include a vendor column in the export. Currently the only way I have found to print a BOM is to use the print to file option from the assembly item screen but it appears there is no option to edit the columns to change the information exported. Thanks for any help. I use QB manufacturing edition 2016

    • You can’t modify that report, as you have found. No way around that from within QB itself.

      You can add the “preferred vendor” field to a report printed with an addon product, though. One would be QQube, which I’ve reviewed in this blog (some years ago, but the review is still valid). Great data extraction product, although it takes a bit of work to understand fully, and it isn’t cheap. My favorite general reporting tool for QB Desktop. Another product that can be used to help here is CCRQBOM, which is lower cost and specific to manufacturing issues. You can find it at http://ccrsoftware.com/CCRQBOM/CCRQBOM.htm. Please note that my company (CCRSoftware) created this product, so I do have a bit of a bias here.

  • Thank you very much for your advise on this!

    I ended up adding a custom field called “vendor” to all my items/parts in inventory center. (Double click item, select custom fields, add a new field called “vendor”. I entered the vendor name for each item in the new custom vendor field. In the build assembly screen I edited the columns displayed to include this new field but its not necessary here. Save a “pending build” for a QTY of at least 1. Then from the top menu….(still from the build assembly screen) select….reports….then transaction journal. From this screen you can customize the report to include the new custom vendor field created above. You can delete the pending build after you have exported what you need. For the life of me I cannot figure out why QB will not allow the reports to pull from the current preferred vendor field. Hope this helps others out there.

    • Interesting approach. Lots of steps, and I’m not thrilled about creating a transaction just to get a report, then deleting it. Lots of junk in the audit trail then. Messy approach. But you do what you have to do to get around the limitations of the program, right?

      It is always interesting to note how limited the reporting capabilities are relating to inventory features in QuickBooks desktop.

  • Charlie,
    We converted many items into assemblies and build BOMs for each one after our inventory count on May 31, 2016. We just realized that changing the cost in the BOMs affected all data retroactively in our Inventory Asset account. Do you know why it is happening and how to stop this since we are planning to convert more items into assemblies?

    • Just changing an inventory part item into an inventory assembly item won’t change the cost. What exactly did you do to change “cost”? Inventory adjustment, or what? Or were those original parts a different item type than “inventory part”?

  • Here is one of the examples. We sell discs that were set as inventory items in QB. However, they were never capturing the cost of screen printed service that was provided by one of our vendors. So, we changed all discs into assemblies and built a BOM including the blank disc and screen printing service. After that we discovered that it affected our 2015 data.

    • When you say “inventory item”, were they “non-inventory part” items, or “inventory part” items? Simply changing an “inventory part” item to an “inventory assembly” item will not have any effect on costing or affect any prior transactions using those items. Changing a “non-inventory part” item over could, because there are significant differences in how these items are used in the accounting system.

      Building an assembly by itself, without doing some associated inventory adjustments of some sort, won’t affect anything that is dated prior to the date of the assembly build. No effect on 2015 data unless you entered a 2015 date for the assembly builds.

  • Hi Charlie,

    I have a question on assemblies. We are a packaging company that designs custom packaging needs. I was considering using QuickBooks Mfg & Wholesale to track the custom items that we make. I am struggling with figuring out how to set up assemblies. For example, we will bring in a sheet of Foam measuring 108″ x 48″ x 3″. Depending on the design, we can get various die cuts out of a single sheet. For one product we may get a yield of 10 pieces from a sheet and on another 20 pieces. I was getting confused with the units of measure, etc. when trying to figure this out. Maybe Quickbooks just won’t work for this? Thanks in advance.

Leave a Comment