Appearance
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:
- The current balance recorded in your reporting currency (the GL view).
- 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.