Odoo 19 Periodic vs Perpetual Inventory Valuation

What’s Changed in Odoo 19 Inventory Valuation?

Odoo 19 has changed the way inventory valuation works in Accounting.

The biggest change is in Perpetual Valuation. In older versions, Odoo created accounting entries for individual stock movements. In Odoo 19, accounting is now handled mainly through invoices and the stock closing process.

So, in simple terms:

Before: Stock Movement → Journal Entry
Now: Invoice → Accounting Entry + Closing for differences

For Periodic Valuation, vendor bills are posted to expenses first, and stock value is updated during closing.

Odoo 19 also brings a few useful improvements:

  • Fewer journal entries
  • Cleaner General Ledger
  • Better closing and accrual handling
  • Automated periodic closing options
  • Support for Periodic Anglo-Saxon accounting

The easiest way to understand the change is this:

Inventory tracks what happens to the stock.
Accounting decides when that stock value appears in the books.

Why Did Odoo Introduce These Changes?

The old valuation model created too many journal entries, especially when companies had a large number of stock movements.

This made accounting heavier and created problems with:

  • Performance
  • General Ledger clarity
  • Auditability
  • Period-end reconciliation

Odoo 19 simplifies this by separating physical inventory movements from accounting valuation more clearly.

Instead of creating an accounting entry for every stock move, Odoo now relies more on invoices and closing entries.

The result is simple:

Fewer journal entries → Cleaner books → Faster accounting → Easier reconciliation

It also allows Odoo to handle timing differences such as Bills to Receive, Invoices to Issue, Prepaid Expenses, and Deferred Revenues more effectively.

Periodic Valuation in Odoo 19

Periodic Valuation means Odoo keeps tracking your physical stock continuously, but Accounting does not update the inventory asset every time a product is received or delivered.

For example, when you receive goods from a vendor, the Inventory app immediately knows that the stock has increased. But from the accounting side, the vendor bill is posted to an expense account first.

Then, at the end of the period, Odoo performs a Stock Closing. During this process, Odoo compares the value shown in Inventory with the value recorded in Accounting and posts the required adjustment.

The flow is roughly:

Receive Products → Inventory Updated
Vendor Bill → Expense
Period End → Stock Closing
Closing Entry → Stock Valuation Updated

In Odoo 19, the closing process can be manual, daily, or monthly, depending on how the company wants to manage its books.

This method is usually easier to understand if you think of it this way:

Inventory tells you what stock you have now.
Periodic closing tells Accounting what that stock is worth in the books.

How Periodic Valuation Works in Odoo 19

Periodic Valuation in Odoo 19 works by separating day-to-day stock movements from accounting valuation.

When products are received or delivered, Odoo immediately updates the quantity and value in the Inventory app. However, these stock movements do not directly update the inventory value in Accounting.

For example, when a company purchases goods:

Product Receipt → Inventory Updated
Vendor Bill → Expense Recorded

During the period, warehouse operations continue normally while Accounting keeps recording purchases as expenses.

Then comes the important part: Stock Closing.

At closing, Odoo looks at the current inventory value and compares it with what is recorded in Accounting. If there is a difference, Odoo creates the necessary closing entry using accounts such as Stock Valuation and Stock Variation.

The overall flow looks like this:

In Odoo 19, the closing can be configured as Manual, Daily, or Monthly.

So, instead of creating accounting entries for every warehouse movement, Periodic Valuation allows the business to operate normally and then brings Accounting in line with Inventory during the closing process.

Imagine a company called ABC Furniture buys 100 office chairs for $50 each.

Total purchase value = $5,000.

During August, the company sells 60 chairs, leaving 40 chairs in stock.

Here’s how Periodic Valuation works in Odoo 19:

1. Products are received
 Odoo Inventory immediately records:

100 Chairs × $50 = $5,000 Stock Value

The warehouse quantity and inventory value are updated, but no stock valuation journal entry is created from the receipt.

2. Vendor Bill is posted
 When the supplier sends the $5,000 bill:

Expense → $5,000
Payable → $5,000

So Accounting initially treats the purchase as an expense.

3. Products are sold
 60 chairs are delivered during the month.

Odoo Inventory now shows:

40 Chairs Remaining × $50 = $2,000

4. Stock Closing is performed
 At month-end, Odoo compares the physical inventory value with Accounting.

Inventory says:

Ending Stock = $2,000

So Odoo uses the closing entry to bring the Accounting inventory value to $2,000, using Stock Valuation and Stock Variation accounts.

In simple terms, during the month Inventory keeps track of the stock, while Accounting catches up during the closing process.

When to Use Periodic Valuation in Odoo?

Periodic Valuation is a good fit when a company does not need its inventory value in Accounting to change after every stock movement.

It is especially useful for businesses that prefer to update inventory value during a daily, monthly, or period-end closing process.

You may consider Periodic Valuation when:

  • You want simpler accounting entries
  • Purchases are normally recorded as expenses first
  • Your finance team works with a regular month-end or year-end closing
  • You want fewer inventory-related journal entries in the General Ledger
  • Your business follows a Continental accounting approach
  • Real-time physical stock tracking is important, but real-time accounting valuation is not necessary

For example, a trading company may receive and sell hundreds of products throughout the month. Inventory keeps tracking the quantity and value, while Accounting updates the stock value during the monthly closing.

The main idea is simple:

Use Periodic Valuation when you want Inventory to track stock continuously, but Accounting to recognize the stock value at closing.

When to Avoid Periodic Valuation?

Periodic Valuation may not be the best choice when your finance team needs inventory value to be reflected in Accounting more continuously.

You may want to avoid it when:

  • You need up-to-date inventory value in Accounting
  • Your business relies heavily on real-time COGS reporting
  • Management checks inventory margins and profitability frequently
  • Your month-end closing process is already complex or time-consuming
  • Large differences between Inventory and Accounting during the period would create confusion
  • Your accounting process is better suited to Perpetual Valuation

For example, a fast-moving retail or distribution company may want the accounting impact of inventory to follow invoicing more closely instead of waiting for a closing process.

Periodic Valuation also requires discipline around Stock Closing. If closing is delayed or not reviewed properly, the inventory value in Accounting may not match the current value shown in Inventory.

So, in simple terms:

Avoid Periodic Valuation when your business needs accounting inventory values to stay closely aligned with day-to-day transactions rather than being updated mainly at closing.

Overall Flow:

Perpetual Inventory Valuation in Odoo 19

Perpetual Inventory Valuation is a method where inventory value is updated in Accounting as purchase and sales documents are posted, rather than waiting until the end of an accounting period.

In Odoo 19, it is known as Perpetual (at invoicing). Inventory quantities and values are still tracked continuously in the Inventory app, while the accounting impact is mainly recorded through Vendor Bills, Customer Invoices, and Stock Closing.

In simple terms:

Perpetual Valuation = Inventory value is reflected in Accounting continuously through invoicing, with closing used to reconcile remaining differences.

How Perpetual Inventory Valuation Works in Odoo?

In Odoo 19, Perpetual Valuation means the inventory value in Accounting is updated mainly when Vendor Bills and Customer Invoices are posted. At the same time, the Inventory app continues tracking physical stock movements in real time.

For a purchase, the flow is:

If a product is received but the Vendor Bill has not arrived yet, or a product is delivered but the Customer Invoice has not been posted, Odoo uses the Stock Closing process to reconcile the difference between Inventory and Accounting.

So the basic flow is:

Inventory Movements → Real-Time Stock Tracking
Bills & Invoices → Accounting Valuation
Stock Closing → Reconcile Remaining Differences

Unlike older Odoo versions, Odoo 19 does not create a journal entry for every stock movement under Perpetual Valuation. It mainly uses invoices + one closing process, which results in fewer accounting entries.

Real-Life Example of Odoo Perpetual Inventory Valuation

Imagine a company called ABC Furniture buys office chairs and sells them to corporate customers.

The company purchases 100 chairs at $50 each.

Total purchase value:

100 × $50 = $5,000

Step 1: Receive the Products

The 100 chairs arrive at the warehouse.

Odoo immediately updates the Inventory app:

Quantity: 100 Chairs
Inventory Value: $5,000

At this point, the warehouse knows exactly how much stock is available and what it is worth.

Step 2: Post the Vendor Bill

The supplier sends a bill for $5,000.

When the Vendor Bill is posted, Odoo records the value in the Stock Valuation account.

So Accounting now reflects that the company owns $5,000 worth of inventory.

In simple terms:

Vendor Bill → Stock Valuation $5,000
Other Side → Payable $5,000

The important point here is that the purchase is treated as an inventory asset, not immediately as an expense.

Step 3: Sell Some of the Chairs

Now ABC Furniture sells 60 chairs.

Cost of those chairs:

60 × $50 = $3,000

After delivery, Odoo Inventory shows:

40 Chairs Remaining

Remaining inventory value:

40 × $50 = $2,000

Step 4: Post the Customer Invoice

When the Customer Invoice is posted, Odoo recognizes the cost of the 60 chairs that were sold.

That cost becomes:

COGS = $3,000

The remaining $2,000 stays in inventory because those 40 chairs are still physically in the warehouse.

So after the sale:

COGS → $3,000
Remaining Stock Value → $2,000

This is the main idea behind Perpetual Valuation in Odoo 19.

Instead of waiting until the end of the period to recognize inventory value, Accounting follows purchases and sales more closely through Vendor Bills and Customer Invoices.

And if there is any timing difference—for example, goods are received but the Vendor Bill has not arrived yet—Odoo uses the Stock Closing process to reconcile the difference.

So you can think of it like this:

Inventory keeps track of what is physically in the warehouse, while Perpetual Valuation keeps Accounting closely connected to what is being purchased and sold.

When to Use Perpetual Valuation in Odoo?

Perpetual Valuation is a good choice when a business wants its inventory value and cost of sales to stay closely connected with ongoing accounting transactions.

You may want to use Perpetual Valuation when:

  • You need up-to-date inventory value in Accounting
  • You want COGS to be recognized when sales are invoiced
  • Your business manages a large or valuable inventory
  • Management regularly reviews gross profit and margins
  • Your finance team wants inventory assets reflected more continuously
  • Your accounting setup follows an Anglo-Saxon approach

For example, a distribution company that buys and sells products every day may prefer Perpetual Valuation because Accounting can follow those purchases and sales more closely instead of waiting until the end of the month.

It is especially useful when the business needs better visibility into:

Inventory Asset → Sales → COGS → Gross Profit

In simple terms:

Use Perpetual Valuation when you want Accounting to follow inventory activity more closely through Vendor Bills and Customer Invoices, while Stock Closing handles any remaining timing differences.

When to Avoid Periodic Valuation?

Periodic Valuation may not be the best choice if your business needs inventory value in Accounting to stay closely updated throughout the period.

You may want to avoid Periodic Valuation when:

  • You need frequent visibility into inventory assets
  • You want COGS recognized more closely with sales
  • Management regularly reviews gross profit and margins
  • Your business carries high-value or fast-moving inventory
  • Waiting until closing creates too much difference between Inventory and Accounting
  • Your finance team prefers a more continuous valuation approach

For example, a large distributor selling products every day may want Accounting to reflect inventory and COGS more closely as bills and invoices are posted. In that case, Perpetual Valuation may be more suitable.

Another important point is the closing process. With Periodic Valuation, the finance team must regularly review and complete Stock Closing. If closing is delayed, the inventory value shown in Accounting may temporarily differ from the value shown in Inventory.

In simple terms:

Avoid Periodic Valuation when your business needs Accounting to follow inventory value and COGS more continuously instead of relying mainly on period-end closing.

Overall flow for Perpetual Valuation:

Odoo 19 Periodic Valuation Vs Perpetual Valuation

AreaPeriodic ValuationPerpetual Valuation
Odoo 19 NamePeriodic (at closing)Perpetual (at invoicing)
Main IdeaAccounting inventory value is updated during Stock ClosingAccounting inventory value is updated mainly through Bills & Invoices
Physical InventoryTracked continuously in InventoryTracked continuously in Inventory
Vendor BillPosted to ExpensePosted to Stock Valuation / Asset
When Expense is RecognizedPurchase is initially treated as an expenseCost is generally recognized as COGS when sold
Customer InvoiceMainly records sales/revenueAlso triggers COGS / inventory accounting impact
Stock ClosingCore part of the valuation processUsed mainly to reconcile remaining differences
Closing FrequencyManual, Daily, or MonthlyUsually Manual; closing used when synchronization is needed
Stock Valuation AccountUpdated mainly at closingUpdated mainly at invoicing
Stock VariationUsed to adjust inventory value at closingUsed as a buffer/reconciliation account for differences
Typical Accounting StyleCommon with Continental AccountingCommon with Anglo-Saxon Accounting
Best FitBusinesses comfortable with period-end valuationBusinesses wanting Accounting to follow purchases/sales more closely
COGS VisibilityMainly determined through period closingMore closely connected to sales invoicing
Accounting During PeriodInventory and Accounting may differ until closingUsually stays closer to invoiced inventory activity
Simple FlowPurchase → Expense → Closing → Stock ValuePurchase → Stock → Sale → COGS
Think of it as“Accounting catches up at closing.”“Accounting follows invoicing.”

The most important point is that both methods still track physical inventory in real time inside the Inventory app. The difference is mainly when and how that inventory value is reflected in Accounting.

Making the Right Choice

Odoo 19 makes inventory valuation much easier to understand by clearly separating Inventory operations from Accounting valuation.

If your business prefers to update inventory value mainly during closing, Periodic Valuation is the better fit.

If you want Accounting to follow purchases and sales more closely through bills and invoices, Perpetual Valuation is usually the better option.

There is no single best method for every company. The right choice depends on your accounting practice, reporting needs, transaction volume, and how closely you want inventory value and COGS to follow day-to-day operations.

The key takeaway is simple:

Periodic = Accounting updates at closing
Perpetual = Accounting follows invoicing more closely

  • A.N.M. Mohaimen Shanto is a Project Manager at Softeko, a leading software development company based in Dhaka, Bangladesh. With a background in Computer Science & Engineering from Daffodil International University, Shanto brings over three years of hands-on experience in managing complex software projects. His expertise lies in Odoo—including the latest Odoo 18, for which he is certified—along with strong capabilities in both project and product management. Shanto plays a key role in aligning technical teams with business goals, ensuring seamless project execution and client satisfaction. He continues to expand his knowledge in enterprise solutions and emerging technologies, reinforcing his position as a dynamic leader in the software development space.

    View all posts

Want to write an article for our blog? Read our requirements and guidelines to become a contributor.

Leave a comment

Your email address will not be published. Required fields are marked *

Get Free Consultancy
Odoo Consultant
Get Free Consultancy
Book a meeting with an expert → Shafiuddin Haider, Odoo ERP Consultant
Table of Contents