Inventory valuation determines what your inventory is financially worth and how this value is processed in your accounting. This affects your balance sheet, gross margin, profit calculation, and financial reports.
Odoo links your inventory management to your accounting. When products are received, stored, sold, returned, or adjusted, Odoo tracks what physically happens and what financial value is associated with it.
But how does inventory valuation work exactly? What cost price does Odoo use for a sale? What is the difference between FIFO and AVCO? And how do you check if the inventory value matches your accounting?
In this article, we explain step by step how inventory valuation works in Odoo.
What is inventory valuation?
Inventory valuation is determining the financial value of all products you have in stock at a given time.
Suppose you have 1000 products in your warehouse. These products may have been purchased at different times and at different prices. For your accounting, you still need to determine a current inventory value.
The inventory value affects:
the value of your inventory on the balance sheet;
the cost price of sold products;
your gross margin;
your profit or loss;
financial monthly reports;
the year-end closing;
inventory differences and corrections.
The Inventory app records what happens physically with your products. The Accounting app processes the financial implications of that in the accounting.
The chosen costing method then determines how Odoo calculates the value of the products.
How does Odoo keep the inventory value?
Odoo records every relevant inventory movement. Think of:
a receipt from a supplier;
a delivery to a customer;
a return;
an internal transfer;
an inventory adjustment;
a rejected product;
a production order;
additional logistics costs.
For every inventory movement, Odoo looks at, among other things:
the number of products;
the cost price used;
the inventory value before the movement;
the inventory value after the movement;
the settings of the product;
the settings of the product category;
the linked inventory and cost accounts.
An internal transfer between two internal warehouse locations usually does not change the total inventory value. A receipt, delivery, return, or inventory adjustment can do that.
The three costing methods in Odoo
Odoo supports three main costing methods:
standard cost;
average cost price, also known as AVCO;
FIFO.
The costing method determines how Odoo calculates the value of products when they come in or go out of stock.
1. Standard cost price
With standard cost price, a product has a fixed cost price. This cost price is set manually and remains the same until someone adjusts the value.
Example:
standard cost price: €10;
receipt of 100 products;
actual purchase price: €12 each.
Odoo values the receipt at the set standard cost price of €10 each. The inventory value is:
100 × €10 = €1000.
The difference between the actual purchase price and the standard cost price is processed according to the financial setup of the product category.
Standard cost price is often used by manufacturing companies and organizations that work with fixed product cost prices or predetermined standard costs.
This method is particularly suitable when:
the purchase prices are relatively stable;
you work with fixed product cost prices;
you want to analyze price differences separately;
predictability is important;
you use predetermined cost prices for budgeting.
The advantage of standard cost price is that you can easily budget and compare margins. The disadvantage is that the inventory value does not automatically adjust with every change in the actual purchase price.
2. Average cost price: AVCO
AVCO stands for Average Cost. In Dutch, we refer to average cost price.
In AVCO, Odoo calculates a weighted average cost price based on the total inventory value and the total number of available products.
Example:
you receive 8 products for € 10 each;
later you receive 4 products for € 16 each.
The calculation is then:
8 × € 10 = € 80;
4 × € 16 = € 64
total inventory value = € 144;
total inventory quantity = 12;
average cost price = € 144 ÷ 12 = € 12.
The actual cost price thus becomes €12 per product.
If you then sell 10 products, Odoo calculates the cost price as follows:
10 × € 12 = € 120.
There are 2 products left with an inventory value of:
2 × €12 = €24.
AVCO is often suitable for:
wholesalers;
distributors;
trading companies;
bulk products;
raw materials;
products with fluctuating purchase prices.
The advantage of AVCO is that large price fluctuations are smoothed out. The disadvantage is that the cost price does not remain linked to one specific receipt or inventory layer.
3. FIFO
FIFO means that the oldest inventory is written off first.
Example:
first receipt: 8 products at € 10;
second receipt: 4 products at € 16;
sale: 10 products.
In FIFO, Odoo first uses the oldest inventory:
8 × € 10 = € 80;
2 × € 16 = € 32;
total cost price of the sale = € 112.
The remaining inventory consists of 2 products from the second receipt:
2 × €16 = €32.
FIFO is especially interesting when:
purchase prices change significantly;
inventory layers are important;
products have a limited shelf life;
you want to follow the order of purchases;
price differences need to be visible in your gross margin.
FIFO is a financial cost price method. The way products are picked in the warehouse is separate from that. A warehouse can, for example, use a specific issuance strategy while the financial valuation takes place according to FIFO or AVCO.
Permanent inventory valuation in Odoo
With permanent inventory valuation, the inventory value is continuously updated. The financial value of the inventory thus moves along with receipts, sales, returns, and other relevant inventory movements.
When a product is received, the inventory value increases. When a product is delivered to a customer, the inventory value decreases and the cost price of the sale is processed.
The exact booking depends on:
the chosen cost price method;
the product category;
the inventory account;
the expense account;
the account for inventory variation;
the account for inventory loss;
any settings for production;
additional logistics costs.
Permanent inventory valuation gives you an up-to-date picture of the financial value of your inventory. This is especially useful when you:
regularly create financial reports;
constantly need insight into gross margins;
manage multiple warehouses;
you have large inventory volumes;
you want inventory and accounting to align well.
Which bookings does Odoo make?
The exact bookings vary by situation, but generally, the following happens.
Upon receipt
When you receive products, the physical inventory increases. Odoo increases the inventory value based on the chosen cost price method.
Upon a supplier invoice
When the supplier invoice is booked, Odoo processes the financial side of the purchase. Differences between the receipt and the invoice are processed according to the configured accounts.
Upon delivery
When products are delivered to a customer, the physical inventory decreases. Odoo processes the cost price of the sold products.
Upon a sales invoice
When booking the sales invoice, revenue and the corresponding cost price are processed financially. This creates a direct link between revenue, cost price, and gross margin.
Upon a return
A return completely or partially reverses the original inventory movement. The inventory quantity and inventory value are therefore adjusted again.
Upon an inventory adjustment
An inventory adjustment changes the physical inventory. Odoo processes the difference according to the configured account for inventory loss, inventory adjustments, or inventory variation.
Product categories and inventory accounts
The settings for inventory valuation are usually managed through the product category. There you specify, among other things:
the cost price method;
the inventory account;
the expense account;
the account for inventory variation;
the account for price differences;
any production and loss accounts.
It is important that products with a similar financial treatment are in the correct product category.
An incorrect product category can lead to:
incorrect inventory bookings;
deviating margins;
differences between inventory report and general ledger;
incorrect processing of price differences;
extra work during the month-end or year-end closing.
Therefore, regularly check whether products are linked to the correct product category.
Logistics costs included in the inventory value
The cost price of a product does not always consist solely of the purchase price. In international trade, the following costs may also be included:
transport;
insurance;
import duties;
customs costs;
port costs;
storage costs;
handling costs.
With logistics costs, you can distribute these additional costs in Odoo over the received products. This makes the inventory value more realistic and aligns the cost price better with the actual costs.
Logistics costs are particularly relevant for importers, wholesalers, and companies that purchase products internationally.
Example:
You receive 100 products with a purchase value of €10 each. The transport and import costs amount to €500.
The total value then becomes:
purchase value: 100 × € 10 = € 1,000;
logistics costs: € 500;
total inventory value: € 1,500;
actual cost price per product: €15.
Without processing the logistics costs, your inventory value would be too low and your margin would be incorrectly calculated.
Inventory value check in Odoo
You can check the inventory value in various ways.
View in the inventory report:
the inventory quantity;
the value per product;
the cost price per unit;
the value per location;
the inventory movements;
the inventory layers at FIFO.
Additionally, check the accounting report for inventory valuation. There you can check:
which inventory value is recorded in the accounting;
which value comes from the inventory administration;
which inventory variations exist;
which booking still needs to be created;
which products or movements cause a difference.
Always use the same reference date for a check. Comparing an inventory report on December 31 with a ledger balance on January 2 can cause unnecessary differences.
Why do differences arise between inventory and accounting?
Common causes are:
a receipt without a corresponding invoice;
an invoice without a correct receipt;
a return that has not been processed correctly;
negative inventory;
an incorrect product category;
an erroneous inventory account;
manual inventory corrections;
incorrect booking dates;
price differences;
unprocessed logistics costs;
production bookings that are not fully completed.
A difference does not automatically mean that Odoo is calculating incorrectly. Often there is a difference in timing, setup, or method.
A practical monthly check
Use this checklist for your month-end closing:
Check if all receipts have been processed.
Check if all deliveries have been correctly booked.
Check outstanding returns.
Check negative inventory.
Check products without the correct product category.
Check the inventory value per warehouse and location.
Compare the inventory report with the general ledger.
Analyze inventory variations.
Check price differences.
Check outstanding invoices and receipts.
Check processed logistics costs.
Process necessary inventory adjustments.
Make the necessary bookings.
Document discrepancies and corrections in the control file.
By performing this check every month, you prevent differences from only becoming visible during the year-end closing.
Frequently asked questions
What is inventory valuation in Odoo?
Inventory valuation is the calculation of the financial value of the products you have in stock.
Which cost price methods does Odoo support?
Odoo supports standard cost price, average cost price, and FIFO.
What is the difference between AVCO and FIFO?
AVCO calculates a weighted average cost price. FIFO uses the oldest inventory first in a sale.
What does perpetual inventory valuation?
In perpetual inventory valuation, the inventory value is continuously updated based on inventory movements and financial transactions.
Why does my inventory value differ from the general ledger?
This can be due to outstanding invoices, returns, incorrect settings, inventory adjustments, price differences, logistics costs, or bookings with different dates.
Can I manually adjust the inventory value?
Yes, but only do this when there is a clear reason. Always document the adjustment well, so that the audit trail remains understandable.
Need help with inventory valuation in Odoo?
A correct inventory valuation requires more than just choosing FIFO, AVCO, or standard cost price. The product categories, inventory accounts, expense accounts, warehouse processes, and accounting must also align well.
Odoo Experts helps you with:
choosing the right costing method;
setting up perpetual inventory valuation;
checking inventory accounts;
analyzing discrepancies;
processing logistics costs;
conducting monthly inventory checks;
improving the alignment between inventory and accounting.