General Ledger - Process Unrealized FX Gain/Loss
Pgm: GLACCRUFX – Accrue Unrealized FX Gain/Loss; standard Treeview path: General Ledger > Utilities > Process Unrealized FX Gain/Losses
This utility is used to identify all open Accounts Payable vouchers and Accounts Receivable invoices with the transaction currency being different from the company currency, calculate the currency gain/loss on the outstanding amounts, and post as General Ledger accrual/non-accrual transactions. When the ‘Recognize FX Gain/Loss’ checkbox is checked, then non-accrual transactions are created, and when unchecked accrual transactions are created. This screen is also used to print an edit list and posting reports of unrealized FX gain/loss transactions.
Note: To use this utility, the 'Allow to recognize Unrealized FX Gain/Loss' checkbox must be checked at the company level in the [Company Detail] button's pop-up window, which is located on the Maintain Companies screen. For more information, please refer to the Accounting Details section in General Ledger - Maintain Companies.
Users must have the following control accounts set for this purpose.
-
AP Control > Accounting > Unrealized FX Gain/Loss Account
-
AR Control > Accounting > Unrealized FX Gain/Loss Account
The process train for the Process Unrealized FX Gain/Loss screen has the following standard CMiC nodes:
-
Create Transactions
-
Print Edit List
-
Post Transactions
Users must perform this as a month end (end of General Ledger period) task only. Also, this must be performed only once, to avoid the risk of accruals posted multiple times.
The generated transactions will be posted as non-accrual transactions when the ‘Recognize FX Gain/Loss’ checkbox is checked, and as accrual transactions (‘Accrual’ box is checked) when the ‘Recognize FX Gain/Loss’ checkbox is unchecked.
Accrual reversals can be performed either manually or automatically by setting the drop-down menu in the Auto-Reverse Accrual field to “Enable” in the GL Control File screen (standard Treeview path: General Ledger > Setup > Local Tables > Control File Options).
The postings will be one set of General Ledger entries for Accounts Payable gain/loss and another set for Accounts Receivable gain/loss for each currency with open vouchers/invoices.
The General Ledger transaction postings are summed up amounts per currency.
The unrealized FX gain/loss accruals will be posted in General Ledger, to the Accounts Payable/Accounts Receivable control currency gain/loss accounts. The posting will be exactly as the actual posting of currency gain/loss would take place. The newly created accounts will be used as off-set accounts for these transactions.
Pgm: APCTRLFM - AP Control File; standard Treeview path: Accounts Payable > Setup > Local Tables > Control File Options – Accounting tab
Pgm: ARCTRLFM – Maintain AR Control Settings; standard Treeview path: Accounts Receivable > Setup > Local Tables > Control File Options – Accounting tab
Non-Accrual Reversal:
Pgm: GLACCRUFX - Accrue Unrealized FX Gain/Losses; standard Treeview path: General Ledger > Utilities > Process Unrealized FX Gain/Losses
An important element of recognizing unrealized FX Gain/Loss is that every time it is recognized, we can only recognize a gain or loss that occurred since previous recognition or invoice entry, whichever comes last.
In order to identify when the previous recognition was and how gain/loss changed since then, the system needs to store currency conversion rates used in previous recognition in the History Table.
Company CAN1, Currency CAD
1 invoice was entered in March of 2020:
Date | Item | Amount | Currency | FX Rate |
---|---|---|---|---|
5-Mar-20 |
AP Invoice 1 |
1,000.00 |
USD |
1.35 |
At the end of March (Fiscal year 2020, fiscal period 3) currency conversion factor was as follows:
From Currency | To Currency | FX Rate |
---|---|---|
USD |
CAD |
1.38 |
Unrealized FX Gain/Loss was recognized at the end of March. Amount of gain or loss was determined using the following rule:
FX Gain/Loss = (Outstanding Invoice Amount) * (Current Conversion Rate – Invoice Conversion Rate)
For USD AP Invoice 1 FX Gain/Loss was equal to 1,000.00*(1.38 – 1.35) = 30.00 CAD.
Distribution of this transaction was recorded as:
AP FX Gain/Loss |
30.00 |
|
CAD |
AP Realized FX Gain/Loss |
|
30.00 |
CAD |
Pgm: GLPOST – Post Transactions; standard Treeview path: General Ledger > Utilities > Process Unrealized FX Gain/Losses – Post Transactions node
At the time of posting of these transactions, current conversion rates used in calculations were stored in History log:
Company | Year | Period | From Currency | To Currency | FX Rate | Rate Date |
---|---|---|---|---|---|---|
CAN1 |
2020 |
3.00 |
USD |
CAD |
1.38 |
31-Mar-20 |
Rate date is always recorded as the last date of the GL period.
By the end of April, 2020 outstanding amount in AP was:
Date | Item | Amount | Currency | FX Rate |
---|---|---|---|---|
5-Mar-20 |
AP Invoice 1 |
1,000.00 |
USD |
1.35 |
At the end of April, 2020 (Fiscal year 2020, fiscal period 4) currency conversion factors were as follows:
From Currency | To Currency | FX Rate |
---|---|---|
USD |
CAD |
1.36 |
Unrealized FX Gain/Loss was recognized at the end of April. Since FX Gain/Loss was already recognized previously, we need to start using historical rates recorded at that time. If the invoice date is prior to the historical rate date, then we can only recognize gain/loss relevant to that historical rate. If, however, the invoice date is after the historical rate date, then we need to recognize loss relevant to the invoice rate. In our example, historical rates were recorded as of March 31 2020. This rule can be formulated as follows:
FX Gain/Loss = (Outstanding Invoice Amount) * (Current Conversion Rate – Starting Rate)
Where Starting Rate = latest of (Historical Rate or Invoice Rate)
If Historical Rate does not exist, then Starting Rate = Invoice Rate.
Applying the rule to each invoice, still outstanding in April, we determine the starting rate:
Date | Item | Curr | Relation to Rate Date | Starting Rate | FX Rate |
---|---|---|---|---|---|
5-Mar-20 |
AP Invoice 1 |
USD |
Before |
Historical |
1.38 |
For USD AP Invoice 1 FX Gain/Loss is equal to 1,000.00 * (1.36 – 1.38) = -20.00 CAD
Distribution, related to USD invoices:
AP FX Gain/Loss |
|
20.00 |
CAD |
AP Realized FX Gain/Loss |
20.00 |
|
CAD |
Again, when this transaction is posted, currency conversion rates need to be recorded in History Log:
Company | Year | Period | From Currency | To Currency | FX Rate | Rate Date |
---|---|---|---|---|---|---|
CAN1 |
2020 |
4 |
USD |
CAD |
1.36 |
30-APR-20 |
Accrual Reversal:
Pgm: GLACCRUFX - Accrue Unrealized FX Gain/Losses; standard Treeview path: General Ledger > Utilities > Process Unrealized FX Gain/Losses
For Accrual Reversal unrealized FX Gain/Loss transaction, user should uncheck the checkbox “Recognize FX Gain/Loss”.
The same Formula is used here as well, as explained above in the Non-Accrual Section.
Pgm: GLACCRUFX - Accrue Unrealized FX Gain/Losses; standard Treeview path: General Ledger > Utilities > Accrue Unrealized FX Gain/Losses
AP / AR Voucher/Invoice Posting
Comp |
Business Partner Type |
BP Code |
Curr |
Invoice# |
AP/AR Invoice Posting |
Amount |
Currency Conversion |
Exchange Rate |
---|---|---|---|---|---|---|---|---|
ZZ |
Vendor |
BP7777 |
CAD |
BP7777-11 |
January 1, 2020 |
10000.00 |
CAD to USD |
0.7702278 |
ZZ |
Vendor |
BP7777 |
CAD |
BP7777-12 |
January 1, 2020 |
18000.00 |
CAD to USD |
0.7702278 |
ZZ |
Vendor |
LENOVO |
MXN |
LENOVO-11 |
January 1, 2020 |
25000.00 |
MXN to USD |
0.0528036 |
ZZ |
Vendor |
LENOVO |
MXN |
LENOVO-12 |
January 1, 2020 |
20000.00 |
MXN to USD |
0.0528036 |
ZZ |
Customer |
CANCOM |
CAD |
AR000016 |
January 1, 2020 |
45000.00 |
CAD to USD |
0.7702278 |
ZZ |
Customer |
CANCOM |
CAD |
AR000017 |
January 1, 2020 |
32000.00 |
CAD to USD |
0.7702278 |
ZZ |
Customer |
ZZ-EANDL |
MXN |
AR000018 |
January 1, 2020 |
70000.00 |
MXN to USD |
0.0528036 |
ZZ |
Customer |
ZZ-EANDL |
MXN |
AR000019 |
January 1, 2020 |
55000.00 |
MXN to USD |
0.0528036 |
Outstanding AP Vouchers /AR Invoices:
Comp | Business Partner Type | BP Code | Curr | Invoice# | AP/AR FX Gain/Loss Accrual as of | Vou/Inv Outstanding Amount | Currency Conversion | Exchange Rate |
---|---|---|---|---|---|---|---|---|
ZZ |
Vendor |
BP7777 |
CAD |
BP7777-11 |
March 31, 2020 |
5000.00 |
CAD to USD |
0.7461807 |
ZZ |
Vendor |
BP7777 |
CAD |
BP7777-12 |
March 31, 2020 |
10000.00 |
CAD to USD |
0.7461807 |
ZZ |
Vendor |
LENOVO |
MXN |
LENOVO-11 |
March 31, 2020 |
10000.00 |
MXN to USD |
0.0509681 |
ZZ |
Vendor |
LENOVO |
MXN |
LENOVO-12 |
March 31, 2020 |
12000.00 |
MXN to USD |
0.0509681 |
ZZ |
Customer |
CANCOM |
CAD |
CANCOM-11 |
March 31, 2020 |
10000.00 |
CAD to USD |
0.7461807 |
ZZ |
Customer |
CANCOM |
CAD |
CANCOM-12 |
March 31, 2020 |
16000.00 |
CAD to USD |
0.7461807 |
ZZ |
Customer |
ZZ-EANDL |
MXN |
EANDL-11 |
March 31, 2020 |
40000.00 |
MXN to USD |
0.0509681 |
ZZ |
Customer |
ZZ-EANDL |
MXN |
EANDL-12 |
March 31, 2020 |
25000.00 |
MXN to USD |
0.0509681 |
Pgm: GLPOST – Post Transactions; standard Treeview path: General Ledger > Utilities > Accrue Unrealized FX Gain/Losses – Post Transactions node
Company | Department | Account | Account Name | Dr | Cr | Source | Currency |
---|---|---|---|---|---|---|---|
ZZ |
00 |
5000.105 |
AP/AR Currency Gain/Loss |
|
360.71 |
AP |
CAD/USD |
ZZ |
00 |
5000.105 |
AP/AR Currency Gain/Loss |
625.22 |
|
AR |
CAD/USD |
ZZ |
00 |
5000.115 |
FX Currency Gain/Loss Accrual |
360.71 |
|
AP |
CAD/USD |
ZZ |
00 |
5000.125 |
FX Currency Gain/Loss Accrual |
|
625.22 |
AR |
CAD/USD |
Company | Department | Account | Account Name | Dr | Cr | Source | Currency |
---|---|---|---|---|---|---|---|
ZZ |
00 |
5000.105 |
AP/AR Currency Gain/Loss |
|
40.38 |
AP |
MXN/USD |
ZZ |
00 |
5000.105 |
AP/AR Currency Gain/Loss |
119.31 |
|
AR |
MXN/USD |
ZZ |
00 |
5000.115 |
FX Currency Gain/Loss Accrual |
40.38 |
|
AP |
MXN/USD |
ZZ |
00 |
5000.125 |
FX Currency Gain/Loss Accrual |
|
119.31 |
AR |
MXN/USD |