Odoo Perpetual Inventory System Journal Entries

Imagine running a bike shop somewhere in the heart of bustling Amsterdam, — a city where, as they say, there are more bikes than people. And indeed, your shop has everything, from everyday cruisers to high-performance road bikes with their own warehouse of spare parts and accessories for them. Every day — sales, purchases, people and bikes coming and going. Keeping track of all this movement is incredibly important and difficult — and not only for you!

When managing inventory, such businesses often find themselves at a crossroads: stay a bit old-school using a Periodic Inventory System where you count everything once in a blue moon (or at set intervals) and probably flip through a paper inventory book in search of the right part for your $7,000 carbon fiber road bike, or think about how to integrate a modern inventory system

This little dilemma is more than just a fork in the road. However, it has a great solution — an Odoo ERP as Inventory System that allows you to track your inventory in real time using the latest technology. Thanks to barcode labels, barcode scanners, RFID tags, and IoT sensors, this "photographic manager" keeps track of everything in its field of vision — recording every sale, purchase, or inventory adjustment, constantly updating your inventory based on where and when it happens.

Unlike old periodic inventory systems, Odoo's Perpetual Inventory System works 24/7. Whenever a product moves — whether it's received from suppliers, sold to customers, moved between warehouses, or used in production — Odoo instantly updates your inventory records. It's like an X-ray of your inventory levels at any given moment!

The system not only counts items but also tracks their cost and knows exactly how it affects both your inventory cost and your profit. No more shooting in the dark when it comes to knowing the value of your inventory! The benefit? Yes, you no longer need to manually check inventory or worry about stock levels because the system does the work for you — all within Odoo, the ERP solution you've been using for other business needs.


Importance of Journal Entries in Inventory Accounting

Now let’s talk about why Journal Entries are actually so important and how they make Odoo’s Inventory System work so well. Every time inventory changes hands in Odoo, the system creates Journal Entries behind the scenes. 

Journal Entries are the backbone of inventory management in Odoo's perpetual inventory system. They record all inventory transactions and show the financial value of your inventory in real time.

Why Journal Entries Matter in Inventory Management?


  • Real-time visibility: They show the financial impact of inventory changes right when they happen, offers up-to-date financial statements and reports.


  • Accurate valuation: They keep your inventory asset value current on your balance sheet.


  • Cost tracking: They follow costs as they move from inventory to Cost of Goods Sold (COGS).


  • Audit trail: They ensures precise tracking of every financial transaction, create a clear history of all inventory transactions.


  • Financial reporting: They provide accurate data for your financial statements.

When you receive, sell, move, or adjust inventory in Odoo, the system automatically creates Journal Entries to record these changes. This means your financial records always match your actual inventory, giving you a true picture of your business at any moment.

In Odoo, Journal Entries are accounting records that document all financial transactions within a company. Every Journal Entry in Odoo is like a detailed chapter in your business story, made up of essential elements that capture the full picture of each transaction:

  • Date: The moment in time when money changed hands or goods moved 


  • Journal: Your organizational filing system (Sales, Purchase, Bank, etc.) that sorts entries by transaction typе


  • Accounts: The specific financial "containers" affected by the transaction


  • Descriptions: The story behind the numbers — why this transaction happened


  • Debits and Credits: The yin and yang of accounting that must always balance perfectly


  • Partner: The character in your story (customer or vendor) involved in this particular transaction


  • Analytic Accounts: The subplot details that help you track costs or revenues by specific projects or departments

When your business is humming along — selling products, buying supplies, collecting payments — Odoo works its accounting magic behind the scenes:

  1. Each financial move triggers Odoo to automatically craft a perfectly balanced journal entry                         
  2. Every entry follows the golden rule of double-entry accounting: for every debit, there must be an equal credit.                                                                                                                                                                                                                            
  3. Odoo organizes these entries into specialized journals that act like chapters in your financial story:


  • Sales Journal: Chronicles every product or service sold
  • Purchase Journal: Logs vendor bills and purchases
  • Bank Journal: Tracks payments and bank transactions
  • Cash Journal: Manages cash transactions

These Journal Entries work together like an intricate puzzle, creating a complete and accurate picture of your business's financial health at any given moment. They transform countless individual transactions into meaningful financial reports that tell the true story of your business journey.

To enable automatic Journal Entries in Odoo, first install the Accounting app. Then, enable required settings: navigate to the Accounting app ‣ Configuration ‣ Settings, and in the Stock Valuation section, activate options such as Automatic Accounting.

 With automated inventory valuation, Journal Entries are generated according to your accounting mode: Continental or Anglo-Saxon (check this in Developer mode under Accounting app ‣ Configuration ‣ Settings). In Anglo-Saxon accounting, Cost of Goods Sold is only reported when products are sold or delivered to customers. For perpetual inventory valuation, configure the Expense Account as an Expenses or Cost of Revenue type account (such as Cost of Production or COGS).


To configure Stock Input and Output Accounts, navigate to Inventory app > Configuration > Product Categories and select your category. These accounts serve as counterparts for incoming and outgoing stock moves respectively, unless specific valuation accounts are set on locations. Settings apply to all products in the category by default but can be configured individually per product.


Now, navigate to Inventory app ‣ Configuration ‣ Product Categories, and choose the desired product category. In the Inventory Valuation section, set the Inventory Valuation field to “Automated”. Repeat this step for every product category intending to use automatic inventory valuation. This setting ensures that Odoo generates Journal Entries automatically for every stock movement. 

After enabling inventory valuation, the costing method for calculating and recording inventory costs is defined on the product category in Odoo. Go to Inventory app ‣ Configuration ‣ Product Categories and select the desired product category. In the Inventory Valuation section, select the appropriate Costing Method

In the Inventory Valuation section, choose the Calculation Method carefully. Just as a cyclist must select the right gear to conquer a mountain, you need to pick the appropriate inventory valuation method to navigate your financial landscape effectively. Let’s break down the main options:

  • Standard price (default)
  • FIFO (First-In, First-Out)
  • AVCO (Average Cost)

Note.   


Perpetual FIFO Flows: The Oldest Tires Roll First

With perpetual FIFO, the first costs that went into inventory are the first costs that come out when a sale is made — like using up the oldest tires in the back of the shop before cracking open a fresh set. This method keeps your cost records in line with actual sales.


Perpetual LIFO Flows: The Shortcut (But Not for Everyone)

is a bit like taking a shortcut through a back alley — it’s faster but not always allowed (especially under IFRS). With LIFO, the most recently purchased parts are sold first.


AVCO  Flows: The Steady Ride

The moving average method finds the average cost of items each time you buy new stock. It’s like keeping a steady cadence on a long ride — smooth and predictable.


LIFO


AVCO


FIFO


Selling Bicycle Tires with FIFO

Day 1: Buy 20 tires at $30 each.

Day 2: Buy 20 more tires at $35 each.

Sale: Sell 30 tires.

COGS:

20 tires × $30 = $600

10 tires × $35 = $350

Total COGS: $950

Selling Bicycle Pedals with LIFO

Day 1: Buy 15 pedals at $40 each.

Day 2: Buy 15 more at $45 each.

Sale: Sell 20 pedals.

COGS:

15 pedals × $45 = $675

5 pedals × $40 = $200

Total COGS: $875

Bicycle Chains with Average

Day 1: Buy 10 chains at $15 each.

Day 2: Buy 10 more at $20 each.

Total Cost: (10 × $15) + (10 × $20) = $350

Total Quantity: 20

Average Cost per Chain: $350 ÷ 20 = $17.50

Journal Entry:

Debit: COGS $950

Credit: Inventory $950

Journal Entry:

Debit: COGS $875

Credit: Inventory $875

Journal Entry:

Debit: COGS $87.50 (5 × $17.50)

Credit: Inventory $87.50

Basic Journal Entries

So in a Perpetual Inventory System, every transaction involving inventory always creates at least two records (of the fundamental  Double-entry bookkeeping principle): one for debit and one for credit. When, for example, a bicycle or accessory is purchased, sold, returned, or adjusted, Journal Entries are made to keep the Inventory Account and COGS accurate.


In inventory context debits increase asset accounts (like Stock Valuation) and expense accounts (like COGS), credits decrease asset accounts and increase revenue/liability accounts. When inventory is purchased, Stock Valuation (asset) increases (debit), when inventory is sold, Stock Valuation decreases (credit) and COGS increases (debit). Basic Balance requirement: The total of debits must equal the total of credits in each journal entry.

Journal Entries in Perpetual Inventory System

Perpetual inventory systems create real-time Journal Entries for each inventory transaction. Key entries include: purchases (DR Stock, CR Payables), sales (DR Receivables, CR Revenue + DR COGS, CR Stock), and inventory adjustments (DR/CR Stock and Adjustment accounts), etc.

Journal Entries: Basic Received from a Sale

Scenario: A customer buys a bicycle for $500 (excluding tax).

Journal Entries: Basic Payabled from a Purchase

Scenario: The bicycle shop purchases inventory worth $500.

Journal Entries & Perpetual Inventory

Challenge & Solution: Basic Connects inventory management with accounting

  • Adjusts stock levels.
  • Creates a corresponding journal entry.
  • Updates financial statements in real time.

Action


Automated Journal Entry

Customer Buys a Bike ($500)  


Debit: Accounts Receivable $500

Credit: Sales Revenue $500  

  Stock is Updated


Debit: COGS $300

Credit: Inventory Assets $300

Payment Received

 

Debit: Cash $500

Credit: Accounts Receivable $500

Journal Entries & Retail Store & Perpetual Inventory

Challenge & Solution: Keeping track of products across multiple stores.

●        Barcode scanning for instant stock updates.

●        Automated Journal Entries to log sales and COGS.

Action


Automated Journal Entry


Product Arrival​


Debit: Inventory Assets

Credit: Accounts Payable  

Product Sale ​

Debit: Accounts Receivable

Credit: Sales Revenue

Stock Reduction​

Debit: COGS

Credit: Inventory Assets

Journal Entries & E-commerce Business & Perpetual Inventory

Challenge & Solution: Keeping track of products across multiple stores.

●        Integrates with online stores for real-time stock and accounting updates.

●        Automates entries for sales, shipping, and returns.

Action

Automated Journal Entry


Online Sale

Debit: Accounts Receivable

Credit: Sales Revenue

Stock Deduction  

Debit: COGS

Credit: Inventory Assets

  Shipping Cost

Debit: Shipping Expense

Credit: Cash  

Journal Entries & Manufacturing/Production & Perpetual Inventory

Challenge & Solution: Managing raw materials and finished goods across multiple sites.

●        Multi-warehouse support to automate stock transfers.

●        Automated entries for raw material usage and production.

Action

Automated Journal Entry

Raw Material Used

Debit: COGS

Credit: Inventory Assets

Finished Goods Produced

Debit: Inventory Assets

Credit: Work in Progress

Journal Entries & Landed Costs & Perpetual Inventory

Challenge & Solution: Adding shipping cost to a purchase

●        When additional costs (shipping, customs, etc.) are added to purchase price.


Action

Automated Journal Entry

Shipping Cost

Debit: Stock Valuation (Asset) $100

Credit: Landed Costs Payable $100

In Odoo, inventory valuation entries appear in Accounting app ‣ Accounting ‣ Journal Entries and can be identified by checking the Journal column or by matching Reference values with warehouse operation codes (e.g., WH/IN/00014 for receipts). Clicking on an inventory valuation journal entry opens a double-entry accounting record.

Inventory Adjustments & Journal Entries

Switching from manual to automatic inventory valuation in Odoo may cause discrepancies between stock valuation and accounting journals. To successfully transition: clear existing stock, change to automatic valuation, then restore original stock with its monetary value through inventory adjustments. After recovery, Odoo Accounting automatically generates corresponding Journal Entries.

 Journal Entries & Inventory Adjustments & Perpetual Inventory

Challenge & Solution: Finding 20 extra units during count (valued at $10 each).

Action


Automated Journal Entry


Positive adjustments (increasing quantity)

Debit: Stock Valuation (Asset): $200

Inventory Adjustment (Income): $200

Negative adjustments (decreasing quantity)  

Debit: Stock Valuation (Expense): $200

Inventory Adjustment (Asset): $200

Perpetual Adjustment

Even the best cyclists hit a bump now and then — a flat tire or a slipped chain can throw things off balance. In the same way, even the most well-oiled perpetual inventory system can run into hiccups like damage, theft, or accounting errors. That’s where continuous adjustments come in, acting like a trusty roadside repair kit. They fix the kinks in your inventory records, ensuring everything runs as smoothly as a freshly greased bike chain. With these adjustments, you can correct stock levels and costs in real-time, keeping your business on track without having to pull over for a full inspection.

Journal Entries & Perpetual Adjustment

Challenge & Solution: Adjustment for Missing Handlebars

Recorded Inventory: 20 handlebars, Actual Count: 18 handlebars, Cost per Handlebar: $25

Action


Automated Journal Entry


Adjustment Entry

Debit: Inventory Shrinkage $50 (2 handlebars × $25)

Credit: Inventory $50

The bike shop owner made a smart choice by choosing a perpetual inventory system. With real-time updates, accurate pricing, and no surprises, it is a bit like investing in a high-end carbon fiber bike — it’s sleek, efficient, faster, smoother, and much more reliable. So, if you own a bike shop, don’t get stuck in the past. The Odoo platform, with support from Kodershop company, can help you manage real-time inventory across multiple warehouses from a single account. Choose a perpetual inventory system to keep your business growing at full speed!

Odoo Perpetual Inventory System Journal Entries
Romaniia Hibliak April 16, 2025
Share this post
Tags
Archive
Sign in to leave a comment
Discover Odoo Valuation Role with Smart Inventory Tutorial