Skip to content

FX Revaluation

Clients that hold balances in a currency other than their reporting currency need their foreign-currency monetary accounts revalued at each period-end. Without this, the company's reporting-currency balance sheet drifts away from the underlying account-currency reality every time exchange rates move.

Kraal handles FX revaluation as part of the automated close workflow. Two paths are supported:

  • Native path — when the connected ERP exposes its built-in exchange rate revaluation tool, Kraal triggers it directly. This is the preferred path and runs without additional configuration.
  • Custom path — when the native tool is unavailable for any reason, Kraal computes per-account revaluation proposals using the same logic. Custom-path proposals are always review-only so an accountant can verify the period-end rate and the unrealized delta before posting.

What gets revalued

Only monetary accounts in a foreign currency are eligible:

  • Receivable accounts in a non-base currency
  • Payable accounts in a non-base currency
  • Bank and Cash accounts in a non-base currency

Equity, revenue, and expense accounts are not revalued at period-end — those are translated at the rate used when each transaction was booked.

How the delta is computed

For each eligible account, Kraal compares two views:

  1. The current balance recorded in your reporting currency (the GL view).
  2. The same balance translated using the period-end exchange rate.

The difference is the unrealized FX gain or loss. The handler produces one proposal per account where the delta is material (default threshold: $0.01). Each proposal includes:

  • The account name and its native currency
  • Balance in the account's currency
  • Balance currently on the books (reporting currency)
  • Balance translated at the period-end rate
  • Unrealized FX delta
  • The rate used and the rate date
  • The proposed journal entry direction (debit/credit)

Configuration

Configure FX revaluation in the client's close configuration under Settings > Close Templates for the client. The custom path needs at least one setting before it can produce proposals:

  • Unrealized gain/loss account (required) — the profit-and-loss account that absorbs the FX delta. Without it, the close item returns a configuration error rather than silently passing.
  • Minimum revaluation threshold (optional) — defaults to $0.01. Use it to skip immaterial deltas when an account moves only a few cents due to rounding.

The native path does not require additional Kraal configuration — it uses your ERP's existing FX setup.

Reviewing proposals

FX revaluation proposals are always review-only. They will not auto-post. This is intentional:

  • Period-end rates are sometimes provisional and need confirmation.
  • The reviewing accountant should check the bank statement balance against the should-be reporting balance before accepting.
  • The resulting journal entry usually needs an auto-reversal on the first day of the next period — Kraal flags this on each proposal so the reviewer can confirm the reversal posting date.

For each proposal, review:

  • Has the period-end rate been confirmed? If the rate is a midmarket estimate, replace it with the bank-confirmed rate before posting.
  • Does the should-be reporting balance match the bank statement? If the bank statement was provided in the foreign currency, this is a good cross-check.
  • Is the reversal posting date in an open period? Auto-reversal needs the next period to be open; close that loop before submitting.

When a proposal is skipped

The metadata for each run lists accounts that could not be revalued with a clear reason:

  • fx_rate_unavailable — Kraal could not find a period-end rate for the account's currency. Add the rate in your ERP's currency exchange table and re-run.
  • balance_fetch_failed — the GL lookup failed for that account. Usually transient — re-run the close item, and if it persists, check permissions on the account.

Accounts with zero balance in both currencies are silently skipped — they do not need revaluation.

Multi-entity clients

For consolidated clients with subsidiaries reporting in different currencies, Kraal applies FX revaluation per entity during the close. Each subsidiary revalues its own foreign-currency accounts in its own reporting currency; consolidation then translates the subsidiary results into the parent's reporting currency using the period-end consolidation rate.

See Multi-Entity & Intercompany for more on how consolidation handles cross-currency relationships.

Troubleshooting

  • No proposals appeared, but I have foreign-currency accounts — check that your ERP has rates available for the account's currency on or before the period-end date. Also confirm the account types are Receivable, Payable, Bank, or Cash; other types (Equity, Income, Expense) are not revalued.
  • The native path didn't run — Kraal falls through to the custom path automatically when the native tool is not available. Both paths produce the same kind of revaluation proposal; only the trigger differs.
  • An immaterial delta was skipped — adjust Minimum revaluation threshold if you want smaller deltas surfaced.
  • The proposal direction looks wrong — Kraal's direction follows GAAP convention: a positive unrealized gain debits the foreign-currency account and credits the gain/loss account; a loss reverses both. Verify the account currency and the period-end rate sign before adjusting.

Kraal — AI-powered accounting for modern firms