Description

SoftLedger is a multi currency system that can create transactions in all fiat currencies and convert them to the reporting currency of your Locations. SoftLedger uses a foreign currency rate provider to bring in all daily currency pair values. At the end of each month, you can choose to provide a different rate for currency pairs when closing the Forex Accounting Period. This action will create month end reversing entries that can set balances to be converted based on the inputs entered into the Forex Task at the close of a monthly accounting period. See the full process below.


How does it work?

Step 1: Determine which Ledger Accounts need to be revalued

The system will check to determine which Ledger Account balances are to be revalued at month end when closing the Forex Task in the Accounting Periods module with the following criteria:


  1. Ledger Account setting for “revalue_fx” = true
  2. Ledger Account has Posted Journals booked in a currency that is different than its Location's, or any of it's parent Locations, reporting currency
  3. Ledger Account has Posted Journals with “posted_date” less than or equal to this Accounting Period's end date (e.g. Journals prior to the close of any period, such as January 31st, 2022)


Step 2: Calculate what each currency balance should be

Once it is known which Ledger Accounts need to be revalued, the system replaces the transaction rate used at time of transaction with the inputted forex revaluation rate at month end to determine what each posted currency balance should be. The process:

  1. Recognize the balance for each posted currency used for the Ledger Account in each Location from the existing transaction rate used for all Journal Entries.
  2. Record what the balance for each Ledger Account in each Location would be if the user inputted revaluation rate had been used instead of the original transaction forex rate.
  3. Calculate the difference between existing balance and the newly calculated revaluation balance and sum up in each Location for all Ledger Accounts marked to revalue to know what values will be entered in the Journal Entries in the next as a gain or loss.

Step 3: Create reversing Journal Entries between existing and new revaluation balance

Once the delta between existing balance and new revaluation balance is known, the system will book Journal Entries with the Ledger Account being revalued, and the Forex Gain/Loss Account stored for the Location. If there is a gain from the forex fluctuation, the forex account will be used on the credit side, and if there is a loss, then the forex account will be used on the debit side.


These entries are booked for the last day of the month for the accounting period being revalued (e.g January 31st for a January close) and then reverse on the following day (e.g. February 1st). See the example forex revaluation article to get an idea of what this looks like.


Step 4: Repeat the above process for each Ledger Account balance in each Location

This process is started at the lowest level Location and then works its way up to parent Locations, all the way up until the Global Location.

Note: If using Forex Revaluation, Ledger Accounts set to revalue should be set to the Global Location with access to Child Locations, since this account needs to be accessed by all Locations up the tree to enter the Forex Revaluation reversing entries. This process will also create reversing Journals in the Global level Location so balances are in accordance with the user inputted forex revaluation rates all the way up to the most Global consolidated level.





The Full Process for Forex Revaluation

Identify all Ledger Accounts to be revalued

The first step is to determine which Ledger Accounts are to be revalued. In general, this is any balance sheet account you expect to have a posted currency different than the reporting currency of your Locations.

Note: Only balance sheet accounts (Type: Asset, Liability, or Equity) can be revalued. Income statement accounts do not carry cumulative balances and therefore should not be revalued.

For any Ledger Accounts that need to be revalued at month end, ensure that Revalue Forex Rates is checked when creating or editing Ledger Accounts under Financial>Accounts:


Set the Forex Gain/Loss Account

Before closing the Forex module for any Accounting Period, be sure that you have the Forex Gain/Loss Account set under the Location details available under Financial>Locations for each Location. This is the account that will be used when calculating gain or loss from foreign currency fluctuations, and will be on the other side of the Ledger Accounts chosen to be revalued in the previous step

 


If you would like to use a different Forex Gain/Loss Account for each Location within SoftLedger, you can set a Ledger Account under the Location details in Financial>Locations.

Revalue Forex Rates

Under the Accounting Periods section, click the lock button icon under Forex, for the period you want to close. For any Locations with transactions booked in currencies that are different than the reporting currency for that Location, you have the option to set a new rate:

 



Once you add or accept your rates for all pairs, you then navigate to the Approve Re-Valuations tab in the same screen (as indicated below) and click "Post Revaluations and Close FX":



Once you click Save Rates and then Approve Re-Valuations, the following will happen (see the How it Works section above for more details):

  1. A Journal Entry will be recorded for any gains and losses resulting from the change from the original transaction rate
  2. The balance for any Ledger Accounts set to be revalued will be adjusted accordingly



Important Considerations

  • This is ONLY for Balance Sheet Type Ledger Accounts (Type: Asset, Liability, Equity)
  • Revaluation Entries are reversing, and should be done each monthly close
  • If you start revaluing a Ledger Account and want to stop, you would need to reopen previous accounting periods past the point of the first time a Ledger Account was revalued to reverse this process.