Skip to Content
Menu
This question has been flagged

When using FIFO Costing Method and Automated Inventory Valuation, there's a discrepancy when users create return orders and credit notes, how to correct that discrepancy?

Avatar
Discard
Author Best Answer

Here is an example to break down the implication of Accounting when you perform a return order with FIFO Costing Method (Average costing method should have similar implication)

I will use a use case and break it down to Purchase, Sales, and Return flow and explain the accounting journal entry.

Use Case:

  • Costing Method: First In First Out (FIFO)

  • Inventory Valuation: Automated

  • Anglo-Saxon Accounting (COGS recorded during Invoice)

  • Invoice Delivered Quantities

  • Flow: 

    • Purchasing a product with 2 POs, each with 10 units but different cost. 

    • Sell 13 of them, invoice them. 

    • Return all 13 of them, and create credit note.

Purchase Flow:

  1. Perform a few purchases orders:

  • PO1: 10 quantity $10

  • PO2: 10 quantity $15


Check the Inventory Valuation model:

  • 10 * $10 = $100

  • 10 * $15 = $150

Check the Journal Entries:

Sales Flow:

  1. Now, let’s create a Sales Order to sell 13 units of that product:

Check the Inventory Valuation:

What happens here is that system is taking 10*$10 + 3*$15 = $145


Check the Journal Entires:


  1. Let’s go ahead and Invoice this Sales Order and check the journal entries:

We can see that the Journal items that the system generated is according to the Inventory Valuation, which should be correct.

Return Flow:

  1. Let’s say the customer wants to return the product, we can go ahead and click “return” from the delivery order. Let’s say all 13 units are returned. 

Check the Inventory Valuation:

Check the journal entries:

You will see that there’s a discrepancy from the initial delivered value, this is due to how Odoo computes the total value. If you use Studio to pull out the “Unit Value” field on Inventory Valuation, you will see that:

  • When the delivery was done, even though the Unit Value was $11.15, the real value used here was $145/13, which equals to 11.153846153……

  • However, when the return order was done, the Unit Value used was actually $11.15, which multiplied by 13 equals to $144.95 

  1. To Issue a Credit Note, there’s 3 method:

    1. Go to Invoices, click “Add Credit Note”, and do a full refund

    2. Go to Invoices, click “Add Credit Note”, and do partial refund and Confirm.

    3. Go to Sales Order and click “CREATE INVOICE” (DO NOT SUGGEST)


Method 1: Go to Invoices, click “Add Credit Note”, and do a full refund.
If you select the Full Refund, system will reverse the initial Invoice entirely, which the Cost taken here would be 145 instead of 144.95. 

Implication: This will cause a discrepancy between your Inventory Valuation journal entry and Credit Note journal entry, you will need to manually change the Inventory Valuation journal entry to match. (Changing the Inventory valuation journal from 144.95 to 145). 


Method 2: Go to Invoices, click “Add Credit Note”, and do a partial refund and confirm.

Choose a partial refund

The Journal entry created will take the value from Inventory Valuation, which is $144.95.


Implication: In this case, since both the Inventory Valuation journal entries and Credit Note journal entries already match, you have two options: either you choose to live with the small discrepancy, all you can change BOTH the journal entries to match the OUT journal entry.


Method 3: Go to Sales Order and click “CREATE INVOICE” (DO NOT SUGGEST)

Since the Invoice Policy here is “Delivered Quantity”, you can even use the “Create Invoice” button on Sales Order, because Odoo knows that you have 0 Delivered quantity (since you have returned all 13 units) but 13 Invoiced quantity, 


Implication: Odoo will NOT be taking any value from the Inventory Valuation model, Odoo will directly take the CURRENT COST of the product on the product template (which is $15) and multiply it by quantity instead. Which obviously will cause a HUGE difference in the journal entry. You will need to manually change it from $195 to $145.

Summary

  • BOTTOMLINE: There's implications for each method and all will need some sort of manual adjustment. With how Odoo is currently developed, you should double check your journal entry EVERY TIME you create a return/credit note to make sure that it is accurate.


  • Even though the discrepancy here seems insignificant, the difference becomes HUGE when the quantity to return increases (ex.: $0.003846153 * 20,000 = 76.92). It might not affect retail businesses, but if you run a B2B trading business, you will need to handle the discrepancy

  1. Out of all 3 methods, a full refund is most accounting accurate because it reverses the whole entry from the invoice, but do NOTE that it will still cause the discrepancy between the return Inventory Valuation and the Credit Note. So you need to change the Inventory Valuation journal entry manually (In this case, changing the Inventory valuation journal from 144.95 to 145). 
  2. Sometimes, customers DO NOT return the whole order. If they do a partial refund, both journal entries for the Return Inventory Valuation and a Credit note will match. However, you will need to live with the discrepancy caused by decimal places or change BOTH the Inventory Valuation journal entry AND the credit note journal entry.
  3. ABSOLUTELY NEVER USE THE “CREATE INVOICE” BUTTON BECAUSE IT WILL CAUSE A HUGE DISCREPANCY AND WILL BE A MESS TO TRACE BACK.


Avatar
Discard
Author

I am happy to know if anyone found a better solution!

Related Posts Replies Views Activity
1
Apr 21
2614
3
May 25
5583
3
Jun 25
31924
1
May 24
6196
2
Jul 25
1652