Why the Odoo 19 US Chart Has No Stock Interim Accounts · Calibre Consulting

Set up perpetual valuation without stock interim accounts.

Why the Odoo 19 US chart has no Stock Interim (Delivered) account, and how to set up the accounts perpetual inventory valuation uses instead.

This guide explains why the United States chart of accounts in Odoo 19 has no Stock Interim (Delivered) account, and shows how to set up the accounts that perpetual inventory valuation uses instead. The short answer: nothing is missing. Odoo 19 removed both stock interim accounts, Received and Delivered, along with the settings that used them. Perpetual valuation now posts to the inventory account when a vendor bill or customer invoice is posted, so no holding account is needed.

It is for accountants checking a US database against the documented default accounts. The steps were verified on Odoo 19, with notes on Odoo 20.

Before you start

Why Odoo 19 has no interim accounts

Older versions, and some outdated documentation pages, describe a receipt that debits Stock Valuation and credits Stock Interim (Received), with the vendor bill clearing the interim account later. Deliveries used Stock Interim (Delivered) the same way.

Odoo 19 replaced that design. On a category set to Perpetual (at invoicing):

Because the bill and the invoice carry the stock value themselves, an interim account would have nothing to hold. The category form no longer has the Stock Input and Stock Output fields that pointed to them, so creating accounts with the old names would change nothing.

What the US chart sets up for you

On a database created with the Odoo 19 United States chart, inventory valuation uses these by default:

Products to receive (121100) and Bills to receive (211100) are separate accounts, not renamed interim accounts, and the standard valuation setup does not refer to them. A new US company starts on Periodic (at closing).

How to set up perpetual valuation

  1. In Enterprise, open the Accounting app and go to Configuration > Settings. In the Inventory Valuation section, set Inventory Valuation to Perpetual (at invoicing). Check that Valuation Account and Journal both show Inventory Valuation, then save. Categories without their own value follow these defaults.
  2. Open the Inventory app and go to Configuration > Products > Categories, then open a category that holds stock.
  3. In the Inventory Valuation group, set Inventory Valuation to Perpetual (at invoicing) and choose the Costing Method.
  4. In the Account Properties group, set Expense Account to Cost of Goods Sold.
  5. Check that Stock Account shows Inventory Valuation. The Stock Variation field below it shows that account's variation account, Raw Materials by default.
  6. If the costing method is Standard Price, a Price Difference Account field appears. Choose the account for the gap between standard cost and the billed price.
  7. Save, and repeat for each category that holds stock.

Stock Variation belongs to the stock account, not the category, so changing it on one category changes it for every category sharing that stock account. To keep variations on the balance sheet instead of in Raw Materials, create a current asset account and select it there, or set it under Accounting > Configuration > Accounting > Chart of Accounts in the Variation Account field on the stock account's Accounting tab.

Check that it worked

  1. Receive a product from a perpetual category and post its vendor bill. On the bill's Journal Items tab, the product line should be on Inventory Valuation, not on an expense account.
  2. Deliver that product to a customer and post the customer invoice. Its Journal Items tab should show a debit to Cost of Goods Sold and a credit to Inventory Valuation for the cost.
  3. Open the Chart of Accounts and search for "Interim". On a database created with the Odoo 19 US chart, no account is found, and none is needed.

The Journal Items tab is visible only to users with accounting access.

What changes in Odoo 20

Odoo 20 keeps the same design with no interim accounts. On a US database, the chart is created without account numbers, the variation account is a current asset account named Inventory Variation, and the default expense account is Cost of Goods Sold, so categories already point there. The valuation fields sit on an Accounting tab of the category form.

Common mistakes to check first

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

Common questions

Why is there no Stock Interim (Delivered) account in the Odoo 19 US chart of accounts?

Odoo 19 removed both stock interim accounts, Received and Delivered, and the Stock Input and Stock Output fields that used them. Perpetual valuation now posts to the inventory account when vendor bills and customer invoices are posted, so no interim account is needed.

Which accounts does perpetual valuation use on a US database in Odoo 19?

The category's Stock Account, Inventory Valuation (110100) by default, holds the stock value, and its Expense Account takes the cost of goods sold when a customer invoice is posted. A stock closing books differences to the variation account, which is Raw Materials (601000) on the US chart.

Should I create Stock Interim accounts manually in Odoo 19?

No. Odoo 19 has no setting that refers to a stock interim account, so an account created with that name would never receive entries from inventory valuation.

Why does cost of goods sold post to Miscellaneous Expenses in Odoo 19?

On the Odoo 19 US chart, the company's default expense account is Miscellaneous Expenses, and product categories inherit it. Set the Expense Account on each perpetual category to Cost of Goods Sold.

Does Odoo 20 bring the Stock Interim accounts back?

No. Odoo 20 also has no stock interim accounts. Its US chart uses a current asset account named Inventory Variation as the variation account and Cost of Goods Sold as the default expense account.

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 →