[GNC] Exchange rates and split transactions
Guido
guido at ioguido.com
Fri Aug 22 08:52:31 EDT 2025
Hello Jim, thank you for your reply!
By “subaccount” I mean that in my chart of accounts I have a EUR bank account, and inside it I created a TRY bank account as a child account.
Here’s a simplified example of what I’m trying to record:
*
Restaurant expense: 34 TRY
*
Loan to my friend: 34 TRY
*
Payment from the TRY bank account (debit card): -68 TRY
I enter this transaction in the register of the TRY account (double click on it->start registration). For each split, I type the TRY amount, then when I press TAB, GnuCash asks me for an exchange rate or the corresponding EUR amount.
*
For the first split (Restaurant), I enter 0.80 EUR.
*
For the second split (Loan), I enter 0.79 EUR.
*
Finally, I enter the TRY account itself with the total of -68 TRY.
So in total, 68 TRY should equal 1.59 EUR.
The problem is: after saving the transaction, when I look at the parent EUR account, I don’t see -1.59 EUR. Instead, I see either -1.58 EUR or -1.60 EUR, depending on which EUR value I entered last. It seems GnuCash only keeps the last exchange rate I entered and applies it to the whole transaction, which causes the mismatch.
Hope this can make the situation clearer to you.
Regards,
G.
On Thu, 2025-08-21 at 22:00 -0700, Jim DeLaHunt wrote:
Hello, Guido, and welcome to Gnucash!
On 2025-08-18 05:23, Guido via gnucash-user wrote:
Hi everyone,
I have a bank subaccount in TRY under a parent account in EUR. When I
record expenses in TRY, I use a split transaction, as each entry is 50%
expense and 50% credit. For example:
Expense: 34 TRY
Credit: 34 TRY
TRY account: -68 TRY
When entering each positive amount, GnuCash (5.10 on Ubuntu) asks for
either an exchange rate or the corresponding EUR amount. I choose to
enter the EUR amounts. If the total EUR amount is uneven, the amounts
naturally differ by 0.01 EUR, resulting in two slightly different
exchange rates.
For example, 68 TRY exchanged as 1.59 EUR would split as:
Expense: 0.80 EUR
Credit: 0.79 EUR
The problem is that the last exchange rate entered seems to overwrite
the rate for the first transaction, causing inconsistencies in the
parent account. Instead of -1.59 EUR, I end up with -1.60 EUR or -1.58
EUR depending on which exchange rate I enter last.
Has anyone encountered this situation? Am I doing something wrong?
I use multiple currencies all the time in my book. I am using GnuCash 5.12 on macOS Sonoma 14.7.8. So, I am using a slightly newer version than you, and I am using a different OS. But that should not matter for this issue.
I must confess, I am not following your explanation completely. I do not know what you mean by a "subaccount". I do not understand "50% expense and 50% credit", because in double-entry bookkeeping, every transaction must have debits and credits which add up to the same amounts.
Have you read through The GnuCash Tutorial and Guide[1], section 12.2.3. Recording Purchases in a Foreign Currency?
There is one tricky detail of currency handling in GnuCash. It is important to understand that
1. Every account has a currency
2. Every transaction has a base currency
3. The base currency is set by the currency of the account you use to enter the transaction
4. For every split in a transaction, if the currency of the account is not the same as the base currency of the transaction, GnuCash will prompt you with a Transfer Funds dialogue to collect an exchange rate between the split's account's currency and the transaction's base currency, and
5. Different splits can have different transaction rates.
It sounds like you are entering a transaction within the TRY bank subaccount, where both splits of the transaction are to accounts in the TRY currency. But, are you using the register of that TRY bank subaccount to enter the transaction? If not, that may explain your problem.
If you are using a different register to enter the TRY account, and the different register belongs to an account having a EUR currency, then the base currency of the transaction will be EUR. Every time you enter a split to a TRY account in that transaction, GnuCash will prompt you to enter a TRY-EUR exchange rate.
The solution may be to always enter such transactions from the register of the TRY bank subaccount. Then the transaction's base currency will be TRY, and GnuCash will not prompt you to enter an exchange rate.
Does this help? Best regards,
—Jim DeLaHunt
[1]<https://gnucash.org/docs/v5/C/gnucash-guide//currency_manual.html#currency_purchase1.ol.2><https://gnucash.org/docs/v5/C/gnucash-guide//currency_manual.html#currency_purchase1.ol.2>
More information about the gnucash-user
mailing list