Outsourced or Sub-Contract Work in QuickBooks

Many manufacturing (and other) businesses send materials out to another firm to perform some intermediary processing of the item. This can be plating of a component part, populating a PC board with circuit components, and many other tasks. I’ll give you some ideas of how you might handle this in QuickBooks.

This kind of work is called by various names, such as “outsourcing” or “sub-contracting”. The concept is that you have some items in your inventory, you give those items to another company, they perform some sort of processing and return a modified part to you. This may be a product that you sell directly, or that you use in the assembly of another item. It is important to track these materials so that you know what you have at the outside vendor and can account for the materials in your balance sheet.

A key point to emphasize – even though you may be sending these items off-site to another company, unless you have a contract that states otherwise you own these items and they are a part of your inventory. When you send them out you are not reducing your inventory valuation, you are just moving the parts to another location. This is tough to track since QuickBooks doesn’t handle multiple locations, and it is important that you be able to track where the parts are so you can audit your vendor and know how many items are in their possession.

I would also like to point out that QuickBooks is a very flexible program in some ways, and there are other ways to deal with this situation than what I outline here. If you are a manufacturer trying to set up QuickBooks to cover this kind of situation, I highly recommend that you talk to a knowledgeable advisor who can examine your particular business situation.

Processing with a BOM

One approach is to move the materials through inventory by using assembly items, BOM’s and builds.

I’ll use a very simplistic example (I’m not that great at building realistic examples, sorry about that). We have a printed circuit board called “PCB” that contains 3 “AB451” capacitors and 2 “X91.5” resistors. The parts are purchased, and then given to an outside vendor who takes them and creates the PCB assembly for us. We take that and include it in a higher level assembly. Here is the assembly item:

How do we deal with the process? If I issue a build for the PCB assembly, my inventory of components is reduced and the inventory of PCB’s is increased. This doesn’t tell me how many component parts I’ve given to the vendor, and it doesn’t give me an accurate count of PCB’s available to be sold or used in other assemblies.

To address that point, issue a build for the assembly, then use the Edit menu to change the build to Pending. In my sample I created a pending build for 4 PCB’s, and if you look at an inventory report you see that we have 12 AB451 capacitors set aside (the “For Assemblies” column).

We can go to the Pending Builds report to see that we have 4 PCB’s outstanding:

When you receive the PCB’s back from the vendor you remove the pending status on the builds, and the components are consumed while the assemblies are added to inventory.

This is a fairly simple approach that doesn’t take much work. You can look at the stock status report and see that some items are reserved for the pending build, you can see how many processed items you are due by looking at the pending builds report.

I have two concerns over this approach. If you sell the component items (such as for replacement or repair parts) – these components are still considered to be on hand, but not available. So you have to be careful to not sell more than the available balance. In addition, if you go to issue another build for the assembly, since those parts are still on hand, it will let you issue that build. You aren’t stopped from using the parts that are allocated to a pending build.

An Alternate BOM Approach

Another approach can be used to resolve those two issues, which involves a bit more work and hides some of the information that I would like to see. What we are going to do is to create an intermediate assembly that represents the outsourced item. Take the item “PCB” and rename it to be “PCB-Outsourced”. It still has the same BOM. Now create another inventory assembly item called “PCB”, and give it one component, the “PCB-Outsourced”.

Issue a build for “PCB-Outsourced”, do not make it pending. The build removes your components from inventory and adds the intermediate outsourced item. The components are no longer available to invoices or other builds. You can tell how many of the outsourced assemblies you have by looking at the stock report for the assembly (I recommend that you have the phrase “DO NOT SELL” in the item description, so people know not to sell this item).

You do not see a listing of how many components you have at the vendor – if there is a problem you would have to go back and delete builds to reconstruct the values, and that could be a bit complicated.

When you receive the assemblies back from the vendor you would issue a build for the “PCB” assembly. This would consume the intermediate assembly and replenish the final assembly.

Another benefit of this approach comes into play if the vendor returns a variable number of finished products to you each delivery. Let’s say that you ask them for 10 assemblies and give them the parts. They return 4 one day and 6 the next. In the first approach it is difficult to handle – you can’t partially change the status of the pending build. In the alternate approach you just issue a build for the number you received each time.

Neither of these approaches fit the bill perfectly, but in QuickBooks we are often looking for workarounds in the inventory system. Both approaches manage the total valuation of our inventory correctly – the cost of the items remains in your inventory asset account.

Again – these methods aren’t the only approach you can take, and might not fit all business situations. Let me know if you have OTHER methods that work for you!

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.


    • Jim, as you know, there are a number of ways of dealing with the cost. It all depends on how you are paying for that, and how you want to handle the accounting. Many variations. A simple way is to add an “other charge” item in the BOM. That works if you have a fixed cost per assembly built, or at least a good estimate. You can put it either in the outsourced BOM or the higher level BOM, depending on how you want to deal with the timing issues. Or you can make inventory adjustments to the assembly each time you build some, if the costs vary quite a bit from time to time, or if the costs are per “run” instead of per “item”. Or you can just not worry about including the cost in the assembly and treat it as an overhead cost. Lots of ways of dealing with it, and the best choice really depends on your particular situation.

  • Thank you, Charlie. How would you handle the following situation? We purchase a leather hide that we then ship to a vendor to cut in pieces to our specifications. That vendor (or another) then sews those pieces together to create a sub-assembly that we then use to build up multiple chairs. We would like the cost of the components of the leather per chair and the cost of the cutting and sewing to be reflected in the COGS per chair. It would seem that we should issue a build for “outsourced cutting and sewing” on the hide, to record that we no longer have the hide, and then upon receipt of the sewn pieces, build the sub-assembly from the “outsourced” assembly and add prices for the cutting and sewing as service items. But then how to classify the service expense when the PO is issued to the vendor, and we receive the items and pay the bill? Wouldn’t that be double counting?

  • Charlie,
    A very good article. As you mention there are several situations and inventory is owned “unless you have a contract stating otherwise.” Here’s my situation. We use a contract manufacturer who places all orders for materials, manufactures it and we purchase the finished good and then resold. We don’t own the inventory until we purchase it which is when we ship the product (it’s a passthru). What I want to be able to do is have costed BOMs and inventory tracking WITHOUT having the inventory show up on the books as owned inventory. Do you have any suggestions?
    We’re using QB Enterprise Solutions 11.0 Mfg & Whlsale

    • Tara, I’m not sure that I have all the facts here. From what it sounds like, this is a situation that isn’t covered by this article. The manufacturer owns all the materials and is responsible for creating the assembly. You are just buying the assembly from them, as a single product. You can create that purchased assembly as an inventory assembly item, and you can give it a BOM that you can use for costing and management purposes, but you are not going to do a “build” with it. You just treat it as an inventory part. At least that is what it sounds like from your description.

  • Hello Charlie,
    Thank you for all your valuable teaching. I hope my two questions about your article are appropriate in this section;

    First a quick background: We have 3 plastic molded parts and are switching Plastic Molding suppliers; In the past we ordered, tracked, and paid for Inventory Parts using our PO and the supplier bought the raw materials. With our new molding supplier we have agreed to provide the raw materials (raw plastic & colorant) and pay only for their labor—i.e. Outsourcing. We have 4-6 weeks lead-time on these parts and I want to keep track of what’s on order, as well as handle the new parts correctly in inventory when they arrive (which I now understand will be ‘Assembly Items’ rather than ‘Inventory Items’),…and of course track the raw material given to the vendor.

    I somewhat understood your suggestion about using a new BOM & ‘Builds’ to track inventory given to the vendor, but wondered (Question #1) – would it also be OK to create two Inventory Items for the raw material we will buy – (e.g. ‘Raw Plastic’ & ‘Raw Plastic on Consignment’) and use the ‘Adjust Quantity/Value on Hand’ feature to move the raw materials (lbs.) given to new vendor?; Possible Memorized transaction?

    If this seems reasonable, I then assume the new plastic part ‘Assembly Items’ could consume the raw material on consignment at the vendor, and give me a balance on O/H at his location after he runs the parts (Audited of course over time).

    Second question – Is it safe to change the existing ‘Inventory Item’ type to ‘Assembly Item’ and use these for the new plastic parts? Since all of these current plastic parts have quantities O/H, purchased from the old supplier, this would save me from creating new assembly Items and moving the existing inventory over. I thought that changing the ‘Item Type’ might have some unplanned negative effect on the Database ID or something worse….

    Thanks in advance for your advice…
    Jim B.

    • Jim, I’m not sure if I follow you on the first question – do you want to use an adjustment in place of the build? I’m not sure what you save by doing that, although I would have to think about it more. The manual adjustment is more prone to data entry error. I generally avoid memorized transactions, because if you have too many of them, or you delete them, the QuickBooks database can easily get corrupted over time. Memorized Transactions tend to be flaky if used extensively.

      For the second question, this particular change in type (inventory item to inventory assembly) is fortunately one of the ones that causes NO problems in the database. You can do that easily, without any worries.

      • Charlie,
        Thank you. Good to hear its safe to change Item Types on Q#2.

        Regarding my first question, sorry for not being clear. In the third paragraph of your article, you emphasize the point “…it is important that you be able to track where the parts are so you can audit your vendor and know how many items are in their possession.”

        In my case, I have to send him a bulk plastic resin (eg 5,000 lbs) sent to him from my stock of say 20,000 lbs. Because of how it packaged, I can never send him the exact amount; he will always have some left over and I was trying to use QB to keep track of both how much he should use in molding my parts and how much material he should have left over. If he uses more than he should, he is responsible to replace it, or pay for it.

        I see how the BOM & Builds can track the material used during molding the parts, but thought the manual adjustment might be a way to help me keep a running total of excess material that should be in their possession after the order is completed. I wonder if maybe this is better kept outside of QB in a spreadsheet. Hope that was stated more clearly.


        • Yes, I see what you are saying, and that works fine. You use the special “consignment” part in the BOM, the quantity OH for that is how much you gave them, you transfer between the parts. That should work well

          • Charlie,
            Thank you. I have follow-up question about handling ‘Outsourced Labor’ on a BOM for this situation.
            Do you see any issues in QB setting up the Molder’s services as Inventory Part items (eg. Labor Units) rather than as Inventory ‘Service’ Item? I realize QB BOM can accommodate a ‘Service Item’, but to keep my inventory cost data consistent for these parts, I’ll need to capitalize this Outsourced Labor rather than expense it. Can you thing of any other way to handle this in QB?

            I realize this more work because I’ll need to issue a PO for the ‘Labor Units’, and then receive them before issuing any builds for the parts, but can’t see any other way to avoid expensing the Outsourced labor.

          • You need to talk to your financial advisor about how to capitalize that, there are a variety of implications that I’m not qualified to comment on. I would not use an inventory part item – it will prevent you from issuing a build if you don’t have the proper quantity on hand. Besides, to use that to get a cost capitalized, you have to do a receipt or adjustment into that item to put value there, and that transaction would pull the cost from some account. Why not just use a non-inventory item set up to that account in the first place? Much simpler. You might also want to read my article at http://www.sleeter.com/blog/2011/02/item-types-in-a-quickbooks-bill-of-materials/

  • Our company manufactures parts, however once our receiving area receives them from the machine side, we need to send them to coating before we can assemble and ship them.
    Is there a way to do an item receipt for those received items prior to coating, so we have a way to keep track of whats been produced? If so, how would we do that without the need of a bill, since its coming from our own machine shop?

    • You wouldn’t do an “item receipt” because you aren’t, if I understand what you are saying, receiving them from an outside source. These are manufactured parts? Wouldn’t they then be inventory assembly items that you are creating from other components? Then you would use a “build” transaction to create them.

      • They aren’t assembled yet. The parts are just coming over from the machine side over to our shipping side, then sent to coating, then received back about a month later coated, then they are assembled and shipped. We need a different way (other than inventory adjustment) to keep track of what comes over from the machine side, so that side can look into QB’s and see whats already been produced and they can plan from there. We were assuming doing an Item Receipt for the non coated parts would help, but maybe thats the wrong way to do it?

        • CV, it is hard to give you detailed comments when I don’t know anything at all about what you are doing, or making. Note that you may want to work with someone who is an experienced consultant with QuickBooks and manufacturing businesses.

          “Inventory assembly” doesn’t have to mean “assembling” as in putting things together. It can be some sort of process, too. So, for example, you could be buying bulk steel bars (and receiving them into inventory), and then taking those and milling them into a part of some sort. That is a process of changing a raw material into an intermediate part, which could be an “assembly”. The “build” transaction will remove the steel from inventory and receive the milled part. Then you would send that milled part out to be coated. That could be, if you want, another assembly. Then you get that assembly back and use it as a component in a larger assembly.

          There are good reasons to do that, but also in some cases reasons to not do that, the devil is in the details…

          • Our machining side takes raw material and machines it into an uncoated product. They do nothing on their side with QB’s. But on our side (S&R), once its created, we need to take that uncoated product and put it into inventory.
            S&R then sends that uncoated product to get coated. We receive that item back, then assemble it into a full assembled part.
            The only issue we are having is the beginning part, putting our own product (uncoated) into inventory without having to go into Adjusting Inventory, so we can send it out to get coated (in order to receive it back as a coated product, as shown in your Alternate BOM example).

          • CV, this goes beyond what I can advise you in simple blog comments. You purchased a raw material, I assume. You already have that value booked. You can do inventory adjustments to consume that raw material, and inventory adjustments to add the component part that is sent out, but that is a hassle. If you just use an item receipt to receive that coated inventory, you aren’t using up the raw material. Without having access to your file, and sitting down with you, I can’t say what in detail I would do, but I would suggest that you may want to use an intermediate assembly (or two, perhaps) to address the movement of the raw material into the coated assembly.

            If you contact me directly I can refer you to some experts in how to use QuickBooks in manufacturing environments who can sit down with you.

  • The company I work at is a manufacturer, using QuickBooks Enterprise Solutions 14.

    We manufacture ceiling panels. We purchase uncut fabric from one vendor, and then ship it to a different vendor, where the fabric gets cut into smaller pieces, and then shipped back to us. We then ship the custom-cut pieces of fabric (“Scrim”) to our customer (along with the ceiling panels).

    When I report on “Scrim” costs to my manager, I need to report the complete cost, including:
    1. The cost of the uncut fabric
    2. The cost of paying a vendor to cut the fabric into smaller pieces
    3. Any freight costs associated with transporting the fabric between vendors

    As far as I can tell, an Inventory Assembly is the best way to package all of these costs together. However, I’m running into a few problems.
    I’ve set up an Inventory Assembly, called “Scrim”. The BOM for the “Scrim” Inventory Assembly includes the uncut fabric (Inventory Part “Fab282”), the charge for getting the fabric cut (Service “FabCut”), and the charge for freight between vendors (Service “VendorFreight”).

    1. Although I have successfully added the cost of paying a vendor to cut the fabric (“FabCut”) to the BOM for the “Scrim” Inventory Assembly, it requires that I fill in a set cost for this service (example: $25/roll). Unfortunately, the cost from the vendor for slitting fabric is not that consistent (example: depending on a number of variables, fabric cutting could cost between $25 and $100/roll). The only option I can see to keep the cost of the “FabCut” Service in the “Scrim” Inventory Assembly accurate is to edit the cost of “FabCut” in the BOM every time that I create a Build Assembly, since (as far as I can tell), I can’t edit any costs when I’m creating an individual Build Assembly. Am I missing something? Is there a better option?

    2. I have a similar problem with the cost of freight (“VendorFreight”). I’d like to include “VendorFreight” in the “Scrim” Inventory Assembly. However, because the freight cost is not consistent, I’m having a difficult time including it in the BOM, unless I edit it manually every time I create a Build Assembly.

    It feels like there should be a solution here (I can’t be the only person with variable outsourcing costs), but I can’t seem to find a concrete answer anywhere. In addition to this article, I’ve also read this article (http://www.sleeter.com/blog/2011/02/item-types-in-a-quickbooks-bill-of-materials/), which was helpful, but still left me a little confused on the best way to handle highly variable costs.

    Thank you!

    • Jo, sometimes the best answer is “QuickBooks isn’t well suited for your kind of business”. It works best in a discrete make to stock environment, not one where there are a lot of variable costs.

      Your costs are going to vary, and you are going to have to enter that value somehow. It won’t appear on its own. Unfortunately, there isn’t a one-data-entry way to enter the bill for the vendor as well as getting the cost on the assembly. You correctly identified the problems and the typical approach – to change the values in each “build” as you create it. There isn’t a more automated way in QB itself.

      You can also do inventory adjustments to the assembly, but that doesn’t save any work (and might be more prone to error).

      Freight costs can be entered using Karl Irvin’s freight allocator tool, but that is just the same as an inventory adjustment, really.

      In any case, all this does is to change the value entered into inventory assets, which is averaged in with all the others. You don’t have “specific costing” here so you don’t really see the true cost of any assembly move through the system unless you create a new assembly item for each build you make, which isn’t usually practical.

      There may be some third party manufacturing products that can deal with this better, but they are going to be fairly expensive to add to your system.

      Why do you need to know the actual cost of a specific build?

      • Charlie,

        I appreciate your clear and helpful response. I understand that I’m butting against the intended use for QuickBooks software.

        Responding to your question, from an Accounting perspective we don’t need to know the actual cost of the specific build. In this case, the General Manager has been asking the Accounting Department for a while to provide this actual cost information, so I’ve been researching possible solutions.

        I appreciate your help, your answer provided me with the information that I need. Thank you!

        • Jo, one factor is how many of these kinds of assemblies you are creating annually. Some businesses use the “job costing” aspects of QuickBooks to get the kind of info you might be looking for, if the number of jobs is small.

          No matter how you approach it, if you use the same inventory assembly for multiple builds, you aren’t going to get specific costing because of the weighted average costing that QB does for inventory. You have to look outside of the program for that.

    • That would only work for Enterprise, of course. I’m not a fan of Advanced Inventory, as it tends to lead to file corruption if not cared for carefully. And it can really blow up the size of your file. But certainly, if you have component parts that exist at the outsourced vendor site, you can move the parts to a location for them, and then get some reports that would show you what you have at that site. And you can use transfers to move items from one location to another.

Leave a Comment