Odoo 18 continues to raise the bar for enterprise resource planning (ERP) systems with powerful new features designed to enhance accuracy, efficiency, and control across business operations. One standout enhancement in this release is the Valuation by Lot/Serial Number feature — a game-changer for industries where inventory traceability and precise cost tracking are critical.
Traditionally, products in Odoo shared a common valuation regardless of which batch or serial number they came from. These often posed challenges for businesses dealing with variable purchase prices, perishable goods, or serialized equipment. With Odoo 18, that limitation is eliminated. Businesses can now track and assign individual valuations for each lot or serial number of a product, enhancing both financial precision and inventory traceability.
In this blog, we’ll explore how this new feature works, why it matters, and how to set it up in your Odoo environment. Whether you’re in manufacturing, pharmaceuticals, food distribution, or any other inventory-intensive industry, this feature can bring significant improvements to your inventory and accounting workflows.
Let’s walk through how to enable and use this feature in a real-world scenario.
Before you can use the Valuation by Lot/Serial Number feature in Odoo 18, you need to enable product tracking using lots or serial numbers. To do this, navigate to the Inventory application, then go to Configuration > Settings. In the settings page, scroll down to the Traceability section. Here, you'll find the option labeled Lots & Serial Numbers — simply check this box to activate it. Once enabled, this feature allows you to assign unique tracking identifiers (lots or serials) to individual products, enabling detailed traceability throughout the supply chain. Don’t forget to click Save to apply the changes. This is a crucial first step, as lot/serial tracking is the foundation for per-lot valuation to function correctly.

Next, let's explore how the Valuation by Lot and Serial Number feature works in Odoo 18. To demonstrate this, we’ll begin by creating two products and processing separate purchase orders with different lots.
First, I created a product named Product A. During the setup, I enabled the Track Inventory option and selected By Unique Serial Number as the tracking method.
Additionally, I ensured that the Valuation by Lot/Serial Number option was enabled, allowing Odoo to track and value each individual serial number separately based on its specific cost.

Next, I created another product named Product B. For this product, I enabled the Track Inventory option and set the tracking method to By Lots. I also enabled the Valuation by Lot/Serial Number feature, ensuring that each lot is individually valued based on its specific cost, providing more accurate inventory and financial tracking.

Before the Valuation by Lot/Serial Number feature can work correctly, it's essential to ensure that the product is assigned to a product category configured with a compatible costing method. In Odoo 18, this feature is only supported when the product category uses either the FIFO (First In, First Out) or Average Cost (AVCO) costing method. You can configure this by navigating to Inventory > Configuration > Product Categories, selecting the relevant category, and setting the Costing Method accordingly. Additionally, for automated accounting entries, the Inventory Valuation field should be set to Automated. This setup ensures that Odoo can maintain separate valuation layers for each lot or serial number, allowing for accurate tracking of costs as inventory moves through the system. Without the correct costing method, the system will not be able to calculate lot-specific valuations.

With both products properly configured and assigned to the appropriate product category, the next step is to create purchase orders. This will allow us to bring inventory into the system using different lots or serial numbers, which is essential to observe how Odoo 18 handles separate valuation for each tracked unit.
I created the first Purchase Order containing two products: Product A, which is tracked by Unique Serial Number, was ordered in a quantity of 2 units; and Product B, which is tracked by Lot Number, was ordered in a quantity of 10 units. This setup allows us to test how Odoo manages and assigns separate valuations for each serial number and lot during the receiving process.

While receiving the products, we need to assign unique serial numbers for Product A and a lot number for Product B, according to the tracking methods configured for each product. This step is crucial, as it enables Odoo to track and manage inventory valuation individually for each serial number and lot, ensuring accurate cost tracking and traceability.
For Product A, I assigned a unique serial number to each unit received, as required by the configured tracking method. This ensures that each individual item is distinctly tracked and valued separately within Odoo’s inventory system.

In the case of Product B, which is tracked by Lot Number, I assigned a single lot number to the entire quantity of 10 units received. This allows Odoo to group these items under one identifiable lot while still maintaining a separate valuation layer specific to that batch.

After completing the receipt for the first purchase order, I proceeded to create a second purchase order for the same products—Product A and Product B—but with different unit prices to simulate cost variation across batches.

During the receipt of this second order, I assigned a new unique serial number to each unit of Product A and a new lot number for the 10 units of Product B. This setup allows Odoo to treat each batch or serial item as a distinct valuation layer, reflecting their individual costs accurately in the inventory valuation.
While receiving the products in the second purchase order, I assigned unique serial numbers to the 2 units of Product A delivered, in line with its serial tracking configuration.

For the 10 units of Product B, I assigned a new lot number during the receipt process, as per the lot tracking configuration. This ensures that all 10 units are grouped under a single lot while still maintaining a distinct valuation for the batch based on the updated unit price.
After assigning the Lot and Serial numbers for the products in the second purchase order, the next step is to validate the picking. This confirms the receipt of goods into inventory, and once validated, the system will update the stock levels and record the corresponding valuation for each lot and serial number based on the assigned cost.
Once the goods have been received and the picking validated, Odoo 18 allows you to easily track the product valuation for each lot and serial number through the Inventory Valuation Report. To view the Product Valuation Report in Odoo 18, navigate to the Inventory app and go to Reporting > Inventory Valuation. This report provides a comprehensive overview of the current value of your inventory, including products tracked by Lot and Serial Numbers. It displays detailed information about the valuation of each product, reflecting the individual cost associated with each lot or serial number. By using this report, you can track the exact value of your stock, identify the cost of goods sold (COGS), and ensure that inventory valuations are accurate for accounting and reporting purposes. This tool is essential for maintaining transparent, precise financial records, especially when working with products that have varying costs across different lots or serial numbers.

In the Inventory Valuation Report, Odoo displays the total valuation of products based on the Lot and Serial Numbers assigned during receipt. The valuation of each product is calculated individually, based on the unit price specified at the time of purchase, and the report reflects these values per lot or serial number. This ensures that you have a clear and accurate view of the total inventory value, taking into account the specific cost associated with each tracked item.
After purchasing and receiving the products, the next step is to see how valuation works when selling those products. Odoo calculates the cost of goods sold based on the specific lot or serial number used in the delivery.
To verify this, we’ll create a sales order for Product A, which we received earlier, with a quantity of 1, and confirm the order.

While processing the delivery for the sales order, we need to select the serial number from the available list for Product A, since it is tracked by unique serial numbers. This step ensures that Odoo accurately records which specific item is being delivered and applies the correct cost based on its individual valuation.

After validating the delivery, we can check the valuation of the delivered product by going to the Inventory Valuation Report. This report will show the cost of the product based on the specific serial number or lot used in the delivery, reflecting the exact cost that was recorded at the time of purchase.

The Valuation by Lot and Serial Number feature in Odoo 18 makes it easier to track the exact cost of products, especially when they come from different purchases at different prices. By assigning a separate value to each lot or serial number, you get more accurate inventory valuation and better cost control.
This feature is especially useful for businesses that deal with batch-controlled or serialized products, like in manufacturing, pharmaceuticals, or electronics. From purchase to sale, Odoo keeps track of the cost for each lot or serial number, helping you make better decisions and maintain accurate records.
To read more about How to Track Products With Lot & Serial Numbers in Odoo 17 Inventory, refer to our blog How to Track Products With Lot & Serial Numbers in Odoo 17 Inventory.