multicurrency-and-fx · git:20260911.7afa6ea · 2026-09-11 · sha256 9825fdb6d340b9e3

multicurrency-and-fx git:20260911.7afa6eaA

Immutable. This exact content never changes and is served at /api/v1/blob/9825fdb6d340b9e3.

---
name: multicurrency-and-fx
description: 'Use when implementing IAS 21 multicurrency accounting: functional currency, presentation currency, transaction currency, exchange-rate tables, settlement, realised and unrealised forex gains or losses, revaluation, and currency-safe ledger design.'
metadata:
  portable: true
  do_not_use_when: Do not use for single-currency systems or statutory policy questions without the external accounting doctrine.
  required_inputs: Provide functional and presentation currencies, rate sources, transaction dates, ledgers, and reporting requirements.
  workflow: Apply currency capture, translation, remeasurement, gain-loss, rounding, and reconciliation rules in order.
  quality_standards: Preserve rate provenance, balanced entries, deterministic rounding, period consistency, and audit trails.
  anti_patterns: Do not overwrite historical rates, mix functional and presentation currency, or hide rounding differences.
  references: Load the external accounting doctrine and local references named by this skill when the branch requires them.
  compatible_with:
  - claude-code
  - codex
---

# Multicurrency And FX

<!-- dual-compat-start -->
## Evidence Produced

| Category | Artifact | Format | Example |
| --- | --- | --- | --- |
| Correctness | Foreign-currency measurement schedule | Markdown/workbook | transaction rate, closing rate, remeasurement, translation, rounding, posting, and source |
<!-- dual-compat-end -->

## Inputs

| Artefact | Required? | Purpose |
|---|---|---|
| Functional and presentation currencies | yes | Define measurement and reporting bases |
| Transaction dates and rate source | yes | Select traceable exchange rates |
| Monetary balances and reporting period | yes | Drive remeasurement and translation |

## Outputs

| Artefact | Consumer | Acceptance condition |
|---|---|---|
| FX policy, postings, and reconciliation | Ledger and reporting workflows | Rate provenance, balanced entries, explained differences |

## Capability contract

Read and search are required. Rate imports, remeasurement journals, translation entries, and historical corrections require explicit authority, period controls, and reconciliation evidence.

## Degraded mode

Fallback without verified rates or doctrine: stop posting, preserve source-currency amounts, and report the missing rate or policy decision.

## Decision rules

| Balance or event | Treatment | Failure avoided |
|---|---|---|
| Foreign-currency transaction | Initial recognition at approved transaction-date rate | Untraceable base amount |
| Monetary item at reporting date | Remeasure at closing rate | Stale carrying value |
| Non-monetary historical-cost item | Preserve historical rate | False FX gain or loss |
| Presentation-currency reporting | Translate under applicable doctrine | Mixing remeasurement and translation |

## Domain anti-patterns

- Overwriting historical rates. Fix: version rates and preserve provenance.
- Posting only the converted amount. Fix: retain source currency, rate, and base amount.
- Using one rate type for every event. Fix: select rate by event and policy.
- Hiding rounding in revenue or expense. Fix: use controlled rounding accounts and reconcile.
- Mixing functional and presentation currency logic. Fix: separate remeasurement from translation.
Acknowledgement: Shared by Peter Bamuhigire, techguypeter.com, +256 784 464178.

## Use When

- A tenant books in one functional currency but invoices, pays, or receives in another currency.
- A group needs presentation currency reporting.
- Month-end FX revaluation is required.

## Hard Rules

- MUST define one tenant functional currency.
- MUST store transaction currency and functional-currency equivalent on journal lines or linked valuation records.
- MUST not mix functional and presentation currency as if they are the same ledger amount.
- MUST revalue open monetary items at period end where required.
- MUST distinguish realised from unrealised forex gains/losses.

## Currency Model

Track:

- Functional currency: primary economic environment of the tenant.
- Transaction currency: currency of invoice/payment/document.
- Presentation currency: reporting currency where different from functional currency.
- Rate source, rate date, rate type, and approval status.

## Posting Patterns

Foreign currency invoice:

- Post AR/AP and revenue/expense using transaction-date rate in functional currency.
- Preserve transaction-currency amount for settlement and subledger ageing.

Settlement:

- Clear AR/AP at original functional-currency carrying amount.
- Post cash at settlement-date rate.
- Difference goes to realised forex gain/loss.

Month-end revaluation:

- Revalue open monetary items at closing rate.
- Difference goes to unrealised forex gain/loss and revaluation adjustment.
- Reverse or update according to the tenant close policy in the next period.

## Outputs

- Currency policy.
- FX-rate schema.
- Revaluation job design.
- Realised/unrealised FX posting matrix.
- FX reconciliation report.