Hello, Fred:

On 2022-11-12 14:04, Fred Tydeman wrote:
...I had a meal in Colombia with a friend.
I paid for everything with a credit card,
and the friend gave me pesos for their part.

If I enter the two parts as two separate transactions,
all is OK.  That is, when I enter the USD of the COP part,
I get a popup asking for the exchange rate, which I enter
and the correct amount is transferred to the COP account.

In a credit card account, when I enter a split transaction
that has part of the charge be in USD and the other part
in COP (Colombia Pesos), I am getting bad results in the
COP account.  While I get a popup asking about the
exchange rate, the results are wrong in the COP account.

The parts are:
26.63 Liabilities:Credit Cards:visa   == total charge
14.78 Expenses:meals     == mine
11.85 Assets:Investments:$colombia => 50,000 COP  == theirs

There are 4219.41 COP per 1 USD on that date.

Assets:Investments:$colombia is a Cash account with
COP currency.

My guess about the problem is: GnuCash in adding the
splits for Trading:CURRENCY:USD and Trading:CURRENCY:COP
has problems with a credit card transaction that has
splits.

In my time with GnuCash, I have entered a lot of multi-currency credit card purchase transactions like this. I have not known GnuCash bugs to spoil the transaction. For instance, I have not known it to get the trading accounts arithmetic wrong. I have frequently known GnuCash's opaque handling of currencies and foreign exchange UI to make it hard to get the data entry right.

An important fact to know is that each transaction has a "base currency". GnuCash typically makes the base currency of the transaction be the currency of the account where you first enter the transaction. So, if you have your USD credit card register open, and you enter this dinner transaction, then the "base currency" of the transaction will be USD. Every split which is with an account having a different currency than the base currency has its own exchange rate, and will cause that foreign exchange dialogue to pop up independently.

Second, the amount to enter is confusing.  In the split representing the 11.85 USD:50,000 COP exchange, it is important to enter the correct one of those two numbers in the register's split line, so that it appears in the correct place in the foreign exchange ("transfer") dialogue which pops up.  Which is correct? I don't remember, I usually get it wrong 20% of the time, and the GnuCash UI doesn't remind me. The foreign exchange dialogue does not let you recover if you enter the wrong one of the two numbers; you have to cancel out, go back to the split, and enter the other number.

So the way I navigate this difficult UI is: enter what I think is the correct number in the transaction's split (maybe 11.85 USD), let the foreign exchange dialogue appear, in the lower part of the dialogue enter the other cash amount (maybe 50,000 COP), then look just above that at the dialogue's calculated exchange rates. If the exchange rates are approximately right, I got the choice of numbers right. If the exchange rates are wildly wrong, then I got the choice of numbers backwards.

Remember, the foreign exchange dialogue is dealing only with the amounts for that part of the transaction, e.g. 11.85 USD:50,000 COP. The total transaction amount, 26.63 USD, has no place in that dialogue.

Disclaimer: I am writing all the above from memory, without having the GnuCash UI or documentation in front of me. Hopefully it is correct enough to be helpful, but I might be massively mistaken in how I am recalling some part of it. But I have entered a lot of transactions like this.

Best regards,

      —Jim DeLaHunt

P.S. I hope the meal was delicious, and the visit with the friend was satisfying! :-)


_______________________________________________
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.

Reply via email to