> For the complete documentation index, see [llms.txt](https://smartbooks.gitbook.io/smartbooks-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://smartbooks.gitbook.io/smartbooks-docs/consolidation/consolidation-logic/currency-translation-and-exchange-rate-differences.md).

# Currency Translation & Exchange Rate Differences

How Smartbooks converts foreign currencies to the reporting currency and how exchange rate differences are calculated to ensure alignment between P\&L and balance sheet.

### Overview

When consolidating entities that report in a currency different from the group currency, Smartbooks automatically applies currency translation. The profit & loss statement is translated per period, while the balance sheet is always translated at the closing rate. This difference in methodology creates an exchange rate difference that Smartbooks automatically calculates and posts.

Translation is applied at **trial balance level**, not at individual transactions. Each period, the full trial balance is translated using the applicable rate.

### Rate Source

Smartbooks uses `exchangerate.host` as its external provider for exchange rates. This API typically provides the same rates as those published by the ECB (European Central Bank).

| Property          | Value                                          |
| ----------------- | ---------------------------------------------- |
| Provider          | `exchangerate.host`                            |
| Reference         | Aligned with ECB rates                         |
| Application level | Trial balance                                  |
| Verification      | Via the *Explanation* function (internal only) |

The Explanation function that shows the applied rate is currently only available in the internal (admin) environment. Customers do not have access to it yet.

### Custom Exchange Rates

By default, Smartbooks uses rates from `exchangerate.host`. If you prefer to use your own rates — for example, rates mandated by your group treasury — you can enable custom exchange rates per entity.

To enable this:

1. Navigate to your consolidation
2. Go to **Settings → Consolidation**
3. Click on an entity that reports in a different currency
4. Enable **Use custom exchange rates**

Once enabled, a new tab appears under Settings where you can enter your own monthly exchange rates. These rates will be used instead of the automatic rates for that entity's translation.

Custom rates are configured per entity. You can mix automatic and custom rates across different subsidiaries within the same consolidation.

### Translation Method

#### Profit & Loss (P\&L)

Each **period** (month) is individually translated at that period's exchange rate. The YTD value is the sum of all translated periodic amounts.

#### Balance Sheet

The balance sheet is **always** translated at the **closing rate** of the reporting period. This applies to all balance sheet items.

### Calculating the Exchange Rate Difference

```
exchange rate difference = YTD converted amount − sum of periodic converted amounts
```

The calculation follows three steps:

1. **Periodic translation** — Each month, the P\&L is translated at that month's rate. These values are summed into a cumulative YTD result.
2. **YTD translation for balance sheet alignment** — The YTD result is also translated at the closing rate, so it matches equity on the balance sheet (current year result).
3. **Difference calculation** — The difference between step 2 and step 1 is the exchange rate difference. This is automatically posted so that the P\&L YTD and balance sheet align.

This method ensures the **current year result** on the balance sheet always matches the YTD of the profit & loss statement — regardless of exchange rate fluctuations throughout the year.

### Worked Example

A subsidiary reports in USD, the group currency is EUR. Consider the following Q1 scenario:

| Period   | P\&L (USD) | Rate | P\&L (EUR) |
| -------- | ---------- | ---- | ---------- |
| January  | 10,000     | 0.92 | 9,200      |
| February | 12,000     | 0.91 | 10,920     |
| March    | 8,000      | 0.93 | 7,440      |

```
// Sum of periodic translated amounts
Σ periodic    = 9,200 + 10,920 + 7,440 = 27,560 EUR

// YTD translated at closing rate (March: 0.93)
YTD converted = 30,000 × 0.93 = 27,900 EUR

// Exchange rate difference
FX difference = 27,900 − 27,560 = 340 EUR
```

This difference of **340 EUR** is automatically posted as an exchange rate difference, ensuring the P\&L YTD (27,900 EUR) matches the current year result on the balance sheet.
