I have two currency templates, one in EUR (my main currency) and one in USD. Quite frequently I switch to the USD template to display the prices in USD, for market analysis.
Sometimes I forget that the USD template is loaded and it may happen that I enter new transactions with this wrong template. I've just noticed the problem thanks to a misplaced buy marker in an investment graph:
NB: the investment is in EUR (not default) currency.
Opening the transaction, the Specific Exchange Rate is wrong. I have to fix it to 1 EUR = 1 €.
I've seen the online help is quite clear in this regard:
When using transaction specific exchange rates you would generally not also utilize currency templates. Transaction specific exchange rates are recorded against only a single default currency, so changing that default currency would make the transaction specific exchange rates invalid. If you are only concerned about looking at items like market price/value, and aren't factoring in transaction costs, you could temporarily use currency templates, realizing that your transactions specific exchange rates will make the associated transaction cost calculations incorrect while the default currency has been changed from its original value.
but I would like to point out that when a new transaction is recorded, even for a investment in EUR with the EUR currency template loaded, the transaction specific exchange rates is always filled to "1 EUR = 1 €". So it is not a voluntary choice of mine to use the transaction specific exchange, it is always activated by default with any new transaction, as soon as the investment is not in the default currency.
I'm quite sure I've done the mistake elsewhere so I will check all my transactions.
My question is: could there be a mechanism to prevent this kind of error? An idea I have is if we could specify in the program what the default currency template is (ie. the template that has to be loaded each time we have to record a new transaction), the program could maybe alert us when the a new transaction is going to be recorded with an invalid exchange rate. I don't know if that makes sense. But maybe there could be a way to prevent this kind of error?