Bỏ qua để đến Nội dung
Odoo Menu
  • Đăng nhập
  • Dùng thử miễn phí
  • Ứng dụng
    Tài chính
    • Kế toán
    • Hóa đơn
    • Chi phí
    • Bảng tính (BI)
    • Tài liệu
    • Ký tên
    Bán hàng
    • CRM
    • Bán hàng
    • POS Cửa hàng
    • POS Nhà hàng
    • Đăng ký
    • Cho thuê
    Trang web
    • Trình tạo trang web
    • Thương mại điện tử
    • Blog
    • Diễn đàn
    • Trò chuyện trực tiếp
    • Học trực tuyến
    Chuỗi cung ứng
    • Tồn kho
    • Sản xuất
    • PLM
    • Mua hàng
    • Bảo dưỡng
    • Chất lượng
    Nhân sự
    • Nhân viên
    • Tuyển dụng
    • Ngày nghỉ
    • Đánh giá
    • Giới thiệu
    • Đội xe
    Marketing
    • Marketing trên MXH
    • Marketing qua email
    • Marketing qua SMS
    • Sự kiện
    • Tự động hóa Marketing
    • Khảo sát
    Dịch vụ
    • Dự án
    • Bảng chấm công
    • Dịch vụ hiện trường
    • Hỗ trợ
    • Kế hoạch
    • Lịch hẹn
    Năng suất
    • Thảo luận
    • Phê duyệt
    • IoT
    • VoIP
    • Kiến thức
    • WhatsApp
    Ứng dụng của bên thứ ba Studio Odoo Nền tảng Đám mây Odoo
  • Ngành
    Bán lẻ
    • Nhà sách
    • Cửa hàng quần áo
    • Cửa hàng nội thất
    • Cửa hàng tạp hóa
    • Cửa hàng đồ kim khí
    • Cửa hàng đồ chơi
    Ẩm thực & Dịch vụ lưu trú
    • Bar và quán rượu
    • Nhà hàng
    • Đồ ăn nhanh
    • Guest house
    • Nhà phân phối đồ uống
    • Khách sạn
    Bất động sản
    • Công ty môi giới bất động sản
    • Công ty kiến trúc
    • Xây dựng
    • Quản lý bất động sản
    • Làm vườn
    • Hiệp hội chủ sở hữu bất động sản
    Tư vấn
    • Công ty kế toán
    • Đối tác Odoo
    • Công ty marketing
    • Công ty luật
    • Tuyển dụng
    • Thanh tra & chứng nhận
    Sản xuất
    • Dệt may
    • Kim loại
    • Nội thất
    • Ẩm thực
    • Nhà máy bia
    • Quà tặng doanh nghiệp
    Sức khoẻ & fitness
    • CLB thể thao
    • Cửa hàng kính mắt
    • Trung tâm fitness
    • Chuyên gia chăm sóc sức khỏe
    • Hiệu thuốc
    • Tiệm làm tóc
    Thương mại
    • Dịch vụ sửa chữa
    • Phần cứng CNTT & Hỗ trợ
    • Hệ thống năng lượng mặt trời
    • Công ty sản xuất giày
    • Dịch vụ vệ sinh
    • Dịch vụ HVAC
    Khác
    • Tổ chức phi lợi nhuận
    • Cơ quan môi trường
    • Cho thuê biển quảng cáo
    • Nhiếp ảnh
    • Cho thuê xe đạp
    • Đại lý phần mềm
    Xem tất cả ngành
  • Cộng đồng
    Học tập
    • Khóa học
    • Tài liệu
    • Chứng chỉ
    • Đào tạo
    • Blog
    • Podcast
    Thúc đẩy đào tạo
    • Chương trình đào tạo
    • Trò chơi kinh doanh Scale Up!
    • Tham quan Odoo
    Nhận phần mềm
    • Tải xuống
    • So sánh các phiên bản
    • Phiên bản
    Hợp tác
    • Github
    • Diễn đàn
    • Sự kiện
    • Dịch thuật
    • Trở thành đối tác
    • Dịch vụ dành cho Đối tác
    • Đăng ký công ty kế toán của bạn
    Nhận dịch vụ
    • Tìm đối tác
    • Tìm kế toán
    • Gặp chuyên gia hỗ trợ
    • Dịch vụ Triển khai
    • Khách hàng tham khảo
    • Hỗ trợ
    • Nâng cấp
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Nhận một buổi demo
  • Bảng giá
  • Trợ giúp

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Kế toán
  • Tồn kho
  • PoS
  • Dự án
  • MRP
All apps
Bạn cần phải đăng ký để tương tác với cộng đồng.
Tất cả bài viết Người Huy hiệu
Thẻ (Xem tất cả)
odoo accounting v14 pos v15
Về diễn đàn này
Bạn cần phải đăng ký để tương tác với cộng đồng.
Tất cả bài viết Người Huy hiệu
Thẻ (Xem tất cả)
odoo accounting v14 pos v15
Về diễn đàn này
Hỗ trợ

Odoo v19 – Is There a GAAP-Compliant Solution for Inventory & COGS When Vendor Bills Are Delayed?

Đăng ký nhận tin

Nhận thông báo khi có hoạt động trên bài viết này

Câu hỏi này đã bị gắn cờ
accountingworkflowinventoryvaluationcomplianceCOGSUSA19.0vendor bills
1 Trả lời
1686 Lượt xem
Ảnh đại diện
Lee Jones

We have been working with Odoo v19 inventory valuation and have encountered a significant accounting compliance concern that has not been clearly resolved through Support. I am posting here to determine whether there is a standard configuration, workaround, or upcoming improvement.

Issue Summary

Under GAAP, inventory and Cost of Goods Sold must be recognized in the correct period, even if vendor bills are received after month-end.

However, in Odoo v19:

  • Inventory valuation and COGS are only posted when the vendor bill is created
  • If the bill is received in a later month, the valuation is posted in that later period
  • This causes misstated inventory and COGS in the prior month, which is not GAAP-compliant

Open Questions

  1. What is the recommended GAAP-compliant workflow when vendor bills arrive after month-end?
  2. Is there a way to recognize inventory and COGS at delivery/receipt, and then clear interim accounts when the bill arrives?
  3. Does the Periodic (At Closing) setting resolve this, and if so:
    • How does COGS get recognized at the time of sale?
    • Are additional end-of-month processes required?
  4. Is this behavior a known limitation in v19 with planned enhancements?

Why this matters

We are a Global Odoo Partner based in the United States, and the majority of our mutual customers in the Americas follow GAAP accounting standards. If inventory valuation is only triggered by vendor bills, many users will face incorrect financial statements at period close.

Support Outcome

Support described how v19 currently works but did not confirm:

  • Whether it is GAAP-compliant
  • Whether a workaround exists
  • Whether improvements are planned

The support ticket was closed without a solution, so we are seeking clarification here.

0
Ảnh đại diện
Huỷ bỏ
Awie van den Berg

Hey Lee,

I am just as concerned as you and our clients are outraged about this. Doesn't matter how Odoo is trying to explain this away and trying to justify this change in Inventory valuation as to be compliant, it is not and we cannot upgrade our current Odoo clients to v19, because of this. I doubt if Odoo actually understands Anglo Saxon as it seems they want everything to be Periodic.

Here is what I have found as the only possible hack to make it work like v18..

You could potentially with a hack get the purchase side to work. For that, you need to enable (make visible) the GL account on Locations, for ALL locations. Then you need to specify the GL account for each location you have as the Stock Valuation account (DT account). You then need to specify the Stock Valuation account on the Category as the GRNI (goods receipt not invoiced), although it is called Stock Valuation here. (might need to rename it for avoiding confusion)

This will enable you to get Odoo to automatically do the GL entry when you receive the Goods in Stock (as required by IFRS and GAAP) by DT stock valuation and CT GRNI

When you do the Vendor bill (as this is just the liability as per IFRS and GAAP) It will DT GRNI and CT Ap Control.

The Issue now remaining is to figure out how to do the same on the Sales Side. When I sell something and deliver it, but invoice it later - Still working on that but probably less of an issue unless you have a client that creates 1 invoice for a month of shipments, usually the beginning of the next month. Yes, COGS is recorded at invoice level as it should because expense and revenue should be in the same period. However, inventory will now in v19 also only be updated on sales invoice, not when you actually ship the goods (don't have ownership anymore)

And then the big issue... Lot based costing. Under v19, there is no way to account the Cost of Sale based on the cost of the Lot. It is always just taking average cost. You cant have this as it is not reflective of the true net Realizable value (NRV) of your stock if you track by lots. It is fine if all your lots are the same cost, by 99% of the time they are not. Our clients that do serial and lot tracking absolutely requires this! 

At Lease FIFO costing is working...

I have also logged a ticket, yet to hear back. This is a timebomb. Wait until our competitors in the market get hold of this info. We might as well not sell v19 into Inventory sites in New Zealand.

Sorry, mate! Just as disappointed as you and there seems to be a lack of understanding or acknowledgement of the Issue at Odoo.

Ray Carnes (ray)

Hi Awie, I'd love to know specifically what leads you to conclude Odoo 19 is not compliant.

I have personally discussed the approach with former Auditors and CPA's from Deloitte, KPMG and PWC.

Both IRFS and GAAP discuss the need for period based matching of assets / liabilities / revenues / expenses [which includes accruals for expected amounts if Invoices / Bills are not available], but neither specify how often the general ledger needs to be updated, just that it needs to be done by month end.

A compliance audit is always based on "closed" books (adjusted / reclassed / corrected balance sheets and income statements) and never on mid month reports.

An auditor's job is to issue a formal opinion on whether a company's financial statements "present fairly, in all material respects," its financial position "for a specific period".

It is common practice to post accruals, depreciation, amortization, corrections and reclasses at month end - so the month end inventory update here is no different (to account for uninvoiced sales and unbilled purchases).

The Inventory Stock report updates in real-time the value and quantities of all tracked inventory based on receipts, deliveries, scrap, inventory adjustments and re-valuations.

Each month, the closing process which includes accruals and finally the GENERATE ENTRY feature will update the balance sheet to match the month end Stock report value.

Ray Carnes (ray)

Perhaps the part I have failed to explain well is that the closing entry is only the first part of the month end process.

After generating the inventory variation credit, Odoo helps generate four (or five if the Manufacturing App is installed) accrual entries to account for the differences between what was received/delivered and what was billed/invoiced.

These accrual entries for bills not received, goods billed not received, invoices to be issued, goods invoiced not delivered (and work in progress for Manufacturing) clear the inventory variation credit posted by the closing entry, which is designed to ensure your balance sheet is matched 100% with the value from the Inventory Stock report.

It is THESE entries that have detailed information about every purchase order line and sale order line with the product, quantity delivered/received, quantity invoiced/billed, and unit price.

I updated my answer in an attempt to clarify how this works. Happy to model specific scenarios with similar worked examples if you feel that would be useful.

We've all been trained to believe that the only way to achieve an accurate inventory valuation is to have a journal entry for every single receipt. For years, that's what 'perpetual inventory' has meant to us.

Does GAAP or IFRS require our G/L to be real-time? No. It requires it to be accurate for the period. The assumption we've all been holding onto is that 'goods changing hands' is the only auditable event. The new Odoo design challenges this. It suggests that the billing/invoicing event is the stronger, more financially relevant event to trigger the posting, as long as we have a way to account for when we don't complete billing and/or invoicing in the same period.

I think this is the biggest challenge we have in educating people. We have to shift the mindset from viewing the inventory general ledger account as a real-time stock quantity report to seeing it as a current asset account 100% managed by the finance team. We still track all inventory quantities and costs in real time operationally, but just hold the financial posting to when the superior, auditable "source of truth" that confirms the actual cost and creates the actual payable/liability or receivable/asset is available.

Our new audit trail comes from the accrual entries. They are granular, detailed, and designed specifically to tie out the G/L to our operational reality. The reconciliation is no longer trying to match a million tiny stock moves to the G/L. The system guarantees we match 100%, and it gives us the detailed accrual reports as the full, line-by-line proof.

P.S - a potentially overlooked but signifant benefit of this new design is the ability to unlock and back date warehouse receipts, delivery orders and inventory adjustments.

Awie van den Berg

Hey Ray,

Can you please elaborate on this? I think this is probably the missing element as I cant see it being discussed in any video or documentation. So, I'd be really interested to know where I can find this?

Mate, happy to change and adopt. But we can face our customers running Perpetual Inventory on a granular basis if we take away that functionality. So, maybe there Audit reports are the answer?

I'm also particularly interested in How V19 will deal with lots for the same product but different costs? In V18, the cost associated with the lot was used in the COGS, but it seems in V19 it is just using average cost to do COGS?


It is THESE entries that have detailed information about every purchase order line and sale order line with the product, quantity delivered/received, quantity invoiced/billed, and unit price.
I updated my answer in an attempt to clarify how this works. Happy to model specific scenarios with similar worked examples if you feel that would be useful.
We've all been trained to believe that the only way to achieve an accurate inventory valuation is to have a journal entry for every single receipt. For years, that's what 'perpetual inventory' has meant to us.
Does GAAP or IFRS require our G/L to be real-time? No. It requires it to be accurate for the period. The assumption we've all been holding onto is that 'goods changing hands' is the only auditable event. The new Odoo design challenges this. It suggests that the billing/invoicing event is the stronger, more financially relevant event to trigger the posting, as long as we have a way to account for when we don't complete billing and/or invoicing in the same period.
I think this is the biggest challenge we have in educating people. We have to shift the mindset from viewing the inventory general ledger account as a real-time stock quantity report to seeing it as a current asset account 100% managed by the finance team. We still track all inventory quantities and costs in real time operationally, but just hold the financial posting to when the superior, auditable "source of truth" that confirms the actual cost and creates the actual payable/liability or receivable/asset is available.
Our new audit trail comes from the accrual entries. They are granular, detailed, and designed specifically to tie out the G/L to our operational reality. The reconciliation is no longer trying to match a million tiny stock moves to the G/L. The system guarantees we match 100%, and it gives us the detailed accrual reports as the full, line-by-line proof.
Ray Carnes (ray)

Hi Awie

I have worked through an example at https://www.odoo.com/forum/help-1/how-can-i-access-the-details-of-the-inventory-variation-posted-at-month-end-in-odoo-19-290771

Hope this helps, please let me know if you still have questions or concerns.

dominique kon sun tack

help !

Something really weird with v19.
We have a product, purchase price = 100. We sell 5 pieces at $300 each. Valuation = perpetual, and costing = average.

The delivery is done, but no invoice (yet).
When we create the accrual for invoices to be sent, odoo creates this entry:

where the value of the COGS is equal to the value of the revenue. But should it not be instead the value of the goods delivered ? in the example above, it should be 500.


And when we look at the balance sheet:


The interim account is not zeroed ...

Am i missing something ?

Ray Carnes (ray)

Can you report this to our Support Team via odoo.com/help

Ảnh đại diện
Ray Carnes (ray)
Câu trả lời hay nhất

Odoo 19 no longer creates journal entries upon the physical receipt or delivery** of goods.

We have shifted this responsibility from warehouse operations to the accounting team. The new design centralizes inventory accounting in the Accounting app, posting at the time of the financial transaction (vendor bill / customer invoice) with the flexibility to post before or after as needed (bill and hold, FOB origin, sale on approval,etc.) and finalizing the period's valuation with a single, comprehensive month-end journal entry with a balance that is then cleared via accruing for bills not received, goods billed not received, invoices to be issued, goods invoiced not delivered and work in progress.

This new model significantly reduces the reconciliation work required between warehouse-generated entries and the general ledger.



>> Inventory valuation and COGS are only posted when the vendor bill is created

They are recorded when the Customer Invoice is posted.  We would suggest reviewing the Valuation Cheat Sheet at https://www.odoo.com/documentation/19.0/applications/inventory_and_mrp/inventory/inventory_valuation/cheat_sheet.html to understand the expected Journal Entries with each transaction, and reviewing the workflow at the end of this post to see a worked example.


>> If the bill is received in a later month, the valuation is posted in that later period. This causes misstated inventory and COGS in the prior month, which is not GAAP-compliant. 

You are correct that if you only posted the bill, the prior month would be misstated. The new design requires a standard month-end closing process to be compliant - which includes accruing for expected bills and generating a closing inventory valuation entry. This takes care of updating the inventory valuation. The following month, the liability for accrued bills is reversed so the actual AP can be posted when bills arrive.


>> What is the recommended GAAP-compliant workflow when vendor bills arrive after month-end?

Use Generate Entry from the new Accounting --> Review --> Inventory Valuation Report.  Then, accrue for the purchase order lines expected to be billed after month end (Bills to Receive / Billing Status = Waiting Bills) in either the Accounting App via Review --> Purchases --> Bills to Receive or in the Purchase App by selecting all Purchase Orders and using Accrued Expense Entry in the Actions Menu. 


>> Is there a way to recognize inventory and COGS at delivery/receipt, and then clear interim accounts when the bill arrives?

No. The new model is built to treat inventory as a financial concern that is finalized by accountants at closing, not a real-time entry posted by warehouse staff.


** Recall that the actual governing principle for inventory recognition (under both GAAP - ASC 330 and IFRS - IAS 2) is not "goods changing hands" but the transfer of control and the risks and rewards of ownership. The new workflow gives the accounting team the ability to recognize these values at the appropriate time (month-end) and handle complex scenarios (bill and hold, FOB origin, sale on approval,etc.) correctly.


>> Does the Periodic (At Closing) setting resolve this, and if so:

Periodic (at closing) is used where accounting standards dictate product purchases be expensed, so is not recommended in the USA. A Periodic Valuation entry (the closing entry) can be automatically generated each day or month, or on demand.


>> How does COGS get recognized at the time of sale?

Via the Customer Invoice, as discussed above.


>> Are additional end-of-month processes required?

Generate Entry from the Accounting --> Inventory Valuation Report, followed by the generation of the accrual entries for bills not received, goods billed not received, invoices to be issued, goods invoiced not delivered and work in progress. These entries should clear the inventory variation balance posted by the closing entry, which is designed to ensure your balance sheet is matched 100% with the value from the Inventory Stock report.


>> Is this behavior a known limitation in v19 with planned enhancements?

This is the new design. We are always enhancing Odoo, but no major changes are planned for now.



Resources

https://www.odoo.com/documentation/19.0/applications/inventory_and_mrp/inventory/inventory_valuation/cheat_sheet.html

https://www.youtube.com/watch?v=jqMwAkv1f3g



Sample Workflow

Let’s review the new Inventory Valuation report in Accounting after a simple Purchase / Sell / Deliver / Invoice workflow.

1) Purchase 10 items at $10 each and receive them:


2) Sell one item at $50 and deliver it:


3) Invoice the Sale:


Journal Entries from the Customer Invoice:


Although no journal entries are generated during the receipt and delivery of inventory, you can see the effect of these entries is managed via the new Inventory Valuation Report.


You now post the closing entry from the Inventory Valuation Report:


The standard month end process would then include clearing the inventory interim credit balance by generating accrual entries for unbilled Purchases:

You can see here there is detailed information about each unbilled purchase order, the product, the quantities and the price. 




Balance Sheet at month end:

 




Odoo 19 Configuration

Accounting


Chart of Accounts


Product Category 

  







1
Ảnh đại diện
Huỷ bỏ
Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!

Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!

Đăng ký
Bài viết liên quan Trả lời Lượt xem Hoạt động
What is the practical scenario in which these two accounts can be used together in Odoo 19?
accounting inventory valuation quickstart adjustment 19.0
Ảnh đại diện
Ảnh đại diện
Ảnh đại diện
Ảnh đại diện
3
thg 11 25
402
What is the practical scenario in which these two accounts can be used together in Odoo 19?
accounting inventory valuation quickstart adjustment 19.0
Ảnh đại diện
0
thg 11 25
28
Valuation of inventory in a multi-branch enviroment
accounting inventory valuation
Ảnh đại diện
Ảnh đại diện
1
thg 10 24
2853
What are Stock Interim Accounts and how should they be used? Đã xử lý
accounting inventory valuation
Ảnh đại diện
Ảnh đại diện
Ảnh đại diện
2
thg 12 24
41562
Costing method was not selected but now selected how to process existing transactions?
accounting inventory valuation
Ảnh đại diện
0
thg 10 17
4124
Cộng đồng
  • Khóa học
  • Tài liệu
  • Diễn đàn
Open source
  • Tải xuống
  • Github
  • Runbot
  • Dịch thuật
Dịch vụ
  • Lưu trữ Odoo.sh
  • Hỗ trợ
  • Nâng cấp
  • Phát triển tùy chỉnh
  • Đào tạo
  • Tìm kế toán
  • Tìm đối tác
  • Trở thành đối tác
Giới thiệu công ty
  • Công ty của chúng tôi
  • Tài sản thương hiệu
  • Liên hệ
  • Việc làm
  • Sự kiện
  • Podcast
  • Blog
  • Khách hàng
  • Pháp lý • Riêng tư
  • Bảo mật
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo là bộ ứng dụng kinh doanh có open source đáp ứng tất cả các nhu cầu của công ty bạn: CRM, thương mại điện tử, kế toán, tồn kho, POS, quản lý dự án, v.v.

Định hướng giá trị riêng biệt của Odoo là tích hợp hoàn toàn và dễ dàng sử dụng.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now