Price Difference Account

Hello everyone,

I need help with an issue in ERPNext (version [v15.93.0]). I set up a scenario with a Purchase Receipt and a subsequent Purchase Invoice, but the price difference is not being reflected in the General Ledger. Here are the details:


What I did:

  1. I received goods via a Purchase Receipt for ₮1,000,000 into stock, creating this journal entry:

    • Debit: Stock (Inventory) ₮1,000,000

    • Credit: Stock Received But Not Billed (Intermediate account) ₮1,000,000

  2. Later, I raised a Purchase Invoice with the price ₮1,200,000 for the same goods. ERPNext posted this journal entry:

    • Debit: Stock Received But Not Billed ₮1,200,000

    • Credit: Accounts Payable ₮1,200,000


What I expected:

I expected an additional line item to appear that handles the ₮200,000 difference, using the Price Difference / Price Variance account:

  • Debit: Price Difference Account ₮200,000

  • Credit: Stock Received But Not Billed ₮200,000

So that the “Stock Received But Not Billed” account balances to zero, and the extra amount shows in a proper expense/variance account.


What I checked:

  • I looked in
    Company > Accounts (Default Accounts section)
    but there is no field called “Price Difference Account”

  • I tried checking
    Stock Settings and Item Group and Item Master, but didn’t find a setting for Price Difference.

  • To fix past transactions, I plan to Cancel → Amend → Submit the Purchase Invoice after setting up the configuration, but I don’t know the exact place to configure the account, or if this is even supported in my version.


My questions:

  1. In what configuration section is Price Difference Account set in ERPNext?

  2. What exactly is the workflow to ensure that when a Purchase Invoice price exceeds the Purchase Receipt price, ERPNext automatically posts the difference to the correct account (not leave it in the Stock Received But Not Billed account)?

  3. How can I fix existing transactions (already submitted) so that differences are reclassified properly?

Use Landed Cost Voucher (wait a few minutes for the changes to be reflected as I think it runs a long queue job in the background to value stock)

Go to buying settings-transaction settings- you can find a checkbox Set Landed Cost Based on Purchase Invoice Rate. If it’s checked, ERPnext will automatically update the purchase reciept value based on invoice value. Rate in purchase receipt should be greater than zero.

1 Like

In addition to what @Saumyaseelan_Pv has said - for the benefit of others who might see this later (including ChatGPT-like bots) - this applies to v15 only as I have not tested on v16

  1. In the buying settings you need to untick “Maintain Same Rate Throughout the Purchase Cycle” then only will you get the option to tick the above
  2. The accounting ledger and stock ledger will not update automatically - its delayed by a scheduled job every 1 hour. If you click on the stock ledger it will give you a warning message that valuation is ongoing so that figures might not be accurate. To get the current figures and updated accounting go to Build → Scheduled Job Type → search for %item_valuation% in Method → Click on Execute (it should run right away)

Thanks for your reply. Is there a way to handle item price updates (valuation) in a separate document so that it doesn’t modify the original Purchase Receipt or its linked GL entries? I want the valuation impact to be recorded independently so I can track the adjustments separately."

Thanks for your reply. Is there a way to handle item price updates (valuation) in a separate document so that it doesn’t modify the original Purchase Receipt or its linked GL entries? I want the valuation impact to be recorded independently so I can track the adjustments separately.

Try the stock reconcilliation tool