Inventory revaluation of negative inventory
Why we need revaluation of negative inventory
About Stock Valuation
If in some situations you ship product without having availability, you will probably see journal entries like these:
“Revaluation of WH/OUT/00015 (negative inventory)” or “Expenses Revaluation of WH/OUT/00015 (negative inventory)”
It might seem strange but there is a good reason why Odoo does this when using Average (AVCO) and Real Price (FICO) and doing automated inventory valuation.
On the product costing Odoo creates a valuation (valuation layer = qty x unit price) associated with inventory receipts and if you use FIFO Odoo uses the last purchase cost for the quantities associated with the “first in first out rule”. If you use the Average cost, each product has the value of the average purchase cost of the product. The cost of the product is recomputed as each receipt.
When you ship or consume products you don’t have that will offset the both AVCO and FIFO calculations and so there is the need to, somehow compensate for this self inflicted problem.
Odoo compensates the faulty valuation layer valued at an estimated price with the price of future receipts if any. If the estimated price is equal to the real price, no layer is created and the original layer is marked as compensated. This action generates the :
“Revaluation of WH/OUT/00015 (negative inventory)”
Odoo will cycle through all valuation layers associated with a stock mover of the product where the remaining quantity is negative. These will be the stock valuations layers with pending adjustments.
In all these pending adjustment layers, Odoo will adjust with the future candidate layers until the adjustment quantity is completed.
About expenses FIFO adjustment (Anglo Saxon accounting)
With Anglo Saxon accounting the system considers the expenses (Cost of Goods Sold - COGS) at the moment you sell the merchandise. For doing this Odoo will consider the value of the products as cost per unit multiplied by quantity. If the valuation layer was wrong due to negative inventory then the COGS can also be wrong.
Imagine a product is delivered and invoiced while you don't have units in stock anymore, there are chances of that product getting undervalued/overvalued. So, we should nevertheless take into account the fact that the product has already been delivered and invoiced to the customer by posting the value difference in the expense account also. Consider the below case where product is getting undervalued:
You bought 8 units @ 10$ -> You have a stock valuation of 8 units, unit cost 10. Then you deliver 10 units of the product. You assumed the missing 2 should go out at a value of 10$ but you are not sure yet as it hasn't been bought in Odoo yet. Afterwards, you buy missing 2 units of the same product at 12$ instead of expected 10$.
In case the product has been undervalued when delivered without stock, the vacuum entry is the following one (this entry already takes place):
While delivering product with different price, the following additional journal items should be created:
This will only happen for FIFO (real time) products and will create the cost adjustments paired with the inventory layers that the last process has created.