Understanding Cost & Average Cost

Cost and average cost are a problem for people new to QB.

Average cost is only displayed at the bottom of the inventory or assembly item screen, Average cost is a function of purchases. Average cost is what QB uses to debit COGS when you sell an inventory item. When items are received, QB adds the number ordered to the number on hand, and adds the total value of what was ordered to the value of what is on hand. Then QB divides the new total value by the new quantity to get the average cost.

QB keeps average cost to five decimal places. Sometimes that can cause problems over time. You can have a quantity of zero on hand and still have an average cost. I consider this to be another bug in QB, when you sell to zero on hand the cost for that item should also equal zero.

Cost is a value you can type into a field on the item screen. With few exceptions it does nothing to the accounting entries. This cost value is what QB updates when it asks you if you want the cost updated when buying inventory items. It is for reference on reports only.

QB has a bug (well several) but on the inventory item screen, if you enter a cost and have not bought the item to establish an average cost, QB will take the value you entered as cost out of the inventory asset account and post it to COGS when you sell the item. This is wrong. There was never a value in inventory asset for this item to start with, and taking the entered value out of the asset account will cause problems in the accounting.

Unfortunately cost is also what shows up in the BOM list of an assembly item. But the actual cost of the assembly item is not determined until you tell QB to build the assembly. At that time QB adds up the average costs of the items in the BOM and that total is the assembly item cost, not the total of the costs shown in the BOM.

Non-inventory items do not hold a value and they do not hold a quantity, so there is no average cost for them. When you buy a non-inventory item the full purchase price goes to the expense account immediately.

When you make a non-inventory item double sided (set the check mark that this is being used in an assembly or for resale) the non-inventory item screen now has a cost block. Now things go from bad to worse. If you put a non-inventory item in the BOM of an assembly item, the cost of the non-inventory item will be used to determine the assembly item cost when you build it. QB added the cost you said was for the non-inventory item to the BOM total and TOOK that value out of COGS so it could set the average cost of the assembly item. (This of course assumes like most businesses you use COGS for the expense account.) Why is that wrong? Well truth be told it might be wrong or it might be right. It is right only IF you bought the non-inventory item before you built the assembly AND the price you bought it at was the same as the cost value you entered. It is wrong in all other instances.

Then on the assembly item screen there is also a cost block. When you click the help link for that block QB tells you:
Use this field to enter the total cost of the assembly. This can simply be the total cost of the components in the bill of materials or can also include a component markup amount and other costs not listed in the bill of materials. If you don’t enter an amount in the Cost field, QuickBooks uses the Total Bill of Materials Cost, which appears below the Bill of Materials table.

Sounds good, but it is wrong. Enter an amount in that block and build the assembly and the cost of the assembly does not change. And QB does not use the Total Bill of Materials Cost, which appears below the Bill of Materials table.