Skip to main content
Currency Revaluation is a period-end accounting process that adjusts the carrying value of open foreign currency balances to reflect current exchange rates. Any company that transacts in a currency other than its Base Currency accumulates open balances (unpaid invoices, unpaid bills, unapplied credits, and non-base bank accounts) that were recorded at a historical rate. At period end, those balances need to reflect the current rate. DualEntry calculates the difference, posts it as an unrealized gain or loss to the GL, and automatically reverses the entry the following day so the adjustment is never double-counted.

Key concepts

Base currency and transaction currency

Every company in DualEntry has a Base Currency, which is the company’s primary or functional currency. When a transaction is recorded in a different currency (for example, a USD-based company receiving a bill in EUR), that currency is the Transaction Currency. DualEntry stores both the transaction currency amount and the base currency equivalent using the exchange rate in effect on the transaction date.

Unrealized vs. realized gains and losses

An unrealized gain or loss arises when an open balance changes value due to exchange rate movement before any cash has been exchanged. It is unrealized because the transaction has not settled. A realized gain or loss is recorded at the time of payment or application, when the actual exchange rate at settlement is compared to the original transaction rate. Currency Revaluation deals exclusively with unrealized gains and losses.

Auto-reversal

Each Currency Revaluation journal entry is automatically reversed on the following calendar day. A revaluation posted for July 31, 2024 is reversed on August 1, 2024. This ensures no single revaluation entry accumulates across multiple periods. Once reversed, neither the revaluation entry nor its reversal appears in Aging Reports. The next revaluation recalculates from scratch using current open balances and the latest exchange rate.

Which accounts are revalued

Only Balance Sheet accounts denominated in a non-base currency are eligible for revaluation. DualEntry automatically selects all accounts of the following types: Bank, Accounts Receivable, Other Current Asset, Fixed Asset, Unbilled Receivable, Deferred Expense, Other Asset, Investments, Accounts Payable, Credit Card, Deferred Revenue, Other Current Liability, Long Term Liability, and Equity. Income statement accounts are not revalued.

How the calculation works

DualEntry calculates a gain or loss for every open balance in a non-base currency by comparing what that balance is worth at the original transaction rate to what it is worth at the period-end rate.
Example, Accounts Receivable (foreign currency strengthens): A company with USD as its Base Currency has an open invoice for 10,000 EUR. The invoice was recorded at a EUR:USD rate of 1.2141, making the base balance 12,141.00 USD. At July month-end the rate is 1.3141, making the base balance 13,141.00 USD. The gain is 1,000.00 USD. DualEntry debits AR 1,000.00 and credits Unrealized Gain/Loss 1,000.00. Example, Accounts Payable (foreign currency strengthens): Using the same rates, a 10,000 EUR open bill now costs more in USD terms. The liability increased by 1,000.00 USD. DualEntry debits Unrealized Gain/Loss 1,000.00 and credits AP 1,000.00. When the foreign currency weakens (ending rate is lower than the transaction rate), the entries reverse: assets are credited and the Unrealized Gain/Loss account is debited, while liabilities are debited and Unrealized Gain/Loss is credited.

GL impact

The Unrealized Gain/Loss account is a system-managed account that captures the net revaluation impact for the period. It resets to zero when the reversal posts the following day. Currency Revaluation entries appear on Financial Statements and Reports and in the Accounts Receivable and Accounts Payable Aging Reports as posted transactions.

Automation and triggers

Monthly engine

DualEntry runs Currency Revaluation automatically on the 1st calendar day of each month, targeting the last day of the previous month. The process runs on August 1, 2024 and posts the revaluation entry dated July 31, 2024, with a reversal on August 1, 2024. DualEntry sources exchange rates from Currencyapi and always uses the previous calendar day’s rate. DualEntry does not fall back to an older rate if the prior day’s rate is not yet published, preventing duplicate or misaligned revaluations.

On-demand and intra-period revaluation

You can run Currency Revaluation on demand for any past or present date, not just month-end. This supports scenarios such as revaluing mid-period before generating intra-period reports or preparing for a partial close. If you create or edit a foreign currency transaction dated on or before the revaluation date after the monthly run completes, re-run the revaluation to reflect the updated open balances.

Period locking

Before you lock a period, re-run the revaluation to ensure all open balances are current. This applies per Balance Sheet section. If Accounts Receivable is locked but Accounts Payable is not, users may still create or edit AP transactions, and the AP revaluation must be current before that section can be locked.

Recurring revaluations

You can configure a recurring Currency Revaluation schedule so the process runs automatically without manual intervention each period. The recurring form uses the same required fields as a manual revaluation.

Run a currency revaluation

  1. Navigate to Currency Revaluation in DualEntry.
  2. Select New Currency Revaluation.
  3. Select the Month and Year for the revaluation. The entry posts to the last day of that month. The date must be past or present.
  4. Select the Company. The Base Currency field populates automatically based on the selected company.
  5. Optionally enter a Memo to describe the purpose of this revaluation (max 512 characters).
  6. Select Calculate. DualEntry populates the Account List with all eligible Balance Sheet accounts and computes the revaluation impact across three tabs.
  7. Review the Account List Selection tab. Each row shows the GL account, account type, and currency. The To Revalue toggle is checked by default. Uncheck any account you want to exclude from this run. Use Mark All or Unmark All to include or exclude all accounts at once.
  8. Review the Open Receivables, Open Payables, and Other Accounts tabs to verify the gain or loss amounts before posting.
  9. Review the GL Impact tab to see the final journal entry.
  10. Select Post to record the revaluation. DualEntry creates the reversal entry automatically and posts it the following day.
Each revaluation is assigned a unique system-generated identifier in the format FXR-XXXXXX (for example, FXR-330487). This number is read-only and cannot be edited.

Calculation tabs

Open Receivables tab shows the revaluation detail for all unpaid Accounts Receivable records, including Invoices and Customer Credits. Each row shows the Record Number, Record Type, transaction Date, Customer, Transaction Currency, Record Exchange Rate (the rate on the original transaction date), Ending Exchange Rate (the period-end rate), the unpaid Balance in FX, the Base Balance at Transaction Rate, the Base Balance at Ending Rate, and the resulting Gain or Loss. Open Payables tab uses the same structure as Open Receivables but covers unpaid Accounts Payable records including Bills and Vendor Credits. Other Accounts tab covers all other eligible Balance Sheet accounts such as Bank, Deferred Revenue, and Equity accounts. DualEntry aggregates all transactions for each Account and Currency combination. An account that holds balances in multiple non-base currencies appears as one row per currency. Rows where the FX balance is zero are excluded.

Add currency revaluation to your close checklist

Currency Revaluation is commonly added as a task in the period-end close checklist so it appears in the standard workflow.
  1. Navigate to Checklists in DualEntry.
  2. Select New task in the checklist you want to add it to.
  3. In the task panel, select the Type dropdown (defaults to “Task”).
  4. Select Currency Revaluation. The form adjusts to reflect the selected type.
  5. Enter a name for the task in the Task name field, for example “Run Month-End Revaluation.”
  6. Select Create. The task is added to the checklist immediately and can be assigned and scheduled like any other close task.

FX gain and loss by record type

The table below shows which record types are subject to each category of FX gain or loss. Currency Revaluation contributes Unrealized Gain/Loss for records that carry an open or unpaid balance in a non-base currency.

Known behaviors and edge cases

Bank Match exclusion. Currency Revaluation journal entries are non-cash adjustments. They do not correspond to actual bank transactions and are excluded from Bank Match by design. Including revaluation lines in Bank Match would create noise and risk incorrect matching against real bank activity. Exchange rate timing. Currencyapi publishes rates at midnight UTC. If the automatic revaluation process runs very close to midnight and the prior day’s rate is not yet available, DualEntry does not fall back to an older rate. This prevents two consecutive revaluations from using the same rate, which would create a duplicate gain or loss entry. Payment posted after revaluation. If you record a payment for a transaction dated on or before the revaluation date after running the revaluation, re-run the revaluation. The payment changes the open balance, which invalidates the previous calculation. Running revaluation before period close. You can process a revaluation for the current open period at any point during the month. The entry posts to the date you select, and must be re-run if balances change before the period is locked. Intercompany balances. When a revaluation involves intercompany transactions, the gain or loss from the parent company perspective may differ from the subsidiary perspective, and elimination entries may also require revaluation. This scenario requires special handling and is tracked for future development. Draft workflow. You can save a Currency Revaluation as a draft before posting. Drafts do not affect Aging Reports or Financial Statements. A drafted revaluation can be recovered from the Archived filter. The record is not posted to the GL until you select Post.
If a revaluation entry is posted and you subsequently edit a transaction that falls within the revaluation period, the posted revaluation no longer reflects the current open balances. Re-run the revaluation before locking the period.
Last modified on August 27, 2026