Enable Dark Mode!
By: Hilar AK

Product Costing Methods in Odoo

Functional Warehouse

Here we are discussing the functional behavior of Odoo on product costing methods. According to the costing method selected for the product or its category the inventory products, actual costs have been calculated.

Odoo has three costing methods:

1. Standard Price
2. Average Price
3. Real Price

The Standard Price costing method will be in default if we didn't specify the costing method in product category form. Let's see how the three product costing methods affects the Odoo product's cost price calculation.

1. Standard Price

The method which doesn't affects the cost price of the product according to the purchase or other inventory adjustments. The cost price usually needs to be changed manually, in case of products costing method is the standard price. In most of the case, this category of product's price is changed periodically about in a year or after a specific period. To set a new product category, you have to follow these steps:

 a) Create a new Product Category.

Eg:  Inventory -> Configuration -> Product -> Product Categories

Create a category for the standard price.


Create a product with the created category (standard price).


Here the Cost price is manually entered as $10 and selected category for standard price and quantity on hand is 0.


To check the functionality let’s make a purchase and check products value on inventory.


Here we purchased the standard product greater than product cost price with $15 and received the products. Now let’s checks how this effects on inventory.


Here for 10 products, the total inventory value is 100, i.e. it took the actual price selected in product form by not considering the purchase amount. So let's say the standard costing method is not dynamic and need to change manually. It's same if we purchase and update our quantity on hand with the price less than cost price.

2. Average Price

The average price costing method actually varies the cost price according to the total quantity shipped and the purchase price. The cost price is actually dynamically calculated and we don't need to specify the cost price in case of the costing method average price selected. The cost is calculated on the total average price according to the quantity.
To check the functionality follow the process:

 a) Create product category for average prices

b) Create a product with the same category with cost price $0.

 c) Created purchase order and received products with 10 units of unit price $20.
The inventory value $200 is now according to the total unit price we purchased and the product cost price is Updated according to the total_inventory value and total quantity, after the inventory values are also updated with the new cost price.
Here cost price Updated $0 to $20.
Let's do another purchase with a cost price lower than the exact cost price and can see the changes in product cost price.
Here purchased and received the average product again with quantity 5 and a unit price of $12. Now the cost price changes as
Here the cost price is updated with the average price as $20 to $17.33. Inventory values changed as
Inventory values are updated according to the new cost price.
3. Real Price
The most common and widely used costing method actually updates the cost price of the product according to the last outgoing product in inventory. So the removal strategy like LIFO, and FIFO, has a major role in this costing method. The cost price of the product doesn't change until a product is removed from inventory by any of the removal strategies. That's why the process is real-time and is accepted widely.
Let’s create the product category for the real-time costing method.

Here we selected the removal strategy as LIFO [Last in First Out] strategy. FIFO will be in default.
The costing method is selected as a real price. Then we created a product of the same category really.


Here the cost price is $0 and 0 product in hand. So let's do the two purchase with the unit price $20 for 10 products and $10 for the 5 products respectively.
 a) Purchase for 10 products with $20 unit price and its inventory value.
After first purchase the inventory value is 200 for 10 products with $20:
Now the product is updated with 10 on hand but cost price is not changed.
    b) Second purchase and receive of 5 products with $10
After the second purchase the inventory values are update as ($20 * 10 ) + ($10 * 5).
The cost price of the product doesn't get updated where no outgoing of the product is done. So let's make a sale of the real product of quantity 4 and check what the changes are taking place.
Sale 4 real products and t deliver:
The quantity on hand is updated with 11. Where we sell 4 from 15 products. The cost price is Updated with $10 where these sold products are triggered according to the LIFO strategy and taken the unit price of the last outgoing product $10 from the last purchase.

If you need any assistance in odoo, we are online, please chat with us.



Could you please share the same scenario in production? So instead of using route Buy, please use Manufacture.. :) I might have some work that needed your help if you interested.. Let's talk..




Kyaw Khine Lin

Thanks for sharing. Would like to check the scenario below scenario. Valuation : FIFO We sell a product which has no inventory yet. So only zero is debited into cost of sales account. We purchase this item and perform goods issue to this sales order. Stock output account is debited with the actual cost of the product from the purchase order. How do we transfer this from stock output account to cost of sales? Is there any configuration to automate this?





Thank you very much for your detailed explanation. However, my question to you is; if I have different cost price for a single product, how can i use different selling price for the product. for example, i bought product X for $10, then i restock the same product X but this time for $15. Using the real time FIFO costing method, how will the selling price change automatically as soon as it's time to sell product X at $15




Hiren Dangar

Nice content of Product Costing method. Anyone can easily understand and implement in own system.




Nilmar Shereef

Hi Surin, These are the default features in Odoo community editions. You just deploy Odoo ERP for your business and enjoy it.




Surin Chitra

How to get this module?




Leave a comment




Cybrosys Technologies Pvt. Ltd.
Neospace, Kinfra Techno Park
Kakkancherry, Calicut
Kerala, India - 673635



Cybrosys Technologies Pvt. Ltd.
1st Floor, Thapasya Building,
Infopark, Kakkanad,
Kochi, India - 682030.



Cybrosys Techno Solutions
The Estate, 8th Floor,
Dickenson Road,
Bangalore, India - 560042

Send Us A Message