In most manufacturing businesses you will find that the structure of the Bill of Materials for items will change over time. Today I’ll discuss how QuickBooks deals with these changes.
Changes happen. A component part may become obsolete and be replaced by a newer one, there may be engineering changes to improve the product, you may have new government requirements that add or change the configuration. In major manufacturing software products you often will find a revision control feature, or a way to track changes in your products. QuickBooks doesn’t truly provide this feature unfortunately, but it does handle changes relatively gracefully.
One of the concerns I often hear is “if I change my BOM will it affect my existing builds?”. That is a good question – because there are times when you can make a change to QuickBooks that will have an effect on actions that you’ve taken in the past. Sometimes this is good, often it isn’t. To understand how changing your BOM affects QuickBooks we have to understand the difference between a list record and a transaction record.
- List records tend to be descriptive in nature. The item list, the customer list, the vendor list for example. You have descriptions of the record, information about accounts that are to be used, and so forth. This generally is information that is not date sensitive.
- Transaction records relate to changes in information. Assembly builds, invoices, purchase orders for example. There is a date that the transaction relates to, and there are changes in information such as the consumption or supply of a quantity of items in the item list.
When you create your bill of material for an Inventory Assembly item, you are creating a list record. It is a description of the component parts for that item, and it doesn’t relate to time. What you see now is what you get. When you issue a “build” transaction to build the assembly item you are creating a transaction record. You enter a date that the build occurs on, a quantity, and the item to build.
How Changes in a BOM Affect Builds
When you issue a “build” transaction the program looks at the current state of the BOM for the inventory assembly item. It will copy the list of component parts into the transaction. If at a later date you make a change to the BOM in the inventory assembly item, that change has no effect on existing builds. If you issue a new build then the changed BOM is used.
This is what we normally would hope for – and in a small way it gives us revision control. You can see a history of the changes to the BOM for the item by looking at the part list in build transactions over time.
The downside is that it also means that you can’t easily correct mistakes after the fact. If you find that you have issued a build for a BOM that has an error, and you want to correct it, you can’t just change the current BOM. You also have no way to directly change the existing build transactions. Your only options are to make a manual inventory adjustment or to delete the build transaction and issue it again (keeping in mind that the new build, regardless of what date you use, will use the current BOM structure).
As a side note – be careful about deleting a build. If the item you are building is a subassembly that will be used as a component in another build you may create a cascading series of problems. Since build transactions are date sensitive, and your inventory balances are date sensitive, if you delete a build of a subassembly you may find that this creates a shortage for the build of a higher level assembly. If you decrease the supply of a part so that there aren’t enough to support an existing build, QuickBooks will change that existing build to a pending build. That subsequently affects the balance of that other assembled part, and you can have a series of problems.
There are a number of shortcomings in this system – including some bugs (as of the date that this is being written).
- QuickBooks doesn’t have a way of printing a manufacturing work order – you can’t print the expanded BOM for an assembly you are building (with the quantities of parts being used). All you can do is print a simple BOM report for a single assembly. You can find a way to print this with third party products like CCRQBOM or the ODBC driver and a report program.
- Once you have changed the BOM in the item list you have no way of printing a report that shows what the component list was at the time the build was issued.
- Although you can see the historical BOM when looking at a build transaction, third party programs that access the QuickBooks database cannot. There is a bug in the QuickBooks programming interface (which all third party products must use, including the ODBC driver) where an inquiry to a build transaction will show you the current BOM, not the part list that was used in the build transaction itself.