> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dualentry.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Set and Lock Consolidated Exchange Rates

> Calculate, override, and lock the current, average, and historical rates DualEntry uses to translate each subsidiary into its parent during consolidation.

Consolidated Exchange Rates is the Close Workflow where you set the rates DualEntry uses to translate a subsidiary's balances into its parent's currency for consolidated reporting. Each month, you calculate or enter three rates for every subsidiary and parent pair, review them, and lock them so the month's consolidated numbers stop moving.

## Before you start

Consolidated Exchange Rates only has work to do once your organization has a consolidation hierarchy. Confirm the following before you set rates for a period:

* At least one company has a parent company. See [How to Configure Multi-Entity and Consolidation](../../platform-configuration/multi-entity-consolidation) to set up the hierarchy.
* The subsidiary and parent use different base currencies, for any pair you want to calculate. Pairs that share a currency still appear in the list, but they translate one to one and **Calculate** is unavailable for them.
* The subsidiary's **Non GL Transactions** section is not locked for the month. DualEntry rejects any new or changed rate for a month that the subsidiary has locked for Non GL activity. See [How to Lock and Unlock Accounting Periods](./period-locking).
* Your role can act on rates. The **Actions** menu on each row appears only when your role holds all four permissions: create and edit for consolidated exchange rates, and create and edit for period locks. Among the default roles, only Admin holds all four. Accountant and Controller can open the page and edit rates from the record page, but they do not see the row menu.

The month you work in should usually be closed, or close to it, in each subsidiary. The calculated average and historical rates are weighted by the activity posted in the month, so entries posted after you calculate are not reflected until you calculate again.

## How the three rates are applied

Each subsidiary and parent pair carries three rates per calendar month, and DualEntry applies each one to a different group of accounts when it translates the subsidiary for a consolidated report:

| Rate | Accounts translated at this rate |
| - | - |
| **Current Rate** | Balance sheet accounts other than equity and investment, such as cash, receivables, and payables |
| **Average Rate** | Income, Other Income, Cost of Goods Sold, Expense, and Other Expense |
| **Historical Rate** | Equity and Investment |

Rates convert from the subsidiary's currency (the **From Currency**) into the parent's currency (the **To Currency**): the translated amount is the subsidiary amount multiplied by the rate. Consolidated rates never post journal entries. DualEntry applies them when a report runs, and any difference between translated debits and credits appears as the [cumulative translation adjustment](../../reporting-analytics/multi-currency-reporting#cumulative-translation-adjustment-cta).

A subsidiary gets a row for every company above it in the hierarchy, not only its direct parent. A company two levels down has one row translating into its parent and another translating into its grandparent, and each row needs its own rates.

<Warning>
  A pair that has no saved rate for a month is translated at 1 for all three rates. DualEntry does not borrow a rate from another month. An unsaved cross-currency pair therefore reports subsidiary amounts as if they were already in the parent's currency, so save and lock a rate for every cross-currency pair before you rely on a consolidated report for that month.
</Warning>

## Open the rates for a period

The Consolidated Exchange Rates list shows one row per subsidiary and parent pair for the month you pick, whether or not a rate has been saved for that pair. To open a period:

1. Navigate to **Close Management → Close Workflows → Consolidated Exchange Rates**.
2. Choose the year from the year selector.
3. Choose the month.
4. To narrow the list, add a filter for **From Company**, **To Company**, **From Currency**, or **To Currency**, or search by company name or currency code.
5. To hide pairs that share a currency, turn on the **Different Currencies** filter.

The page opens on the current month, and months later than the current month are unavailable. Pairs that share a currency never need calculating, which is why the **Different Currencies** filter is useful during close.

A row that shows `1.000000000` in all three rate columns and no lock icon has usually never been saved for that month. A lock icon in the **Locked** column means the rate is final. Choose any row to open its record page, which shows a **Locked** or **Unlocked** badge and an **Activity** tab listing every create, update, lock, and unlock.

## Calculate rates from posted activity

**Calculate** fills in all three rates for a pair from DualEntry's daily system exchange rates and saves them immediately. Use it as the starting point for each month. To calculate:

* **One pair**: open the row's **Actions** menu and choose **Calculate**.
* **Several pairs**: select the rows, then choose **Calculate** in the selection bar. DualEntry calculates every selected pair that is unlocked and has different currencies, and skips the rest. A pair with no saved rate is created with the calculated values.

DualEntry calculates each rate as follows:

* **Current Rate**: the system spot rate on the last day of the month.
* **Average Rate**: the daily system rates across the month, weighted by each day's net posted activity in income, expense, and cost of goods sold accounts. A day with heavy activity counts for more than a quiet one.
* **Historical Rate**: the same weighting, using activity in equity and investment accounts. DualEntry excludes the system cumulative translation adjustment (CTA) accounts.

If a completed month has no activity in the relevant accounts, or the weighted result comes to zero, DualEntry uses the month-end spot rate instead. For the current month, the calculation uses daily rates through yesterday, since each day's system rate becomes available the following day. Calculate the month again after it ends to get final rates.

Calculating again replaces all three saved rates for the pair, including any you entered by hand. To keep an override, lock the rate after you enter it.

## Enter or override a rate

Override a calculated rate when your group policy uses a specific source, such as a treasury or central-bank rate, or when your auditors have agreed a rate. To enter rates by hand:

1. Choose **Edit**, either from the row's **Actions** menu or from the rate's record page.
2. Enter the **Average Exchange Rate**, **Current Exchange Rate**, and **Historical Exchange Rate**. All three are required, must be greater than zero, and accept up to nine decimal places.
3. Save the record. If the pair had no saved rate for the month, saving creates one, which requires the create permission for consolidated exchange rates.
4. Lock the rate, as described in the next section, so a later **Calculate** does not overwrite it. **Calculate** replaces all three rates, including ones you entered by hand.

**Edit** is unavailable while the rate is locked. Enter each rate as the number of parent-currency units per one unit of the subsidiary's currency. For a subsidiary reporting in EUR under a USD parent, a rate of `1.085000000` translates €100 into \$108.50. You cannot delete a rate record. To correct a saved rate, unlock it if needed, then edit it.

## Lock and unlock rates

Locking marks a month's rates as final. A locked rate cannot be edited or recalculated from the page, and a **Consolidated Exchange Rate** task on a [close checklist](./month-end-close-checklist) counts as complete only once its rate is locked. To lock rates:

* **One pair**: open the row's **Actions** menu, choose **Lock**, and confirm.
* **Several pairs**: select the rows, choose **Lock** in the selection bar, and confirm. Selected pairs with no saved rate are created already locked at the rates shown, which is `1.000000000` for all three, so calculate or enter rates for cross-currency pairs before you bulk lock them.

Locking from the list also locks the subsidiary's **Other GL Transactions** period through the end of that month, if it is not already locked. This keeps journal entries from changing the balances the locked rates translate. Unlocking from the list reverses it: if Other GL is locked for that month, DualEntry reopens Other GL from the first day of the rate's month. Unlocking a rate for an earlier month therefore also reopens Other GL for every later month that was locked. Re-lock those periods in [Period Locking](./period-locking) after you finish the correction.

The **Lock** and **Unlock** button on a rate's record page changes only the rate itself and leaves the Other GL period lock alone. Use it when you need to correct a rate without reopening the subsidiary's general ledger, and use the list when you want the two locks to move together.

To unlock, choose **Unlock** from the row's **Actions** menu, from the selection bar, or from the record page, and confirm where prompted. DualEntry records every lock and unlock on the rate's **Activity** tab.

## Troubleshooting

The following table lists the errors and unexpected results you are most likely to see on the Consolidated Exchange Rates page, with the usual cause of each:

| Symptom | Cause | Fix |
| - | - | - |
| The **Actions** menu is missing on every row | Your role lacks one of the four permissions the menu requires: create or edit for consolidated exchange rates, or create or edit for period locks. | Ask an Admin to run the action, or to add the missing permissions to your role. |
| **Calculate** is unavailable on a row | The rate is locked, or the subsidiary and parent use the same currency. | Unlock the rate first. Same-currency pairs translate at 1 and need no rate. |
| `No daily rates found for the selected period. Month not started` | The selected month has not started yet. | Choose the current month or an earlier one. |
| `No transactions found for the selected company and period` or `Resulting rate is zero` | The month has no activity in the accounts the rate is weighted by, and it has not ended yet, so no month-end fallback is available. | Calculate again after the month ends, or enter the rate by hand. |
| `Child company period is locked` | The subsidiary has locked **Non GL Transactions** for the month. | Unlock Non GL for the subsidiary in Period Locking, update the rate, then lock it again. |
| Consolidated balances look untranslated for a month | The pair has no saved rate for that month, so it translates at 1. | Calculate or enter the rate for that month, then lock it. |
| Balances are right at the direct parent but wrong at a higher parent | The subsidiary's row into that higher parent has no saved rate. Each ancestor has its own row. | Filter **From Company** to the subsidiary, then calculate or enter and lock the rate on every row it has. |

## Result

After you calculate, review, and lock the rates for a month, every consolidated report for that month translates each subsidiary at the locked rates. If you locked from the list, the subsidiary's Other GL period is also closed through the end of the month. Any **Consolidated Exchange Rate** task on your close checklist shows as complete once its rate is locked. If you find an error after the month is locked, unlock the rate from its record page, correct it, and lock it again, which fixes the rate without reopening the subsidiary's general ledger.

Lock rates as one of the last steps of the month, after the subsidiaries' entries are posted and [currency revaluation](./currency-revaluation) has run, so the weighted rates reflect the final activity. To see the translated results, run a report with a [consolidated translation rate](../../reporting-analytics/multi-currency-reporting#choosing-a-translation-rate), or follow [Your First Consolidated Report](../../reporting-analytics/first-consolidated-report) for a guided walkthrough. For the rest of the close sequence, see the [month-end close checklist](./month-end-close-checklist).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.