How to See Inventory Valuation by Product in Odoo 19 · Calibre Consulting

Find your inventory valuation by product in Odoo 19.

Find inventory value by product in Odoo 19, read it as at any date, and make it match the stock account on your balance sheet.

This guide shows how to see what your stock is worth, product by product, in Odoo 19, and how to make that figure agree with the inventory balance on your balance sheet. The short answer: the per-product valuation is under Inventory > Reporting > Stock, which lists a unit cost and a total value for every product and can show any past date. If the total does not match your accounts, the usual cause is a valuation setting on your product categories.

It is written for accountants, controllers and owners, including anyone moving from Odoo 18. The steps were verified on Odoo 19.

Before you start

Where the per-product valuation lives in Odoo 19

Odoo 19 removed the valuation records that sat behind the Odoo 18 Valuation screen. The report under Accounting > Review > Inventory Valuation is now an accounting summary with Initial Balance, Stock Variation and Ending Stock lines, used to create the stock closing rather than to read value product by product.

The product-level view is the Stock report in the Inventory app, which carries two value columns, both shown by default:

Each figure can be clicked. Clicking a Unit Cost opens Unit Cost History, a movement-by-movement record of how the cost was built up. For products on FIFO, this link is disabled. Clicking a Total Value opens the Valuation list of that product's incoming receipts that still carry remaining value, which make up the current value.

How to value stock as at a balance sheet date

  1. Open the Inventory app and go to Reporting > Stock. A list of tracked products appears with quantities, Unit Cost and Total Value.
  2. Click Inventory at Date at the top of the list. A small window opens with a date and time field.
  3. Choose the moment you want, for example the end of the last day of your period, and confirm. The list reloads, titled with that date and time.
  4. In the search bar, open the options and group by Product Category. Each category now shows a subtotal of Total Value.
  5. Read the Total Value sum at the foot of the list. This is your inventory value at that date.

Values are recalculated for the chosen moment, not only quantities.

Why the total may not match your stock valuation account

Each product category has an Inventory Valuation setting with two options in Odoo 19:

So if your categories are on Periodic and no closing has been posted, the stock valuation account will not match the Stock report, and no report or custom field can fix that, because the entries were never posted. Either of the two options below brings the account in line.

Option 1: post a stock closing

  1. Open the Accounting app and go to Review > Inventory Valuation.
  2. Set the report date to the end of your period.
  3. Click Generate Entry. Odoo creates a journal entry referenced Stock Closing, in draft, and opens it.
  4. Review the lines and post the entry. The stock valuation account now reflects stock up to that date.

To automate this in Enterprise, open the Accounting app, go to Configuration > Settings, and find the Inventory Valuation section. Its Periodic Valuation option offers Manual, Daily or Monthly. Daily and Monthly create and post the closing automatically, Monthly on the last day of the month. Manual, the default, leaves the closing to you.

Option 2: switch categories to perpetual valuation

  1. Open the Inventory app and go to Configuration > Products > Categories.
  2. Open a category that holds tracked stock.
  3. In the Inventory Valuation group, set Inventory Valuation to Perpetual (at invoicing).
  4. Save, and repeat for each category.

On Perpetual, vendor bill lines for the product are booked to the stock valuation account, and customer invoices post the cost of goods sold against it. The entry follows the invoice, not the stock move, so a receipt that has not been billed yet appears in the Stock report but not in the account until the bill is posted. Moves to or from a location that has its own valuation account, such as an inventory loss location, can still post at the time of the move.

Check that it worked

  1. In the Inventory app, run Reporting > Stock with Inventory at Date set to your period end and note the Total Value sum.
  2. In Enterprise, open the Accounting app, go to Reporting > Balance Sheet for the same date, and find the stock valuation account. To confirm which account that is, open a product category: it is the Stock Account field in the Account Properties section.
  3. If you use Periodic, open Review > Inventory Valuation and click Generate Entry again. If everything has been closed, Odoo shows the message "Everything is correctly closed" instead of creating a new entry.

The two figures should agree. On Perpetual, a remaining difference should trace to receipts not yet billed.

Common mistakes to check first

Steps verified on Odoo 19. Menus and labels can differ on other versions.

Common questions

Where is the inventory valuation by product in Odoo 19?

Open the Inventory app and go to Reporting > Stock. With Accounting installed, the list shows Unit Cost and Total Value for each tracked product, and Total Value sums at the bottom.

Why does the stock valuation account in Odoo 19 not match the inventory value?

Product categories set to Periodic (at closing) post no valuation entry when stock moves. The account only updates when a stock closing is generated and posted from Accounting > Review > Inventory Valuation, or when a scheduled Daily or Monthly closing runs in Enterprise.

Can Odoo 19 show inventory value at a past date?

Yes. In the Inventory app, open Reporting > Stock, click Inventory at Date and choose a date and time. Both quantities and values are recalculated for that moment.

What is the difference between Periodic (at closing) and Perpetual (at invoicing) in Odoo 19?

They are the two Inventory Valuation options on a product category. Periodic posts the inventory value to the ledger only through a stock closing, while Perpetual posts it automatically when the product is billed or invoiced.

Why is the Unit Cost on the Odoo 19 Stock report not clickable for some products?

The Unit Cost History drill-down is disabled for products costed on first in, first out (FIFO). It is available for products on other costing methods, such as average cost.

Talk to the team.

If you are setting this up, or Odoo is not behaving the way this guide describes, book a 30-minute call. We will look at your configuration and tell you what it needs. Calgary studio, in-house team, no offshore handoffs.

Book the call →