Foreign exchange (FX) revaluation adjusts your GL account balances to reflect current exchange rates. In Light, FX revaluation is a required step in the period-end close process and is run on a per-entity basis. This article also explains the wider currency framework it sits in: how Light stores currencies, sources rates, and translates balances for consolidation. For a short overview, see How Light handles FX.
What is this page about
This page covers how Light values foreign currency balances: the three currency tiers stored on every line, where rates come from, which accounts get re-translated at period-end, how to run the revaluation task, and how realized gains, unrealized gains and CTA differ. Read it before your first period-end close involving foreign currency.
On this page
- How Light handles foreign currency
- Understanding FX Revaluation
- Exchange Rate Sources and Governance
- How Rates Are Applied by Account Type
- What gets revalued
- Setting FX behavior per account
- Transaction-Level Conversion (at posting)
- Realized FX (at settlement)
- Unrealized FX: Period-End Revaluation
- Running FX Revaluation
- Reviewing Posted Revaluations
- Reopening or Reversing a Revaluation
- Multi-Entity Revaluation
- CTA (Cumulative Translation Adjustment)
- Consolidation (group level)
- Summary of Standards Alignment
- Best Practices
- Related Articles
How Light handles foreign currency
Light maintains a three-tier currency model on every ledger transaction line:
| Tier | What it is | Set at |
|---|---|---|
| Transaction currency | The currency a document was actually transacted in (e.g. a USD vendor bill). Present only when it differs from the local currency. | Per document |
| Local (functional) currency | The functional currency of the legal entity. | Per entity (cannot be changed after the entity is created) |
| Group (presentation) currency | The reporting currency used for consolidation. | Per company (group) |
Every posted line stores its local and group amounts, plus the transaction amount when the currency differs from the local currency. These amounts are fixed when the line posts, so you can always see the rate that was used.
Understanding FX Revaluation
FX revaluation addresses the mismatch between when a transaction is recorded and when it settles.
Example:
- You invoice an AR customer for 100,000 EUR on January 1 at a rate of 1.20 USD/EUR = 120,000 USD
- You post 120,000 USD to your receivable in the GL
- By January 31 (period-end), the rate has moved to 1.18 USD/EUR
- The receivable is now worth 118,000 USD at the new rate
- Unrealized loss: 120,000 - 118,000 = 2,000 USD
FX revaluation entries record this unrealized gain or loss and adjust GL balances to reflect current exchange rates at period-end.
Exchange Rate Sources and Governance
Light sources exchange rates from two providers:
- European Central Bank (ECB): the primary source, providing daily reference rates that are ingested automatically.
- ExchangeRate-API: a commercial provider used for currencies not published by the ECB, ensuring coverage for less common currencies.
How rates are stored and resolved:
- Rates are stored against EUR. Light works out the rate between two other currencies from their EUR rates, for example USD to GBP = USD to EUR ÷ GBP to EUR.
- Non-trading days. A request for a date with no published rate resolves to the most recent prior effective rate, so a Monday with no rate uses the preceding Friday.
Rate overrides
You can override system rates instead of using market rates:
-
Override scope and precedence. Overrides resolve in the order entity → company → system, and are available at daily or monthly granularity. A document-level rate override takes the highest precedence of all. You set a document-level override through Light's API rather than on a screen in the app, so for rates you manage yourself, use the entity or company overrides covered in the linked articles below.
-
Both currencies need a custom rate. If you set a custom rate for only one of the two currencies in a pair, Light ignores it and uses system rates for both. To be sure your custom rates apply everywhere, set a rate for every non-EUR currency you transact in, each month.
-
Period-end revaluation uses your overrides too. If you've configured a company- or entity-level override for a currency and month, period-end FX revaluation uses that rate for the covered currencies and months, so revaluation matches the rate you set, such as your bank's negotiated rate. Entity-level overrides take precedence over company-level ones. With no override set, revaluation uses the system rate.
For setting your own rates, see Setting a Custom FX Rate for Your Company, Setting a Custom FX Rate for Your Entity, and When Custom Rates Apply vs System Rates.
How Rates Are Applied by Account Type
The standard treatment for each account type is shown below. You set it per account with the FX settings described under Setting FX behavior per account.
| Account classification | Rate applied | Re-translated each period? |
|---|---|---|
| Asset, Liability | End-of-month (closing) rate | Yes, through period-end revaluation |
| Equity | Historical rate | No, held at the original posting rate |
| Revenue, Expense | Historical rate (transaction date) | No, held at the original posting rate |
Assets and liabilities are carried at the month-end rate. Equity, income and expenses stay at the rate on the day they were recorded. The difference this creates in the group currency is the cumulative translation adjustment (see below).
Note on income and expenses: Light translates income and expenses at the actual transaction-date (spot) rate of each item, not at a period-average rate. Under IAS 21 this is the preferred basis, since the standard requires the spot rate at the date of each transaction (IAS 21.21) and only permits a period-average rate as a practical approximation, which is inappropriate when rates fluctuate significantly (IAS 21.22; IAS 21.40 for translation to the presentation currency). Light applies the actual rate per item, so it is more precise than an average-rate method rather than a deviation from it. Auditors expecting average-rate P&L translation should note the difference in approach.
What gets revalued
Revaluation answers two questions: which balances are revalued, and which currency the difference is posted in. The first two sections below cover the balances. The last two cover the currencies.
Open items (AP / AR and accruals)
Open or partially-cleared payable and receivable documents, plus released accrual lines that are still open at period end. These are revalued per document or accrual line at the period-end closing rate, with a link back to the source invoice or line for traceability. Documents that were fully paid during the period are also included. This is how Light reverses the unrealized gain or loss it posted on them in earlier months. Until you run it, that amount stays on the AP or AR account even though the document is paid. See Why a paid invoice can still show a balance.
Monetary accounts (bank, cash, etc.)
Balance-sheet accounts you set to revalue, such as bank, cash and other monetary accounts. These are revalued per account and currency at the closing rate, based on the account's open foreign-currency balance.
Entity currency: unrealized FX gain or loss
Light values the open foreign-currency balance at the month-end rate in the entity's own (local) currency and posts the difference to the unrealized FX gain/loss account. This is the gain or loss that appears in the entity's own books. The Entity revaluation settings dropdown, described below, controls this per account.
Group currency: CTA
Light translates the local-currency balance into the group currency at the month-end rate and posts the difference to the CTA account. CTA lines have a zero local-currency amount, because they only change the group-currency balance. The Group revaluation settings dropdown controls this per account. An account set to Historical gets no CTA.
Setting FX behavior per account
Each ledger account has an FX settings section with two dropdowns that control how the account behaves at period-end. Set them when creating or editing an account in Accounting → Chart of accounts:
| Setting | Options | What it does |
|---|---|---|
| Entity revaluation settings | Do not revalue / Revalue | Revalue revalues the account's open foreign-currency balances into the entity's functional (local) currency at period-end, posting unrealized FX gain/loss. Do not revalue leaves the balance at its booked local amount. |
| Group revaluation settings | End of period / Historical | End of period carries the account at the closing (end-of-period) rate and generates CTA on the local→group difference. Historical keeps it at the original posting rate, so no CTA is posted. |
Light checks these settings when you save:
- P&L accounts can't be set to Revalue. This covers every revenue and expense account, including the FX gain, FX loss and FX unrealized default accounts.
- Accounts payable and accounts receivable always revalue. Setting either to Do not revalue is rejected on save.
- Equity and fixed-asset accounts start on Do not revalue. Their Group revaluation settings start on Historical for equity and End of period for fixed assets. The CTA account is an equity account.
To configure an account:
- Go to Accounting → Chart of accounts (open Chart of accounts)
- Click + Create account, or open an existing account and click Edit
- In the FX settings section, set Entity revaluation settings and Group revaluation settings
- Click Save
Typical settings by account type (these follow the account classification described above):
- Monetary assets & liabilities (AR, AP, bank, cash, intercompany): Entity revaluation settings = Revalue, Group revaluation settings = End of period, so they are revalued at the closing rate and translated to group with CTA.
- Equity: Do not revalue + Historical, held at the original rate, no CTA.
- Revenue & expense: Do not revalue + Historical, held at the transaction-date rate, no CTA.
Transaction-Level Conversion (at posting)
When a document is posted, Light fetches the rates effective on the posting date and computes the amounts for every line:
- transaction currency → local currency, and
- local currency → group currency.
These amounts are persisted on the line, and the source of each rate (system, company override, entity override, or document override) is recorded, so you can see which rate was applied to every posting.
Realized FX (at settlement)
Realized FX gains and losses are recognized when an open foreign-currency item (such as an AP or AR invoice) is cleared or settled. Light computes the difference between:
- the item's value at the original posting-date rate, and
- its value at the clearing-date rate,
and posts the difference to the system FX gain and FX loss accounts, recognized in profit or loss per IAS 21.28. If the local-to-group rate also moved, the group-only part goes to the CTA account. Small rounding differences from converting between the three currencies go to a rounding account.
Example (continuing the one above):
- On February 10 the customer pays 100,000 EUR, which converts at 1.19 to 119,000 USD
- The invoice was booked at 120,000 USD, so Light posts a realized loss of 1,000 USD
- January's unrealized loss of 2,000 USD stays on the AR account until you run the February revaluation, which reverses it
- Across the two months, the total loss is 1,000 USD
For the entries posted at payment, see Clearing, FX gain/loss, and CTA.
Unrealized FX: Period-End Revaluation
Period-end revaluation is run as a controlled accounting-period close task rather than an ad-hoc process. Each accounting period has a set of required tasks that must be completed before the period can be closed:
- Account Payables: close AP for the period
- Account Receivables: close AR for the period
- Journal Entries: close journal entries for the period
- FX revaluation: run and post FX revaluation entries
Controls and sequencing:
- The FX revaluation task can only run after the period's sub-ledger lock tasks (Account Payables, Account Receivables, Journal Entries) are completed. Otherwise Light shows "Lock tasks for accounting period are still not completed".
- If the period has an Intercompany documents task, it must be signed off first. Otherwise Light shows "Sign off intercompany documents before revaluing".
- The prior period's revaluation must already be completed (or not exist) for the entities you're revaluing, so months are revalued in order. Otherwise Light shows "Fx revaluation tasks in previous periods are still not completed".
Balances in the run
The run covers the open items and monetary accounts described under What gets revalued above: open AP/AR documents and accruals, plus any account whose Entity revaluation settings is Revalue. Each open balance is taken at the period-end closing rate, and for any account whose Group revaluation settings is End of period the local→group difference is posted to CTA.
How the adjustment is calculated
For each balance, Light revalues the open foreign-currency balance at the period-end closing rate and compares it to the amount currently on the books:
Revalued balance = open balance (original currency) × period-end rate
FX adjustment = Revalued balance − current carrying amount
How it posts
- FX accounting documents are created per entity, one for each group of balances that needs adjusting (Accounts Payable, Accounts Receivable, accruals, other revalued accounts, and CTA), dated at period end and posted immediately. They are never left in draft.
- The monetary account is adjusted to its revalued amount, and the offsetting entry is posted to the system unrealized FX gain/loss account, or to the CTA account for the local-to-group translation component.
- AP/AR and accrual revaluation lines carry a link back to their source document/line, supporting line-level traceability. Account-level revaluations (other monetary accounts and CTA) are posted per account and currency, without a document link.
Running the revaluation again posts only the difference from what's already booked, so each adjustment posts once. A posted revaluation document can be voided, which reverses it as a whole. The full history of revaluation documents is retained.
Running FX Revaluation
To run FX revaluation for a period:
-
Go to Accounting → Accounting periods in the sidebar (open Accounting periods)
-
Expand the relevant year and click on the period you want to close (e.g., May 2024)
-
On the Tasks page, find the FX revaluation row and choose how to run it:
- Click Run on the row to revalue every entity at once. If a ledger account in scope is disabled, Light asks you to confirm first. When it finishes, Light shows "Revaluations have been run".
- Or click the row itself to open the task drawer, tick the entities you want under Entities to close, and click Post revaluation.
The drawer has two sections:
- Entities to close: one checkbox per entity, with a select-all box in the header. The Last run column shows who last ran the revaluation for each entity, and when. Post revaluation becomes available once you tick at least one entity.
- Document revaluation: the revaluation documents already posted for this period. It reads "No revaluation has been posted" until the first run.
Both options post straight away, and the amounts first appear on the posted document. Find the documents in Accounting → Accounting documents by setting the Type filter to FX revaluation.
Reviewing Posted Revaluations
After posting, the revaluation documents appear in two places:
- The task drawer: go to Accounting → Accounting periods (open Accounting periods), open the period and click the FX revaluation row. The Document revaluation section lists the posted documents. Click one to open it.
- Accounting documents: go to Accounting → Accounting documents and set the Type filter to FX revaluation.
A revaluation document has two tabs:
- Overview: its Transaction Overview section lists each line with Account, Description, Original balance, Gain/loss and Original document. The lines are read-only.
- Log: when the document was created, and what has happened to it since.
The Last run column in the task drawer shows who last ran the revaluation for each entity, and when.
Reopening or Reversing a Revaluation
Once the FX revaluation task has run for a period, the button on its row reads Rerun. The AP, AR and JE lock tasks have Reopen, and the FX task offers Run and Rerun. Rerunning compares each balance at the period-end rate with what's already booked and posts only the difference, so each adjustment posts once.
To back out a posted revaluation:
- Open the FX revaluation document, from the task drawer or from Accounting → Accounting documents
- Open the ⋮ menu and choose Void
- Confirm in the Void system-generated FX revaluation? dialog
Voiding reverses the whole document. The voided document stays in the history for audit.
Multi-Entity Revaluation
If you have multiple legal entities in Light, each entity is revalued independently. You can:
- Click Run on the task row to revalue every entity at once
- Open the task drawer and tick individual entities to revalue them one at a time
- Check the Last run column in the drawer to see which entities have been revalued
CTA (Cumulative Translation Adjustment)
CTA captures the difference that arises because asset and liability accounts are re-translated to the closing rate each period (their Group revaluation settings is End of period), while equity and accumulated P&L stay at historical rates. The net imbalance posts to the system Currency Translation Adjustment account, recognized in other comprehensive income and accumulated in a separate component of equity (IAS 21.39(c) and 41). As described under Group currency: CTA above, it adjusts only the group-currency balance, leaving the local amount nil.
CTA is generated in two places:
- Period-end revaluation: for accounts carried at the closing rate.
- Settlement: the group-only residual when a foreign-currency item clears (see Realized FX (at settlement) above).
Consolidation (group level)
Light does not post consolidation journals. It builds consolidated figures when you run a report, by translating each entity's results into the group currency and adding them up:
- Subtotal: the sum of the in-scope entities' results, in group currency
- Eliminations: computed against a dedicated elimination ledger, where intercompany lines flagged for elimination generate reversing entries
- Consolidated: subtotal plus eliminations
A consolidated report may be presented in local currency only if all in-scope entities share the same functional currency; otherwise it must be presented in the group base currency, which always works across mixed-currency entities. By default consolidation covers all entities in the group (or an explicitly selected set), summed on a flat basis. See Multi-currency consolidation for details.
Summary of Standards Alignment
| Area | Treatment in Light | IAS 21 reference | ASC 830 reference | Assessment |
|---|---|---|---|---|
| Monetary assets & liabilities | Closing (end-of-month) rate, revalued each period | IAS 21.23(a) | ASC 830-20-35; 830-30-45-3 | Best practice |
| Equity | Historical rate, not re-translated | IAS 21.23(b) | ASC 830-30-45 | Best practice |
| Income statement | Transaction-date (spot) rate per item | IAS 21.21 to 22; 39(b), 40 | ASC 830-30-45-3 | Best practice |
| Translation difference | Posted to CTA (group-only) | IAS 21.32, 39(c), 41 | ASC 830-30-45-12 to 45-20 | Best practice |
| Realized FX on settlement | FX gain/loss vs. original rate | IAS 21.28 | ASC 830-20-35-1 to 35-2 | Best practice |
| Consolidation translation | Report-time aggregation in group currency | IAS 21.38 to 39, 44 to 46 | ASC 830-30; disposal ASC 830-30-40-1 | Best practice |
The Assessment is the same under both frameworks. Paragraph references are to IAS 21 The Effects of Changes in Foreign Exchange Rates and ASC 830 Foreign Currency Matters. Under ASC 830, the transaction-to-functional layer is a remeasurement (transaction gains and losses recognized in net income, ASC 830-20) and the functional-to-presentation layer is a translation (CTA reported in other comprehensive income, ASC 830-30). On the sale or substantially complete liquidation of a foreign entity, the accumulated CTA is reclassified from equity to net income (ASC 830-30-40-1, as clarified by ASU 2013-05).
Tax considerations: Some jurisdictions tax only realized FX gains and losses, and unrealized losses may not be deductible. Consult your tax advisor on the treatment of revaluation entries.
Best Practices
- Revalue monthly: catching changes regularly produces more accurate interim results than waiting for quarter-end
- Close prerequisite tasks first: make sure Account Payables, Account Receivables, and Journal Entries are closed before running FX revaluation
- Revalue all entities: select every entity with foreign currency exposure when posting revaluation
- Set account FX settings: on each balance-sheet account that holds foreign currency, set Entity revaluation settings to Revalue and Group revaluation settings to End of period, and keep equity and P&L accounts on Do not revalue and Historical
- Review before closing: check the posted documents in Accounting → Accounting documents, filtered to the FX revaluation type, before closing the period
- Track the Last run date: use the Last run column in the task drawer to confirm all entities have been revalued for the current period
- Separate realized from unrealized: track both types of FX gains and losses for accurate analysis and reporting
- Document your policy: be consistent in how and when you run revaluation across periods