Thursday, February 20, 2014

Foreign Currency Revaluation

The foreign currency revaluation periodic function is used to recalculate currency amounts based on a new exchange rate. At the time of the transaction, the system uses the spot rate setup in the currency exchange rate table. At month end, the currency amounts should be reevaluated based on the month end rate (for BS accounts) or the monthly average rate (for P&L accounts).

Also, if your company is setup with a reporting currency, this function must be used to recalculate correctly the reporting currency amounts. One example is to reevaluate the open balances with the correct exchange rate (see previous post on this blog to understand why the open balances are not properly translated).

Before the function can be executed, the exchange gain/loss accounts must be setup. Ensure those accounts are setup properly before executing the function otherwise the adjustments will be posted to the same account as the original transaction. This will not adjust the balance of your trial balance and also the adjustments will not be updated if the setup is changed after the fact, you would have to do a manual reclass. There are two areas to setup those accounts:

- General Ledger > Setup > Ledger: this setup is company wide and not specific to a currency. Specify the realized gain and loss accounts for transactions that are fully settled and setup the unrealized gain and loss accounts for transactions that are open (invoices not paid for example).

- General Ledger > Setup > Currency > Currency revaluation accounts. First select the currency you want to setup the accounts for, this will override the setup on the ledger form (see above).

The next step is to setup the exchange rate that the function will use to reevaluate. By default, the rate used is the one setup in the table selected on the ledger form. For BS accounts, it will use the last rate setup for the period so nothing should be changed, however for P&L we need to calculate the average of the period.

You will need to calculate your average off system and manually add it to the currency exchange rates type table found under General Ledger > Setup > Currency > Currency exchange rates. 
Create a new exchange rate type to make sure the spot rates are not overridden and manually add the rate for the period and the currency in that new exchange rate type.

The last step is to setup the number sequence that the system will use to post the adjustments entries. This is important for audit purpose since those transactions are system generated.
Go to General Ledger > Setup > General ledger parameters > Number Sequences and select the Foreign currency revaluation number sequence. I used "GL-FCR-" as a prefix so I can easily identify those transactions on the account.

Once the setup is completed you can then execute the revaluation. The function is located under General Ledger > Periodic > Foreign currency revaluation:
   - The function can be executed either for a specific account or for the entire chart of account. You will want to select a single account when you reevaluate bank accounts for example, this will prevent foreign transactions posted to other accounts to be reevaluated.
However, if you want to reevaluate the reporting currency, you can select the entire chart of account (select the first account of your COA in the from main account and the last account of your COA in the To main account field).
   - The from and to dates are used to only reevaluate transactions that have been posted in that period.
   - The currency code will be the currency you want to reevaluate. For bank account it would be the currency of the original transaction posted as opposed to reporting currency would be the reporting currency setup on the company and not the currency of the transaction.
   - Select which account type you want to reevaluate BS or P&L. This is an extra filter if you enter a range of accounts in the from and to main account but only want to reevaluate the P&L accounts for example. If you want to reevaluate the entire COA then you will check both check boxes.

Before you click Ok make sure the correct exchange rate type is selected on the ledger form so the correct exchange rate will be used. Also, keep in mind that if you modify the default exchange rate type on the ledger form, it will impact the rest of your business if they post transactions, so you might need to run this reevaluation outside of business hours to prevent errors.

Once the function has been executed, you can verify the posted transactions in the account being reevaluated and in the account setup for exchange gain/loss. The voucher of those transactions will be based on the setup of your number sequence previously done.

I hope this will help you and if you have any questions please do not hesitate :)