Odoo Manufacturing Subcontracting: Valuation and Stock Ownership Most Setups Get Wrong

Odoo manufacturing subcontracting is not just sending work to a vendor. It is a formal inventory and accounting flow where components leave your warehouse, get processed by the vendor, and return as finished goods with correct valuation. Most setups get the valuation wrong. This guide shows how it should work.

📋 Key Takeaways

  • You own the stock throughout the subcontracting cycle. Components at the vendor are still on your books, in a virtual Subcontractor Location.
  • Finished good valuation equals raw material cost from consumed components plus vendor processing cost from the purchase order. Both combine automatically on receipt.
  • The most common mistake is tracking only the vendor processing cost and ignoring the component value. This understates finished good cost and distorts COGS.
  • Each step creates a stock move with accounting entries when perpetual valuation is enabled. Component dispatch, vendor consumption, and finished good receipt are all traceable.
  • Multilevel subcontracting across Vendor A and Vendor B is possible but requires proper BOM and location configuration. Most complex flows need consulting.

Why Odoo Manufacturing Subcontracting Trips Up Standard Setups

  • Subcontracting involves three things happening simultaneously. Inventory moves cover components going out and finished goods coming in. Cost accumulation covers both material and processing. Accounting entries capture stock valuation changes at each step.
  • Most ERP setups handle one or two of these but not all three simultaneously. The result is that inventory numbers are right but cost is wrong, or cost is right but stock locations are wrong.
  • Odoo handles all three natively, but only when the subcontracting BOM, vendor location, and valuation method are configured correctly. The defaults do not do this automatically.
  • The complexity grows with multiple subcontractors, multilevel processing, or quality inspection before component dispatch.

Stock Ownership Through the Subcontract Flow

Who owns what at each stage

  • Before dispatch. Raw materials sit in your warehouse. Your stock. Your valuation. Full visibility.
  • After dispatch to vendor. Components move to a virtual Subcontractor Location. Still your stock. Still on your books. But physically at the vendor facility.
  • During processing. The vendor is working on your materials. Stock still shows at the Subcontractor Location. No ownership transfer has happened.
  • On receipt of finished goods. Finished goods enter your warehouse. Components are consumed from the Subcontractor Location. The finished good carries both material and processing cost.
💡You never lose ownership. This is the critical point. The components are always yours, just at a different location. The Subcontractor Location is a virtual location inside your Odoo warehouse structure, not a separate company.

Sending Components to a Subcontractor

Step by step

  • Define the subcontracting BOM. Same as a regular BOM but with Subcontracting type. Specify the vendor. List the components needed.
  • Create a purchase order to the vendor. The PO is for the finished product, not the components. The price on the PO is the processing fee.
  • Odoo creates a delivery order automatically. Components from your warehouse are picked and dispatched to the Subcontractor Location.
  • Validate the delivery. Components leave your physical warehouse. Stock moves to the Subcontractor Location. Accounting entry is an location transfer within the same valuation group with no P&L impact if both locations belong to the same valuation group.

Receiving Finished Goods Back

When the vendor completes processing

  • Create a receipt against the purchase order. The product received is the finished good defined in the subcontracting BOM.
  • Validate the receipt. Finished goods enter your warehouse. Components are consumed from the Subcontractor Location. Both stock moves happen in one action.
  • Valuation updates. The finished good enters stock at component cost from the consumed materials plus processing cost from the purchase order line.
  • Vendor bill. Created from the PO. The bill amount is the processing fee only. Component cost is not on the vendor bill because you supplied the materials.

Valuation at Each Step

How cost flows through the subcontracting cycle

  • Component dispatch. Component value moves from raw material stock to Subcontractor Location stock. Total company stock value is unchanged. This is just a location transfer.
  • Receipt of finished goods. Component value from consumed materials plus processing cost from the PO equals the finished good value. This combined cost posts to the finished goods stock account.
  • Vendor bill payment. Processing cost moves from accounts payable to the stock valuation already captured at receipt. Payment clears the payable.
💡The finished good cost includes both layers automatically. A table leg costs ₹200 in raw material. The vendor charges ₹80 for processing. The finished table leg enters stock at ₹280. When sold, COGS is ₹280. Both layers are traceable.

For businesses moving from manual tracking to automated cost flows, our Odoo accounting configuration checklist covers the accounts you need in place before subcontracting goes live.


Common Subcontracting Costing Errors

Mistakes that distort your product cost

  • Tracking only processing cost. The PO shows ₹80 per unit. The setup records only ₹80 as the finished good cost. The ₹200 in raw materials is ignored. COGS is understated by 71%.
  • Components not consumed from the Subcontractor Location. Finished goods are received but components are never deducted. Inventory shows both raw materials at the vendor AND finished goods in the warehouse. Stock is overstated.
  • Wrong valuation method on the subcontracting BOM. If the finished product uses average costing but components use standard costing, the combined valuation can produce inconsistent results.
  • Missing the Subcontractor Location in the warehouse structure. Without a proper virtual location, component dispatch is recorded as a regular delivery. Stock leaves the company books entirely.
💸Every costing error compounds. If 30% of your production is subcontracted and the valuation is wrong, 30% of your COGS is wrong. Your gross margin calculations are unreliable. Month-end reconciliation between inventory and accounts becomes impossible. A functional consultant validates the flow before go live.

Multilevel Subcontracting in Odoo

  • Scenario. You send raw material to Vendor A for cutting. Vendor A sends cut pieces to Vendor B for welding. Vendor B returns welded assemblies to you.
  • How Odoo handles it. Two subcontracting BOMs are required. The first covers raw material to cut pieces via Vendor A. The second covers cut pieces to welded assembly via Vendor B. Each has its own PO and delivery or receipt cycle.
  • Stock tracking. Raw materials sit at Vendor A Location. Cut pieces sit at Vendor B Location. Welded assemblies arrive at your warehouse. Three locations, three cost layers, all visible.
  • Cost accumulation. Raw material cost plus Vendor A processing plus Vendor B processing equals the final finished good cost.
  • Complexity warning. Multilevel odoo manufacturing subcontracting needs precise location and BOM configuration. Most implementations need consulting, especially pharma manufacturers evaluating the best ERP for pharma.

Tracking Subcontractor Performance

  • Lead time tracking. Compare expected processing time from the PO delivery date against actual receipt date. Identify vendors who consistently deliver late.
  • Yield tracking. Compare components sent vs finished goods received. A 10 kg loss on 100 kg dispatched must be recorded and costed.
  • Quality tracking. Incoming inspection on receipt catches defective batches before they enter stock.
  • Cost tracking. Compare actual processing cost per unit against quoted rate. Track rate changes over time per vendor.
  • Custom reporting. Standard Odoo reports cover basic subcontracting metrics. Detailed vendor scorecards covering on time rate, yield rate, and defect rate may require Odoo customization.

Accounting Impact of Subcontracting

Journal entries at each step with perpetual valuation

  • Component dispatch to vendor. Debit Subcontractor Location stock account, credit Warehouse stock account. No P&L impact.
  • Receipt of finished goods. Debit Finished goods stock account at component plus processing cost. Credit Subcontractor Location account for component value consumed plus Stock input account for processing cost.
  • Vendor bill validation. Debit Stock input account, credit Accounts payable.
  • Payment. Debit Accounts payable, credit Bank.
💡Every step is automatic when perpetual valuation is enabled. No manual journal entries are needed for subcontracting. The stock moves drive the accounting. If a stock move is wrong, the accounting entry is wrong. Getting the inventory flow right is getting the accounting right.

Businesses integrating manufacturing and accounting for the first time should review how Odoo inventory integration before configuring subcontracting.


Validating the Subcontracting Flow Before Relying on It

Five Tests to Run in Staging Before Go Live

  • Test 1. Send 10 units of Component X to Vendor A. Verify that Component X stock decreases in warehouse and appears at Subcontractor Location.
  • Test 2. Receive 10 units of Finished Good Y. Verify that Finished Good Y appears in warehouse and Component X is consumed from Subcontractor Location, leaving zero balance there.
  • Test 3. Check finished good valuation equals ₹200 times 10 plus ₹80 times 10, totalling ₹2,800.
  • Test 4. Check accounting entries. Verify all journal entries post correctly and trial balance reconciles.
  • Test 5. Sell the finished good and verify COGS posts at ₹280 per unit, not ₹80.
🚨If Test 5 fails and COGS shows only processing cost rather than material plus processing, the subcontracting setup is wrong. Do not go live. Fix the BOM, location, and valuation configuration. Re-test. Every unit sold with wrong COGS distorts your P&L.

If your team is evaluating whether Odoo fits your manufacturing operation before setup, our Odoo implementation services covers what to assess first.

Subcontracting Setup

Need Subcontracting Configured With Correct Valuation From Day One?

Tatvamasi Labs configures Odoo subcontracting for textile, chemical, solar, and engineering manufacturers. Component tracking, processing cost, and accounting entries validated before go live.

Discuss Your Subcontracting Setup

Frequently Asked Questions

Define a subcontracting BOM with vendor. PO triggers component delivery to vendor location. Vendor processes and returns finished goods. Component stock tracked at vendor. Processing cost adds to valuation automatically.
You do, throughout. Components at the vendor are in a virtual Subcontractor Location on your books. Ownership never transfers. The vendor processes your materials under a service contract.
Finished good equals component cost from consumed materials plus processing cost from the purchase order. Both are combined automatically at receipt. Finished good enters stock at total cost.
Tracking only processing cost and ignoring component value. This understates COGS by the material portion. If 30% of production is subcontracted and valuation is wrong, 30% of COGS is wrong.
Yes. Each level needs its own subcontracting BOM and PO cycle. Components are tracked at each vendor location. Cost accumulates across levels. Complex flows need consulting to configure correctly.
Component dispatch debits the Subcontractor Location stock account and credits the Warehouse stock account. Receipt of finished goods debits the finished goods stock account and credits both the Subcontractor Location account and the Stock input account. Vendor bill validation debits the Stock input account and credits Accounts payable.
Run five tests in staging. Send components to vendor and verify stock moves to Subcontractor Location. Receive finished goods and verify components are consumed. Check finished good valuation includes both component and processing cost. Verify accounting entries. Sell the finished good and confirm COGS reflects total cost, not just processing cost.