[GNC-dev] book currency is what ... question mark

David Cousens davidcousens at bigpond.com
Thu Feb 14 20:44:37 EST 2019


My apologies for being long winded in the following, but I think it is
necessary to achieve clarity in what is proposed or intended.

The "book currency" is the currency assigned as the default currency, i.e
the currency of the root account, when you create a new book or file  using
the File->New File. I can create a new file with a default currency of USD
even though my "home currency" i.e. the currency where I live, is AUD and I
may choose  maintain a separate book or file with AUD as its root or default
currency. I can't think of a good reason why unless I happen to commute
between the US and Oz on a regular basis but I could choose to do it. When
you create a new account, it will by default have that "book currency"
unless you change it to another currency. 

In what way do you think what John said is invalid?

For a transaction crediting an account in RUB and debiting one in EUR for
100 EUR at an exchange rate 
 of iEUR=75.30 RUB(e.g. asset saving) the register for Savings EUR appears

                                Debit         Credit
Savings EUR              100.00
Savings RUB                               100.00

and the register for Savings RUB as

Savings EUR            7530.00
Savings RUB                             7530.00

when the transaction is carried out from the Savings EUR register (with
presumably the description field linking the two to show they are one and
the same transaction.

If it is initiated from the Savings RUB account the transactions appear
exactly as above in each register (provided of course the same exchange rate
is used. The advantage of the above for me is that the value of the
transaction in each currency is clear and the exchange rate used is clear
and calculable from the balances (as well as being able to check the price
editor.) and it is clear that the transaction is balanced in both

If I start in Savings RUB , select the Savings EUR account and enter 100 it
is assumed to be in RUB not EUR as GnuCash operates at present. This is
clear, both registers are balanced and it is clear that they are correct.

I am presuming what you would like is to be able to start in the Savings RUB
register, select the Savings EUR account, enter 100.00 as the amount and
have that interpreted as !00.00EUR, even though the register currency is RUB
and then when you tab to the next line select Savings RUB have the currency
dialog popup, enter or fetch the exchange rate, and then display the amount
against the Savings RUB account in RUB. And similarly if you start in
Savings EUR and repeat the procedure. I.e. no matter what register is in
use, the register would display the amount of a split in the currency of the
account that the split is being made to not the currency of the register .
e.g.  would appear in the entries for both registers

                               Debit                  Credit
Savings EUR             100.00                                     (EUR)
Savings RUB                                      7530.00          (RUB)                                   

I personally would be quite happy if this were the way GnuCash registers
behaved, particularly if the currency symbol were to appear at the end of
each line to indicate the currency applicable to the split, but I find the
current system of displaying amounts in the currency of the register being
displayed, equally as clear. When I made my first multicurrency transaction,
it took me all of 5 seconds to follow what was happening.

I have some reservations about Alex's proposal to convert the amounts to the
"book currency" to check the balance. I may be misunderstanding the
intention here but it is not reallynecessary to check the balance as long as
the amounts in the splits are in agreement with any exchange rates and their
respecive currencies. It is the equality of 
amount in currency 1 = amount in currency 2

If the book currency is USD (or AUD or any other third currency) then the
currency conversion becomes EUR<->USD<->RUB. The double conversions involved
to the EUR and RUB may introduce scope for rounding errors to produce
slightly different results on conversion back.  

It also assumes that EUR->USD-> RUB will give the same result as EUR->RUB. 
Where the exchange rates are good to 6 significant figures, this appears to
be OK using today's figures 
1 EUR=75.3052 roubles
1 EUR =1.12958 USD 
1 USD = 66.6667 RUB => 1 EUR = 75.3054 RUB.

If you transfer amounts of >10000 roubles or equivalent this could start to
introduce significant errors into what is recorded.

My view is that the recording of foreign currency transactions really needs
to follow and reflect the events associated with the transaction as they
occurred. I.e. no conversion to an intermediate currency unless that is what
actually occurred.  I do not see how converting a transaction between 
accounts in EUR and RUB via a third currency affects any entries in the
"book currency" until such funds are actually converted to that "book
currency" in any case and it is the price of that conversion when that
conversion actually occurs which ensures the integrity of the book in the
"book currency". 

Reports could/should report a foreign currency balance at either a specified
exchange rate or the current exchange rate but should make clear what that
is, but that is a separate issue.

I am not sure what
contributed to the discussion of this point though Wm.

David Cousens

David Cousens
Sent from: http://gnucash.1415818.n4.nabble.com/GnuCash-Dev-f1435356.html

More information about the gnucash-devel mailing list