Bo:
Thank you for a good question!
John Ralls already gave you an answer, and it is correct. John writes
the code, he knows whereof he speaks. But let me try to explain it a
different way.
On 2025-02-09 04:36, Bo Buckley wrote:
...I recently tried to add a JPY checking account to my books....
I noticed all smaller transactions (e.g. wire fees, interest, etc.)
were all being converted incorrectly....
...you will see the following:
Date Description Transaction Amount ExchangeRateGivenInTransferFundsDialog
ExchangeRateRecordedInPriceDatabase
2025/01/29 Transfer Fee 110 0.0066 0.00909090909090909
2025/01/29 Transfer Fee 150 0.0066 0.00666666666666667
2025/01/29 Transfer Fee 200 0.0066 0.005
2025/01/29 Transfer Fee 300 0.0066 0.00666666666666667
2025/01/29 Transfer Fee 500 0.0066 0.006
2025/01/29 Transfer Fee 1000 0.0066 0.007
2025/01/29 Transfer Fee 2000 0.0066 0.0065
2025/01/29 Transfer Fee 5000 0.0066 0.0066
2025/01/29 Transfer Fee 10000 0.0066 0.0066
Thank you for clearly explaining what you did and what you saw. That is
helpful. (I have not tried to reproduce it, I believe your evidence.)
My expectation is that whatever is entered into the "Exchange Rate" will be
used and saved into the Price Database. This is not happening....
This is an incorrect expectation. GnuCash does not behave this way.
Exchange rates used in transactions might get saved to the Price
Database, but as John said, there is only one entry per calendar day.
Different rates on the same day will overwrite preceding rates. Exchange
rates from the Price database might get used as the default value in the
Transfer Funds dialogue, but what you enter there will take precedence.
For the
smaller transaction amount (in this example case < 5000 JPY) the Exchange
Rate Recorded in Price Database appears to change on its own accord and not
even linearly. What really stinks is that this all happens silently...
My only guess is this has to be something to do with a rounding error....
Not quite rounding error. The conceptual mistake is to treat the
exchange rate as fundamental. It is not. It is merely the ratio of value
in currency A to value in currency B. AFAIK GnuCash does not even store
that ratio. It is the values in the two currencies which are fundamental.
In your example, when importing each transaction and filling out the
Transfer Funds dialogue, I think you will have better results if you
disregard the Exchange Rate field, and concentrate on entering the
correct USD amount for the Expenses:Bank Service Charge account.
When the Transfer Fee was 1,0000 JPY, what was the USD amount of the
service charge? If it was 64.42 USD, then enter that. The exchange rate
field will show a rational number, maybe something like 3221/50000. That
is approximately 0.00644, but exactly 64.42/1,0000.
When the Transfer Fee was 300 JPY, what was the USD amount of that
service charge? If it was 1.93 USD, and you enter that, the rational
number in the Exchange Rate field might be something like 193/30000.
That is approximately 0.00643, but exactly 300/1.93.
And so on for a fee of 110 JPY, which might be a service charge of 0.71
USD, with an exchange rate of 71/11000, approximately 0.00645.
... So two summarizing questions:
1. Is this a known bug on bugzilla? I could not find it via a Google
mailinglist search or on bugzilla
The best answer is, the Exchange Rate computation is a feature, not a
bug. However, we can also see from your observations that the Transfer
Funds dialogue and how it applies to multi-currency transactions is
confusing. Also, the documentation is inadequate. I totally agree about
that. I enter such transactions all the time, and I still get confused
by GnuCash's mechanisms.
2. Is there a known workaround?
Yes. When entering data into the Transfer Funds dialogue, do not enter
numbers into the Exchange Rate field. Use it solely to check your work.
Concentrate on entering the correct transaction value amounts in each
currency in their two fields.
Does that help?
—Jim DeLaHunt
_______________________________________________
gnucash-user mailing list
gnucash-user@gnucash.org
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.