Solavel Docs

Base currency adjustments

Last updated

A base currency adjustment revalues your open foreign-currency balances at a new exchange rate and posts the difference as an unrealized exchange gain or loss. Use it at month-end or year-end so that your balance sheet shows foreign receivables, payables and bank balances at the closing rate.

Where to find it

  • Journal Entries → Entries → Base Currency Adjustments (/base-currency-adjustments)
  • From the Reports catalog, the Unrealized Gain or Loss tile (category Currency) opens this same list. There is no separate unrealized report.

This needs both Multi-currency and the Base currency adjustments feature to be enabled.

Important: the rate direction is inverted on this form

On this form, rates are entered as 1 foreign unit = x base units, for example 1 USD = 3.6725 AED.

This is the opposite of the Exchange Rates page and the document rate widget, which use 1 AED = 0.2723 USD.

Screen Direction USD example
Settings → Exchange Rates, invoice/bill rate 1 base = x foreign 0.2723
Base currency adjustment form 1 foreign = x base 3.6725

The Old Rate is filled in for you by inverting the stored rate (1 ÷ 0.2723 = 3.6724). Enter the New Rate in the same direction. If you type 0.27 here, by mistake, every USD balance is revalued to almost zero.

The list

The subtitle is "Unrealized FX gain/loss revaluation journals".

  • Filters: status (All statuses, Draft, Posted or Void), currency (All currencies), and date from/to.
  • Columns: Date, Currency, Old Rate, New Rate, Status and the total gain or loss. For a draft the total comes from the preview; once posted, it comes from the posted entry.
  • Click New Adjustment (top-right) to start. If there are none, you see "No base currency adjustments found."

Create an adjustment

  1. Click New Adjustment. The form is headed New Base Currency Adjustment ("Draft an unrealized FX revaluation adjustment").
  2. Fill in the fields:
Field Required Notes
Adjustment Date Yes The revaluation date, normally the period end. It must be in an open accounting period.
Rate Date (optional) No Which stored rate to use to fill in the Old Rate
Currency Yes Enabled foreign currencies only. The base currency is shown as "(locked)". If none are enabled, you see "No foreign currencies enabled".
Old Rate Yes, > 0 "Auto-filled from rates table when available." Otherwise you see "No saved rate found for this date. Enter old rate manually." In the 1 foreign = x base direction.
New Rate Yes, > 0 The closing rate, in the 1 foreign = x base direction
Gain/Loss Account Yes An active, postable revenue or expense account. It defaults to an account named "foreign exchange" or "forex", usually 4305 or 6805, or an unrealized gain/loss account if you have created one.
Notes No "Optional context for this adjustment..."
  1. Click one of:
    • Save Draft: "Base currency adjustment draft created."
    • Save & Post: "Base currency adjustment created and posted."

What gets revalued

For the chosen currency, as of the adjustment date, SolaCount revalues:

  • Open customer invoices (AR) and open supplier bills (AP) that are not draft, void, cancelled or reversed. Only the open amount counts: the total less posted payments and credit or debit note allocations.
  • Bank and cash accounts that hold balances in that currency.

For each item:

  • Base @ New is the open foreign amount × the new rate.
  • Base @ Old is the current carrying amount: the original base amount, or the result of the last revaluation if there was one.
  • The difference is Base @ New − Base @ Old.

Review the preview

The adjustment's page ("Review, post, or void unrealized FX revaluation") shows:

  • Computed Revaluation Preview, with columns Account, Source (AR, AP or Bank/Cash), Foreign Amount, Base @ Old, Base @ New and Diff, plus a Total Diff. If nothing changes, you see "No open foreign balances produced a revaluation difference."
  • Posted Journal Preview: the entry that will be posted.
  • Reversal Journal (Void): the entry that voiding would post.

Post

Click Post and confirm "Post this base currency adjustment?". You see "Base currency adjustment posted successfully."

The journal entry posted has these details:

  • Reference FX-ADJ-{id}, source FX_ADJUSTMENT.
  • Memo "Unrealized FX revaluation for USD (old -> new)".
  • All lines in base currency.
Line Value goes up Value goes down
Accounts Receivable or Bank/Cash ("FX revaluation (AR/Bank/Cash)") Dr Cr
Accounts Payable ("FX revaluation (AP)") Cr (the liability grows, a loss) Dr (a gain)
Gain/Loss Account, net ("Unrealized FX gain/loss") Cr if the net is a gain Dr if the net is a loss

Worked example: month-end USD revaluation

Al Noor Trading LLC (base AED) has two open USD items at 30 September 2026:

  • An invoice of USD 1,000, booked at 1 AED = 0.2723 USD → AED 3,672.42
  • A supplier bill of USD 400, booked at the same rate → AED 1,468.97

The closing rate is 1 USD = 3.7000 AED.

  1. Click New Adjustment. Set the Adjustment Date to 30-09-2026 and the Currency to USD.
  2. The Old Rate fills in as 3.6724 (that is, 1 ÷ 0.2723). Enter the New Rate as 3.7000.
  3. Leave the Gain/Loss Account at 4305 or choose your unrealized FX account. Click Save Draft.

Preview:

Source Foreign Base @ Old Base @ New Diff
AR 1,000.00 3,672.42 3,700.00 +27.58
AP 400.00 1,468.97 1,480.00 +11.03 (the liability grows)

Net = 27.58 − 11.03 = 16.55 gain.

Posted entry (FX-ADJ):

Account Debit (AED) Credit (AED)
Accounts Receivable 27.58
Accounts Payable 11.03
Unrealized FX gain/loss account 16.55

Later settlement: on 5 October the customer pays USD 1,000 worth AED 3,703.70. The realized gain is measured from the revalued AED 3,700.00, so only 3.70 is posted to 4305, not 31.28. See Multi-currency.

Next period: no automatic reversal

SolaCount does not reverse a revaluation automatically on the first day of the next period. The revalued amount carries forward:

  • The next month's adjustment starts from it (the Old Rate is the previous revaluation's rate).
  • Payments realize gains and losses against it.
  • The aging reports show it.

Void an adjustment

  1. Open a posted adjustment and click Void.
  2. Confirm "Void this adjustment and post a reversal journal?".
  3. A reversing entry is posted, dated the later of today and the adjustment date. You see "Base currency adjustment voided with reversal journal."

Voiding is blocked when later FX activity depends on the adjustment: "Later posted FX activity depends on this revaluation. Reverse that activity first." Other void errors are:

  • "Only posted adjustments can be voided."
  • "This adjustment is already void."
  • "This adjustment already has a reversal entry."

A voided adjustment cannot be posted again ("Voided adjustments cannot be posted again."). Create a new adjustment instead.

Other messages

Message Meaning
No unrealized FX difference was detected for the selected date/rates. Nothing to post
Both old and new rates must be greater than zero. Enter both rates
A later FX closing is already posted. Reverse it before posting a backdated revaluation. Revaluations must go in date order
Base currency is locked and cannot be selected for revaluation. You cannot revalue the base currency
Selected currency is inactive or not enabled for this organization. Enable it under Currencies
AP control account is not configured. Set it in Finance Settings > Account Defaults. Set up account defaults first
This adjustment has already been posted. It was posted already

Lock-date and closed-period rules apply as for any posting (see Fiscal years & lock dates).

Permissions and approvals

Action Permission
View fx_adjustments.view
Create fx_adjustments.create
Post fx_adjustments.post
Void fx_adjustments.void

If approvals are on for posting or voiding base currency adjustments, these actions are submitted for approval first. See Workflow approvals.

Tips

  • Store the month-end rate on the Exchange Rates page first, so the next revaluation's Old Rate fills in correctly.
  • Use a dedicated "Unrealized FX gain/loss" account if you want unrealized amounts kept apart from realized 4305/6805. Do not name it "Unrealized … gain", or its lines will also appear in the Realized Gain / Loss report.
  • Double-check the rate direction before posting: on this form USD is about 3.67, not 0.27.

Related