Thanks @Brucanna. I like your ideas.
I’ve just done an experiment in a test business and discovered that I have exactly the same problem with my VAT liability account. Any VAT incurred from USD sales must be paid in USD. (I discussed this in a different context in this topic.)
For reporting purposes I created a new tax code for the USD transactions, but this doesn’t get around the issue of changing ZWL values because of fluctuating exchange rates. I hadn’t picked up on it earlier because by the time we submit the VAT returns for the previous period we have already had many transactions in the new month, and so the VAT liability account is never zeroed out. But you can clearly see the issue here:
The sales invoice generated a liability of US$14.50 which was converted by Manager to ZWL$16.11. When I paid the US$14.50 a couple of days later, Manager converted this to ZWL$18.13 which reflects as an overpayment of ZWL$2.02 in the VAT liability account.