This is my general observations on multiple currency support, and some information directly related to the implementation of it in Quicken Windows.
- When dealing with multiple currencies you can never accurately state total value using only one currency.
- It might be convenient to use the current exchange rate in a transaction, but if it is correct is purely chance.
Currencies are traded 24/7, and in different places, with different fees.
I can state that I have 13.34 shares of IBM. I can never state its exact value until I sell and change it into some currency. But even then my value in say USD for my 13.34 shares of IBM tells me nothing about the value of someone Else's 13.34 shares of IBM in USD.
The same is true with currency. I can state I have $103.33 USD, but I can't accurately state what its value is in any other currency. I can convert to another currency and then it is accurate in that currency, but not in USD any more.
So if I pull up a net worth graph over time that includes multiple currency, it is always an estimate for any given value. In some ways it is more of an estimate than the IBM example, in others it is more exact. If I trade IBM on a given exchange, that exchange closes for the day. So after the close I can get the number for the day and use that. Currency exchange rates never "close" so basically there isn't really a "day" number. But in fact the same can be said even in the IBM example since just because a security closed for the day at a given value that doesn't mean you can get that when the the exchange opens. So in fact you know less about the value of the IBM shares during the night than you do with a currency. But even that isn't "exact" because there are multiple currency exchanges, which are not going to be exactly the same.
In Quicken when you do a transfer from one account that has a given currency, to another account that has a different currency it will by default give you the "other account" amount based on the current exchange rate. This may be convenient, but it being accurate would be pure chance. First off there is no reason to believe that you will be getting that number from your financial institution. Not to mention fees and such which might be incorporated into the amount received without being broken out. But even if it was accurate, it won't be by the time you press OK. The proper way to record this transaction would only be to use the value that the financial institution has given.
Using the current exchange rate for any given transaction would be the equivalent of me saying that I can look at the current price of IBM and press button for Buy at market, and believe that I will get my IBM shares for that amount.
Of course even to have an approximation on a net worth graph requires the exchange rate on that "day" (whatever that really means), which the US Windows version doesn't do.
And course you have actually apply those exchange rate numbers to values on the report/graph, which the Canadian version doesn't do.
There are other complexities for "full currency support", like if you were going to allow multiple currencies in an account. If you were to do that you would pretty much have the same kind of complexity that you have in a brokerage account. There would never be a "cash" number.
For instance in my Vanguard accounts there is never any "cash". The money is always in one security or another. Now some securities track the US dollar exactly so that you have a "cash equivalent", but if I sell IBM the proceeds don't go to cash they go into a buy of another security.
Doing this would require a lot more overhead than the single number that is now required.
That overhead would be in storage space, time to process, and complexity of coding it.