Forward Exchange Rate on purchase invoice, average cost price

We currently use the average cost price calculation method for our products.
This calculation takes into account the amount of the purchase invoices to calculate the cost price.
When we have a purchase invoice in a foreign currency, the system will actually use the invoice date to determine the rate.
The value of the invoice in currency is converted into the currency of the company at the rate retrieved in the management of currency rates.
Price management is defined in our configuration to retrieve prices automatically 1x per day - we use the daily price of the document for our operations.

But for the management of our purchases in foreign currency, we use the forward exchange contract technique.
This technique allows us to buy an amount X in a foreign currency for a given date with a negotiated price.
This exchange rate will be guaranteed until the date defined in the contract and provided that the amount available in currency on the contract is not reached.

We sometimes need to apply a fixed exchange rate when encoding a purchase invoice to have a fairer value of the amount converted into the currency of the company.
This amount will then be used to calculate the cost price.
If we do not have the possibility of placing a fixed currency rate ie the price of the negotiated forward exchange contract, we have a deviation of the average cost price compared to reality.

Currently in our accounting software, we have a checkbox on the purchase invoice document to indicate that we are going to place a fixed price on this document.
The accountant can encode on the purchase invoice document the fixed rate he used to pay this invoice. This rate is the one defined on the forward exchange contract.
If “fixed rate” has not been checked, our accounting software will use the rate defined in the rate management module.

We made an estimate to determine the variation between the cost price calculated with “the daily exchange rate” (purchase invoice) and the cost price calculated with “the fixed exchange rate” of our futures contracts of change (purchase invoice)
This gives us a 2.5% average difference, so our cost price is overstated by 2.5% compared to the true book value.

After a search on the internet, I saw that many software have the possibility of placing a fixed rate on a purchase invoice type document.


  • Are there other companies that use forward exchange contracts?
  • and if so do you have a technique to manage this situation?

A simple solution would be to store on the invoice the exchange rate to use instead of the general one. But this rate should also be used to book the payment of the invoice (except if the payment is booked in company currency with the right amount from the forward exchange rate).

But if not fixed rate was used to post the invoice and there is an exchange gain or lost, it should be applied to the price of the incoming goods.
For now we always use the date of the stock move to convert the unit price as cost price. But indeed it should use the rate at which the invoice was paid.

We had not identified that the cost price was calculated on the basis of the exchange rate on the date of the movement. So we thought that the correction of the exchange rate on the processing of the supplier invoice would change the price of the movement.

A solution would have been to keep the exchange rate on the movement and to be able to update the exchange rate of the movement with the rate defined on the processing of the supplier invoice. But this modification requires too much change in the calculation system. (although this could greatly simplify the margin calculation of the SALE module which must currently retrieve the exchange rate on the date of the movement by a QUERY)

We have decided to work with 2 different notions of currency:

  • PUSD (Purchase USD) for purchases with an exchange rate calculated on the basis of our “Forward Exchange rate” (average calculated manually by our accounting department).
  • USD for sales with a daily market exchange rate.

We are going to encode our purchase orders in the PUSD currency so that the cost price is calculated with an exchange rate as close as possible to that used to pay the supplier invoice.

We will encode our sales orders with the USD currency so that the turnover in the currency of the company is calculated on the basis of the market exchange rate.