## TL;DR
FX residuals accumulate when each revaluation calculates a residual but the posting rule sends it nowhere, or sends it to rounding while the offsetting entry expects it in realised gain and loss. Pull the rounding account detail by currency and run, post the aged backlog to the correct gain and loss accounts by currency, and repair the revaluation account mapping so the next run clears fully.

```text
rounding difference account has a growing debit balance: "unposted FX residuals" error
```

## Use this when
- The rounding difference account balance grows after every revaluation run.
- Detail in the account is many small FX-labelled residuals across currencies.
- The revaluation report shows calculated residuals that do not appear as posted journals.

## Not for this skill when
- The rounding account grows from daily sales or purchase journal rounding. That is operational rounding, reviewed separately.
- The balance is one large item. A single misposted amount is not a residual pattern; trace that item directly.

## Steps
1. Export the rounding account detail with currency, source run, and date, and total residuals by currency and month. Verify: the growth pattern lines up with revaluation run dates
2. Open one revaluation run report and trace its calculated residual for one currency into the posted journals. Verify: you can show where that residual did or did not post
3. Confirm the intended mapping for FX residuals per policy: rounding account up to a threshold, realised or unrealised gain and loss above it. Verify: the mapping rule is written down with its threshold
4. Post the backlog by currency to the correct accounts, referencing the originating runs, keeping each currency separate. Verify: the rounding account returns to only current-period small residuals
5. Fix the revaluation posting rule or account mapping and run a test revaluation on one currency. Verify: the test run posts its residual to the intended account and leaves rounding unchanged

## Variant phrasings
### FX residuals not posting revaluation rounding account
The revaluation phrasing.
### rounding account balance keeps increasing foreign exchange
Searching by the growth symptom.

Compatibility: FX revaluation in NetSuite, Dynamics 365, SAP, and Sage Intacct multi-currency setups.

## Why it happens
Revaluation engines calculate in stages: value the foreign balances, compute the adjustment, then generate journals from a mapping table. Residuals are the small leftovers of stage one rounding. If the mapping table has no row for a residual type or currency, the engine parks the amount in rounding or drops the posting silently. Each run adds a little more, so the account tells the story of every run since the mapping broke.

## Edge cases / pitfalls
- A new currency added without a mapping row is the most common trigger. The growth starts the month that currency first revalues.
- Residuals in a currency the company no longer trades should be cleared to zero entirely, not carried.
- Thresholds matter: residuals above the rounding threshold are real gain or loss and misclassifying them distorts the FX line.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_uLhvENaRXsT3zF0wZBV_MQ
