(Canadian

First I was talking about accuracy, not in conventions that one country or another might have. In fact talking about that complicates things even more since it will not be the same for different countries.I think you might be overthinking this a bit. It sounds like you are thinking in the context of trading currency markets as they fluctuate 24/7.
But for financial planning and record keeping, there are actually conventions to deal with this. And for many people, these are mandated by the government, which would serve the average person. For example, in Canada for tax purposes, there are 3 possible scenarios. One scenario is that you would be required to use the Bank of Canada official exchange rate; this used to be the noon rate (ET) but as of this year it is being changed to the close rate (officially 5 pm ET, standard defined end of day for currencies). The other is the ability to override that rate and use an actual rate used in the transaction, such as when determined by another source like your credit card company. Third is the use of a yearly average, again determined by the Bank of Canada.
So to implement this would simply require for Quicken to first download official rates. Second to allow overriding the official exchange rate based on a rate stored at the transaction level (or simply the actual amount recorded in the transaction), and third, the option to use the average rate, which I think the simplest would be to require the user to enter the rate once for each year. All of this I believe is quite straight-forward to implement, and accommodates most common usage. And I would suggest a simple user option to determine whether to use the yearly average or the official daily rates, but transaction level rate would always take precedence. Then the program would only need to look in 3 places, the average rate or the daily rate, only overridden if there is a transaction level rate. This set-up would still accommodate the user that wants to use all transnational level currency conversion.
As for the impact, unless a user has lots of trading activity, I do not expect this to have a large performance impact. And if it does, maybe there simply needs to be an option presented to only perform conversion on demand when reports and graphs are being created, with a warning of the impact.
P.S. On storage, performance, and complexity of the code. It all depends on what is implemented, and what is OK. As I have stated perfect accuracy isn't possible. But the point is the the more you push towards that goal the more it costs you.I think you might be overthinking this a bit. It sounds like you are thinking in the context of trading currency markets as they fluctuate 24/7.
But for financial planning and record keeping, there are actually conventions to deal with this. And for many people, these are mandated by the government, which would serve the average person. For example, in Canada for tax purposes, there are 3 possible scenarios. One scenario is that you would be required to use the Bank of Canada official exchange rate; this used to be the noon rate (ET) but as of this year it is being changed to the close rate (officially 5 pm ET, standard defined end of day for currencies). The other is the ability to override that rate and use an actual rate used in the transaction, such as when determined by another source like your credit card company. Third is the use of a yearly average, again determined by the Bank of Canada.
So to implement this would simply require for Quicken to first download official rates. Second to allow overriding the official exchange rate based on a rate stored at the transaction level (or simply the actual amount recorded in the transaction), and third, the option to use the average rate, which I think the simplest would be to require the user to enter the rate once for each year. All of this I believe is quite straight-forward to implement, and accommodates most common usage. And I would suggest a simple user option to determine whether to use the yearly average or the official daily rates, but transaction level rate would always take precedence. Then the program would only need to look in 3 places, the average rate or the daily rate, only overridden if there is a transaction level rate. This set-up would still accommodate the user that wants to use all transnational level currency conversion.
As for the impact, unless a user has lots of trading activity, I do not expect this to have a large performance impact. And if it does, maybe there simply needs to be an option presented to only perform conversion on demand when reports and graphs are being created, with a warning of the impact.
BTW, as for use of average, this average exchange rate for any given year would be appliedI think you might be overthinking this a bit. It sounds like you are thinking in the context of trading currency markets as they fluctuate 24/7.
But for financial planning and record keeping, there are actually conventions to deal with this. And for many people, these are mandated by the government, which would serve the average person. For example, in Canada for tax purposes, there are 3 possible scenarios. One scenario is that you would be required to use the Bank of Canada official exchange rate; this used to be the noon rate (ET) but as of this year it is being changed to the close rate (officially 5 pm ET, standard defined end of day for currencies). The other is the ability to override that rate and use an actual rate used in the transaction, such as when determined by another source like your credit card company. Third is the use of a yearly average, again determined by the Bank of Canada.
So to implement this would simply require for Quicken to first download official rates. Second to allow overriding the official exchange rate based on a rate stored at the transaction level (or simply the actual amount recorded in the transaction), and third, the option to use the average rate, which I think the simplest would be to require the user to enter the rate once for each year. All of this I believe is quite straight-forward to implement, and accommodates most common usage. And I would suggest a simple user option to determine whether to use the yearly average or the official daily rates, but transaction level rate would always take precedence. Then the program would only need to look in 3 places, the average rate or the daily rate, only overridden if there is a transaction level rate. This set-up would still accommodate the user that wants to use all transnational level currency conversion.
As for the impact, unless a user has lots of trading activity, I do not expect this to have a large performance impact. And if it does, maybe there simply needs to be an option presented to only perform conversion on demand when reports and graphs are being created, with a warning of the impact.
As for compromises/conventions it is not just a matter of performance but also a function of available data, and even as you point out, there can be more than one answer to the same question, depending from which side you are referring to about a specific transaction...like when your bank includes a typical 2.5% surcharge built into the exchange rate, etc.I think you might be overthinking this a bit. It sounds like you are thinking in the context of trading currency markets as they fluctuate 24/7.
But for financial planning and record keeping, there are actually conventions to deal with this. And for many people, these are mandated by the government, which would serve the average person. For example, in Canada for tax purposes, there are 3 possible scenarios. One scenario is that you would be required to use the Bank of Canada official exchange rate; this used to be the noon rate (ET) but as of this year it is being changed to the close rate (officially 5 pm ET, standard defined end of day for currencies). The other is the ability to override that rate and use an actual rate used in the transaction, such as when determined by another source like your credit card company. Third is the use of a yearly average, again determined by the Bank of Canada.
So to implement this would simply require for Quicken to first download official rates. Second to allow overriding the official exchange rate based on a rate stored at the transaction level (or simply the actual amount recorded in the transaction), and third, the option to use the average rate, which I think the simplest would be to require the user to enter the rate once for each year. All of this I believe is quite straight-forward to implement, and accommodates most common usage. And I would suggest a simple user option to determine whether to use the yearly average or the official daily rates, but transaction level rate would always take precedence. Then the program would only need to look in 3 places, the average rate or the daily rate, only overridden if there is a transaction level rate. This set-up would still accommodate the user that wants to use all transnational level currency conversion.
As for the impact, unless a user has lots of trading activity, I do not expect this to have a large performance impact. And if it does, maybe there simply needs to be an option presented to only perform conversion on demand when reports and graphs are being created, with a warning of the impact.
Well yes your example applies to Canada, and not the US. Which breaks the model that one method can be applied to all countries. Which in turn increases the complexity of supporting it in Quicken. Not to mention people disagreeing on how it should work.I think you might be overthinking this a bit. It sounds like you are thinking in the context of trading currency markets as they fluctuate 24/7.
But for financial planning and record keeping, there are actually conventions to deal with this. And for many people, these are mandated by the government, which would serve the average person. For example, in Canada for tax purposes, there are 3 possible scenarios. One scenario is that you would be required to use the Bank of Canada official exchange rate; this used to be the noon rate (ET) but as of this year it is being changed to the close rate (officially 5 pm ET, standard defined end of day for currencies). The other is the ability to override that rate and use an actual rate used in the transaction, such as when determined by another source like your credit card company. Third is the use of a yearly average, again determined by the Bank of Canada.
So to implement this would simply require for Quicken to first download official rates. Second to allow overriding the official exchange rate based on a rate stored at the transaction level (or simply the actual amount recorded in the transaction), and third, the option to use the average rate, which I think the simplest would be to require the user to enter the rate once for each year. All of this I believe is quite straight-forward to implement, and accommodates most common usage. And I would suggest a simple user option to determine whether to use the yearly average or the official daily rates, but transaction level rate would always take precedence. Then the program would only need to look in 3 places, the average rate or the daily rate, only overridden if there is a transaction level rate. This set-up would still accommodate the user that wants to use all transnational level currency conversion.
As for the impact, unless a user has lots of trading activity, I do not expect this to have a large performance impact. And if it does, maybe there simply needs to be an option presented to only perform conversion on demand when reports and graphs are being created, with a warning of the impact.