This could happen when the currency balancing ledger for a foreign currency asset or liability account diverges from the exchange rate for some reason (either accumulated rounding drift, or sometimes cancelling or writing off an invoice after the exchange rate for its period was changed). A foreign currency delta ledger should normally have a balance that when added to the main ledger balance, yields that account’s balance in the base currency (and this ratio should agree with the corresponding exchange rate for the period). The message is actually a failsafe sanity check that is being triggered, and is intended to “never happen”.
The solution has generally been to update the exchange rate for any and all affected periods (even if you just change the exchange rate by .000000001, this gives MoneyWorks an opportunity to create an exchange rate gain/loss transaction that incorporates a correction for any drift).
As of MoneyWorks 7.3, the currency balancing ledgers will never diverge from the exchange rate (any transaction being posted automatically includes any correction required), and this message should never appear.
So, first, make sure you are running MoneyWorks Gold 7.3 or later.
I’m on 7.3 but I got this message. What do I do?
Although the currency delta will be correct for the currency for which you are posting a transaction, the currency sanity check is applied to all currencies whenever you post a foreign currency transaction. It is possible that another foreign currency has a currency balancing delta account that has diverged from the exchange rate.
The solution in this case is to
1. run the Diagnostics (File menu).
2. update the exchange rate for any currencies that show a bad delta for each of the affected periods, starting with the oldest period.
If you’re on v7.3 or later, this should only be necessary once. Thereafter, no currency drift should ever occur.