跳至内容
Odoo 菜单
  • 登录
  • 免费试用
  • 应用程序
    财务
    • 会计
    • 发票
    • 费用
    • 电子表格 (BI)
    • 文档
    • 电子签名
    销售
    • 客户关系管理
    • 销售
    • POS 销售点管理-零售
    • POS 销售点管理 - 餐厅
    • 订阅
    • 租赁
    网站
    • 网站设计
    • 电子商务
    • 博客
    • 论坛
    • 在线客服
    • 在线学习
    供应链
    • 库存
    • 制造
    • 产品生命周期
    • 采购
    • 维护保养
    • 品控
    人力资源
    • 员工
    • 招聘
    • 休假
    • 评价
    • 内部推荐
    • 车队
    营销
    • 社媒营销
    • 电邮营销
    • 短信营销
    • 近期活动
    • 营销自动化
    • 网上调查
    服务
    • 项目管理
    • 工时单
    • 现场服务
    • 服务台
    • 排期
    • 预约
    生产力
    • 讨论
    • 批核
    • IoT物联网
    • VoIP
    • 知识库
    • WhatsApp
    第三方应用软件 Odoo 定制 Odoo云端平台
  • 行业
    零售
    • 书店
    • 服装店
    • 家具店
    • 食品杂货店
    • 五金店
    • 玩具店
    餐饮与酒店服务
    • 酒吧及酒馆
    • 餐厅
    • 快餐
    • 民宿
    • 饮品分销商
    • 酒店
    房地产
    • 房地产代理
    • 建筑师事务所
    • 建造业
    • 地产管理
    • 园艺
    • 业主协会
    咨询
    • 会计师事务所
    • Odoo合作伙伴
    • 市场推广公司
    • 律师事务所
    • 人才招聘
    • 审核 & 认证
    制造
    • 纺织
    • 金属
    • 家具
    • 食品
    • 啤酒厂
    • 企业礼品
    保健与健身
    • 体育俱乐部
    • 眼镜店
    • 健身中心
    • 健康从业者
    • 药房
    • 发型屋
    商贸服务
    • 维修人员
    • IT 硬件及支持
    • 太阳能系统
    • 鞋匠
    • 清洁服务
    • 暖通空调服务
    其他
    • 非营利组织
    • 环境机构
    • 广告牌租赁
    • 摄影服务
    • 自行车租赁
    • 软件经销商
    浏览所有行业
  • 社区
    学习
    • 教学视频
    • 文档
    • 认证
    • 培训
    • 博客
    • 播客
    赋能教育
    • 教育计划
    • Scale Up! 商业游戏
    • 参观Odoo
    获取软件
    • 下载
    • 版本对比
    • 发布
    合作
    • Github
    • 论坛
    • 近期活动
    • 翻译
    • 成为合作伙伴
    • 合作伙伴服务
    • 注册您的会计事务所
    获取服务
    • 寻找合作伙伴
    • 查找会计服务
    • 预约顾问咨询
    • 安装及推行服务
    • 客户参考
    • 支持
    • 升级
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    获取演示
  • 定价
  • 技术支持

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

  • 客户关系管理
  • e-Commerce
  • 会计
  • 库存
  • PoS
  • 项目
  • MRP
All apps
只限注册用戶才可与社群互动。
所有帖文 人 徽章
标签 (查看所有)
odoo accounting v14 pos v15
关于此论坛区
只限注册用戶才可与社群互动。
所有帖文 人 徽章
标签 (查看所有)
odoo accounting v14 pos v15
关于此论坛区
帮助

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

订阅

此帖文有活动时,接收通知

此问题已终结
accountingworkflowinventoryvaluationcomplianceCOGSUSA19.0vendor bills
1 回复
1602 查看
形象
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
形象
丢弃
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

形象
Ray Carnes (ray)
最佳答案

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
形象
丢弃
喜欢讨论吗?不要只阅读,加入进来!

立即创建账户,享受专属功能,与我们的精彩社区互动!

注册
相关帖文 回复 查看 活动
What is the practical scenario in which these two accounts can be used together in Odoo 19?
accounting inventory valuation quickstart adjustment 19.0
形象
形象
形象
形象
3
11月 25
374
What is the practical scenario in which these two accounts can be used together in Odoo 19?
accounting inventory valuation quickstart adjustment 19.0
形象
0
11月 25
28
Valuation of inventory in a multi-branch enviroment
accounting inventory valuation
形象
形象
1
10月 24
2848
What are Stock Interim Accounts and how should they be used? 已解决
accounting inventory valuation
形象
形象
形象
2
12月 24
41508
Costing method was not selected but now selected how to process existing transactions?
accounting inventory valuation
形象
0
10月 17
4119
社区
  • 教学视频
  • 文档
  • 论坛
开源
  • 下载
  • Github
  • Runbot
  • 翻译
服务
  • Odoo.sh 托管
  • 支持
  • 升级
  • 自定义开发服务
  • 教育
  • 查找会计服务
  • 寻找合作伙伴
  • 成为合作伙伴
关于我们
  • 我们的公司
  • 品牌资产
  • 联系我们
  • 招聘
  • 近期活动
  • 播客
  • 博客
  • 客户
  • 法律 • 隐私
  • 安全
الْعَرَبيّة 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致力于为企业管理提供高效智能的开源解决方案,是全球业内高速成长的软件服务商之一,逾七百五十万用户选择Odoo进行数字化升级。通过一系列全业务链覆盖、高度集成、简单易用的商业应用,助力企业实现信息化改革、降本增效并释放公司增长潜力。

Odoo独特的价值在于是一款非常容易使用又完全集成的应用。

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