Follow Us

  • erpgap-icon
  • erpgap-icon
  • erpgap-icon

New Stock Valuation in Odoo 19: Manufacturing, Subcontracting, Dropshipping & Negative Stock Explained

Explore different use cases regarding the new stock valuation

Odoo ERPGAP Blog Cover Image

New Stock Valuation in Odoo 19: Use Cases

In Odoo 19, there have been some changes. One of the biggest changes was the way the inventory valuation is registered. With the disappearance of the interim accounts and of the valuation layers. In this article you’ll be able to understand through different use cases, how the inventory valuation entries will behave in Odoo 19.

Note: The following use cases will have in mind the perpetual stock valuation. For periodic valuation, the processes will be the same; the only change is that the stock valuation entries will be recorded after they are generated, either manually, daily or monthly.

Manufacturing

When you manufacture your products, your raw materials are consumed, and your finished goods are created. Keeping track of your stock valuation during this process is crucial, especially if you want accurate accounting and cost analysis.

In Odoo 19, manufacturing valuation works as follows:

  • Purchasing raw materials: The value of each raw material is only accounted for when the vendor bill is posted. There will be an increase (debit) in your raw materials account.
  • Raw material consumption: When raw materials are consumed in production, their value is credited from the Raw Material Stock Valuation account and debited to the Cost of Production account.
  • Work center and operation costs: Any labor or overhead costs related to production are added to WIP, ensuring that the total cost of production is captured.
  • Finished goods production: Once the manufacturing order is completed, the finished goods value will be registered in your Finished Goods Valuation Account.
  • Delivering the finished goods to the client: No account will suffer any alteration. Only when the client is invoiced, the Finished Goods account will be credited and the COGS debited.

This approach ensures that stock valuation reflects all components of production cost, WIP is properly accounted for, and financial reconciliation between inventory and accounting is straightforward.

Before starting the manufacturing process, it is important to have in mind that there are certain accounts that need to be configured:

  • Stock Account for manufactured products: defined on the product category
  • Stock Account for component: defined on the product category
  • Cost of Production Account: defined on the production location

Practical Example:

Your office furniture company manufactures some of their products and you received a request for quotation for your brand new desk, with the following BOM:

bill of materials

Desktop Cost = 40$ Office Desk Legs Cost = 10$ x 4 = 40$ Office Desk Cost = 80$, Sales Price = 150$

Once the quotation is confirmed, an MO for the desk and a PO for its raw materials will be created.

Vendor Bill

manufacturing vendor bill

Manufacturing

manufacturing entries

Note: The component name is not visible anymore, in Odoo 19, in the manufacturing journal entry as it was in Odoo 18. The manufacturing journal entry labels are now standardized to only display the manufacturing order reference.

finished goods entry

Customer Invoice

manufacturing invoice

  • What changes? In previous versions, the process would go like this:

Receiving raw materials

receiving raw materials entry

Vendor Bill

manufacturing vendor bill

Manufacturing

manufacturing entries v18

Delivering the finished product

products delivery

Customer Invoice

manufacturing invoice v18

As you can see, there are way more journal items in older versions compared to version 19.

  • Receiving Raw Materials: When the raw materials arrived at your warehouse, their value was stored in the Raw Materials Valuation Account and the Stock Input Account. After posting the vendor bill, your Stock Input Account would be credited.
  • Manufacturing: When the MO consumed your raw materials, the Raw Materials Valuation Account would be credited and your Cost of Production debited in counterpart. After finishing the manufacturing process, the Manufactured Products Valuation Account would be debited in counterpart of the Cost of Production Account.
  • Delivering the finished product: After delivering the finished product to the client, the Finished Goods Valuation Account would be credited, while your Stock Output Account would be debited. When posting the invoice, the Stock Output Account would be balanced and the COGS would be registered.

Subcontracting

Subcontracting allows a company to save time and money by outsourcing part or all of its manufacturing process.

  • Basic Subcontracting

In Basic Subcontracting, the subcontractor is fully responsible for sourcing all components needed to manufacture a product. In this case there will be no purchase for the raw materials, only the bill for the subcontracting service.

  • Resupply Subcontractor on Order

In Resupply Subcontractor on Order, your company supplies the components that the subcontractor needs. You have a bill for your raw materials and another one for your subcontracting service.

  • Dropship Subcontractor on Order

In Dropship Subcontractor on Order, your company does not physically handle components, the vendor ships them directly to the subcontractor. In this case, you will also have two bills.

In this version, this route is added within the Dropship Route, you can find it by going to: Inventory -> Configuration -> Routes -> Dropship.

In this article we will focus on the Resupply Subcontractor on Order. In this scenario, your company still owns the raw materials, but production occurs at a third-party location, which affects stock valuation.

In Odoo 19, subcontracting valuation is handled as follows:

  • Receiving the raw materials: To resupply your subcontractor, you need to have your components in stock.
  • Sending components to the subcontractor: Raw materials are moved from the company stock into the subcontracting location.
  • Receiving finished products: Once the subcontractor delivers the finished goods, the material and subcontracting service costs are accumulated into the Finished Goods Stock Valuation Account. It’s important to note that this works better with AVCO/FIFO costing methods.
  • Vendor bill: Once the bill is posted, the Finished Goods Valuation Account will be debited.
  • Delivering the product to the client: After receiving the finished products, you can post the invoice so that the Finished Goods Valuation Account can be credited.

The calculation of the cost in subcontracting is the same across Odoo 17, 18, and 19, but Odoo 19 improves traceability and clarity in accounting and inventory reports.

Practical Example:

There are certain products that you do not manufacture, you subcontract the manufacturing process. Let’s use the product Big Lamp for example: Components Cost : Lamp Structure = 10$ Light Bulb = 5$ Big Lamp Cost = 25$ (BOM + Subcontracting Service)

Receiving the raw materials (Bill)

subcontracting raw materials

Receiving the finished product

finished product subcontracting

subcontracted products entry

Finished product (Bill)

subcontracting bill

As you can see, here we only pay the subcontractor for their service. This cost will be included in the finished products cost as mentioned above.

Customer Invoice

invoice subcontracting

  • What Changes?

Receiving the raw materials

subcontracting raw materials v18

Raw materials (Bill)

subcontracting bill raw materials v18

Receiving the finished product

receiving finished product subcontracting v18

Finished Goods (Bill)

subcontracting bill finished products v18

Delivery to the client

delivery to the client subcontracting v18

Customer Invoice

subcontracting invoice v18

As said before, older versions of Odoo have way more journal items than version 19.

  • Receiving the raw materials: When receiving the raw materials, the Stock Input Account would be credited and when posting the bill, this account would be debited.
  • Receiving the finished product: After the subcontractor finished the manufacturing process, you would receive the finished goods in your warehouse. The raw materials account and cost of production account would behave the same way as in version 19, the only difference is that the cost of the subcontracted service would be registered in the stock input account. After posting the bill, the input account would present a balance of 0.
  • Delivery to the client: When delivering the finished product to the client, the output account would be debited while your finished goods valuation account would be credited. After posting the invoice, your output account would be balanced and your COGS registered.

Dropshipping

Dropshipping allows a company to sell products without holding them in stock. The supplier ships products directly to the customer, bypassing the company’s warehouse. While inventory levels are not impacted, stock valuation and accounting still need to reflect the purchase and sale properly.

In Odoo 19, dropshipping valuation works as follows:

  • Purchase order and vendor bill: When a dropship order is created, the company purchases the product from the supplier. The cost is recorded in an Expense Account rather than a Stock Account, because the product never enters inventory.
  • Dropship: After the dropship is completed, there is nothing recorded in any account and there is no change in the inventory valuation.
  • Sales order and invoice: When the customer invoice is posted, revenue is recorded, and the system automatically posts the corresponding amount to a sales account. There is no COGS line on the invoice.

This approach ensures that dropshipping is accounted for as a pass-through transaction, aligning financial records with the reality of products moving directly from supplier to customer.

Practical Example:

For this use case, let's use a wood cabinet that you buy to a vendor, that directly delivers the product to your client.

Vendor Bill

dropship bill

Customer Invoice

dropship invoice

  • What Changes?

Confirmation of the Dropship

confirmation of the dropship

Vendor Bill

dropship bill v19

Customer Invoice

dropship invoice v18

In older versions of Odoo:

  • Dropship: Even though there is no entry/outflow of physical stock in your warehouse, the interim accounts would behave as if there was, as well as your stock valuation account.
  • Vendor Bill and Customer Invoice: These would register the values in the same accounts as if, again, there was an entry/outflow in your warehouse.

Selling Products Not in Stock

Sometimes, you may create a sales order for products that are not currently in stock. This situation, common in high-demand or just-in-time operations, has implications for stock valuation and accounting, especially when the product is received later and at a different unit cost.

When products are delivered before they are physically received that results in negative stock. When the incoming shipment is later received at a different unit cost, Odoo automatically triggers a stock revaluation. To learn more about this read the following article: https://www.erpgap.com/blog/inventory-revaluation/

In Odoo 19, this process works as follows:

  • Sale of out-of-stock products: When you have a sales order for a product not available in stock and confirm the delivery of that product to the client, the quantity on hand will be negative. If you have the MTO route enabled, a PO is automatically created to replenish your stock.
  • Replenishing the product: Inventory is updated and your on hand quantity will be 0.
  • Product Cost: The cost of your product will increase or decrease if in the PO that was generated, the cost of the product was altered.

Practical Example:

Let’s consider a Bookcase with a sales price of $200 and an initial cost price of $100. You currently have 10 units in stock but a sale order was processed for 11 units, the system allows the delivery despite the shortage, resulting in an on-hand quantity of -1.

Customer Invoice

product not in stock invoice

Vendor Bill

product not in stock bill

Product Cost

product cost v19

As you can see the product cost automatically adjusted to $120.

  • What changes?

Customer Invoice

product not in stock invoice v18

Vendor Bill

product not in stock bill v18

Revaluation Entries

revaluation entries v18

  • Customer Invoice: At this stage, the system records the outgoing unit at the current cost of $100. The only difference here is the use of the interim accounts.
  • Vendor Bill: After replenishing the product the vendor bill would be posted.
  • Expense Revaluation Entry: This entry, which is created automatically, captures the difference between the valuation at the time of delivery ($100) and the actual cost at the time of replenishment ($120), ensuring inventory valuation remains accurate.

Note: In Odoo 19, there are no expense revaluation entries automatically created as it would happen in older versions.

In conclusion, the new valuation system is in many ways more practical and less bulky than it was before. With the removal of the interim accounts and of the valuation layers, Odoo 19 offers a fresh and quicker valuation methodology.

Taking your business to the next level

BOOK A FREE 30-min CONSULTATION erpgap-icon

erpgap-icon Official Odoo Partner

Adriana Duarte
9 min read February 26, 2026

Subscribe To Our Newsletter