Non-Inventory items and assemblies
Do not use a non-inventory item in an assembly build, it does not work the way QB help says it will. What will happen is that the cost you enter in the cost block on the non-inventory item will go to COGS immediately when the build is created. That is wrong the cost should be held in the cost of the build and not sent to COGS until the build is sold.
QB does not hold the value of a non-inventory item marked for resale as it should, so when you use it in a build there is no value to add to the cost of the build. So what QB does is take the amount you entered in the cost block of the non-inventory item and send it to COGS immediately.
Since you had an expense when you bought the non-inventory item, using the non-inventory item in a build, adds that expense again in COGS. Not only is doubling expenses, but COGS should not have an entry until the assembly is sold.
Correction
Charlie Russell said it worked for him (see the comments for this entry) so I went back experimenting. IF, the key word is IF, you or QB enters the cost of the non-inventory item in the cost block below the description block before using it in an assembly (building the assembly), then it will work. For some reason my version of QB will not make that entry when I buy a non-inventory item.
What I did notice though, was the assembly build is keeping average cost based upon the previous builds too, so if the earlier builds used the non-inv item without the cost block filled in, the average cost is wrong. When the cost block of the non-inv item is filled in it works as Charlie says and the average computed cost starts increasing.