Purchase Price Differences in Odoo#
When a vendor invoice arrives at a different price than the purchase order, Odoo needs to account for the difference correctly - either adjusting inventory cost or posting the variance to an expense account.
Where Price Differences Occur#
Scenarios that create price differences:
- Vendor sent an invoice with a typo or price update
- Currency exchange rate changed between PO and invoice date
- Negotiated discount not reflected on the vendor's invoice
- Price agreed verbally differed from the written PO
How Odoo Handles the Difference#
Based on your product valuation method:
Standard Price: inventory is valued at a fixed standard cost. Price difference between PO and invoice goes to:
- Debit: Purchase Price Difference (Expense account)
- Credit: Accounts Payable (difference)
Average Cost (AVCO): inventory cost is updated when goods are received. At invoicing:
- If invoice price > receipt price → adjusts inventory + posts difference
- If invoice price < receipt price → credit adjustment to inventory
Setting the Price Difference Account#
Accounting → Configuration → Settings → Accounts → Price Difference Account:
- Select an account (e.g., Purchase Price Difference 510500)
- This account receives automatic postings when invoice price ≠ PO price
Price Difference Warning on Bills#
Purchase → Configuration → Settings → set Purchase Price Difference:
- Threshold: e.g., 5%
- If the vendor bill price differs from the PO price by more than 5%:
- Warning shown to the AP clerk
- Or require manager approval before posting
Correcting a Price Difference#
If the vendor billed incorrectly:
- Contact vendor → request a corrected invoice or credit note
- Do NOT post the incorrect invoice - hold it in draft
- Post only when the corrected amount is confirmed
If the price difference is legitimate (vendor's contract price changed):
- Update the PO with a purchase order amendment
- Post the vendor bill at the new price
- The price difference account absorbs the variance
Reporting#
Accounting → Reporting → General Ledger → filter by Purchase Price Difference account:
- Total price variances this period
- Which vendors are consistently billing above PO price
- Which product categories have the highest price variance
Large, recurring variances indicate PO management or vendor management issues - either POs are being confirmed without current pricing, or vendors are ignoring agreed prices.

