Adjusting exchange rates
If you trade in euros, dollars or other currencies, your customers, vendors and bank accounts stand in local currency at a rate that may be out of date at period end. The Adjust Exchange Rates batch job updates the values and posts unrealised gains and losses. Here is what the job does, what it adjusts, and which setups must be in place before you run it. The recognition rules are set locally and must be confirmed.
Why adjust
When an invoice in foreign currency is posted, the local currency amount is calculated at the rate of the day. If the invoice is not paid by the end of the month, the local currency amount may have changed. The difference is an unrealised gain or loss. If the invoice is paid later, the system reverses the unrealised entry and instead posts the realised difference between the posting rate and the payment rate.
Microsoft Learn shows an example: an invoice of 1,000 at rate 1.123 gives 1,123 in local currency. Adjusting to 1.125 posts an unrealised gain of 2. On payment at 1.120 the 2 is reversed, and a realised loss of 3 is posted.
Prerequisites
Before the job can be used, the adjustment rates must be in the system. On the Currency Exchange Rates page you fill in the Adjustment Exch. Rate Amount and Relational Adjmt Exch. Rate Amt. fields. An exchange rate service can fetch rates automatically, but Learn stresses that it does not adjust entries that are already posted. Only the batch job does that.
The accounts for gains and losses are specified on the Currencies page. Customers and vendors use the fields for unrealised gains and losses, while Learn describes that bank accounts use the fields for realised gains and losses.
Check that each currency has a rate that applies on the adjustment date, and that the rate is entered in the right direction. This is a classic source of large, wrong gains and losses, so use the preview to catch errors before you post.
What gets adjusted
The job processes open entries and creates new detailed entries where the rate gives a difference:
The job asks for a start date and an end date, and the end date is typically the same as the posting date. Entries dated after the end date are not adjusted by it.
- Customer and vendor entries: differences are posted to the gain and loss accounts, with balancing entries on receivables and payables.
- Bank accounts with a currency code: the job calculates one entry per currency per posting group and posts balancing entries on the bank account in the bank posting group.
- General ledger entries: if you use an additional reporting currency, the job can create entries according to the setting on the individual general ledger account.
Dimensions and preview
The Dimension Posting field controls which dimensions the unrealised entries get: from the source entry, none, or from the general ledger account. See also the article on dimensions. Learn warns that accounts included in the job should not have Code Mandatory or Same Code as a default dimension, because the job cannot use dimension codes.
Use Preview Posting on the Exch. Rates Adjustment report before you post. You can get a detailed preview per entry or a summary per currency by choosing Adjust per entry.
Correct errors and run again
If you make a payment invalid by unapplying and reversing it, reversal entries for the adjustment are also posted. This may mean you have to run the adjustment again to get the right balance. Use Reverse transaction on bank, customer or vendor entries.
If you have run the job with wrong rates, correct the rates and run again. Review the new entries and reconcile the currency accounts afterwards.
Rhythm and rules
Run the adjustment as a fixed part of the month-end close, after all documents are posted and rates are updated. How often you need to adjust, and how gains and losses are to be treated for accounting and tax purposes, depends on your local rules and your own practice. Confirm it with your accountant.
Short, concrete e-mails about what customers most often ask us. We write when we have something worth reading.