[GNC] currency of "value" in stock account

Lionel Élie Mamane lmamane-gnucash.user.ml at conuropsis.org
Thu Nov 11 05:19:51 EST 2021


On Wed, Nov 10, 2021 at 05:52:32PM -0500, Derek Atkins wrote:
> On Tue, November 9, 2021 12:04 pm, Lionel Élie Mamane wrote:
>> On Tue, Nov 09, 2021 at 07:31:08AM -0500, Derek Atkins wrote:

>>> It is the currency of the parent account.  So in this case it
>>> would be the currency of Assets:Investments.

>>>> There seems to something strange going on, because I enter, in
>>>> basic ledger mode,

>>>> account: assets:current assets:some bank account
>>>> shares: 5
>>>> Price: 21

>>>> But in the "assets:current assets:some bank account" ledger, both
>>>> splits of that transaction have an empty amount :-|

>>> Let me guess -- Assets:Current Assets:Some Bank Account uses a
>>> different currency than Assets:Investments, right?

>> Yes. Shouldn't I then get the pop-up dialog asking me the exchange
>> rate to use? Like I do when transferring between

> No.  That only appears on a non-stock register because you don't
> have access to the both parts (amount and value) of the split.  In
> the stock account, however, you *DO* have access to both sides -- so
> if you expand out the transaction you don't need the exchange-rate
> dialog.

According to your previous message, the currency of the price/buy/sell
columns is the one of the parent account, in my example EUR. I'm not
sure that is correct (see my email of
Date: Wed, 10 Nov 2021 10:09:48 +0100
Message-ID: <YYuMXH9xx8XUtzRp at piperine.mamane.lu>
) but for the sake of the example/discussion, let's assume it is.

So if I enter a split against a USD account, sorry, that split doesn't
have access to all the information. The value I enter on the stock
register is a value in _EUR_, but the USD account must get a value in
_USD_, so there is an exchange going on.

> HOWEVER.... If your stock is in EUR then you should use a EUR bank;
> if it's in USD then you should use a USD bank.

I don't think the concept of a stock "being" in EUR or in USD is
well-defined. E.g. I can buy IBM stock, ISIN US4592001014, on the New
York Stock Exchange in USD (right now: last trade at 120.22 USD,
bid/ask 120.22/45) https://www.nyse.com/quote/XNYS:IBM or in EUR at
the Börse Frankfurt (right now last trade at 105 EUR, Bid 105, Ask
105.20) https://www.boerse-frankfurt.de/equity/ibm-corp

When I enter my buy or sale order on my Internet Banking interface, I
choose on what exchange it is to be passed; currency then differs.

While in the IBM example, one of these listings (and thus currencies)
is the "primary" or "canonical" listing, consider the examples of:

Nutrien, ISIN CA67077M1086, listed in USD on NYSE and in CAD on the
Toronto Stock Exchange.

Royal Dutch Shell Class A, ISIN GB00B03MLX29, listed in GBP on the
London Stock Exchange and in EUR on Euronext (historically Amsterdam)

> If you've got a stock denoted in USD but you're buying or selling
> using EUR, then I suspect you're actually sending EUR to the US
> Brokerage who is translating it to USD and then buying your stocks.
> In this case, you should transfer from your EUR Bank to the USD
> Brokerage, perform your EUR->USD exchange, and then use the
> Brokerage (Cash) account to buy the stocks.

Note: As far as I understand, US Financial Institutions are restricted
to be either banks or brokerages, but not both. In the EU, a single
entity can be both at the same time. At several EU banks, in my
experience, you don't have a "cash part of brokerage" separate from
your bank account. You have just the bank account(s) for cash
(currencies) and the portfolio (or call that "securities account") for
securities.

I don't (necessarily) have an USD account at every bank. When I buy a
security in USD from a bank where I have only an EUR account (and
portfolio account), the sale is necessarily withdrawn from the my EUR
bank account. Obviously, what they do is exchange EUR for USD, and
they close the trade in USD, and they take a fee for that. But I don't
have a separate "USD brokerage" that gets debited with the currency
exchange, and then credited with the sale. I can "fake" that with a
USD-denominated "transition account" in GnuCash (not sure if that's
what they are called in English), so that is not a big problem, if a
problem at all.


The first problem is that the GnuCash stock registers silently let me
mix transactions in different currencies in the same register, without
showing _at_ _all_ what transaction is in which currency. GnuCash
should either:

 - choose to disallow mixed currencies in same register, and then not
   let the user mix different currencies

 - choose to allow mixed currencies in same register, and then clearly
   indicate what transaction is in what currency (and ideally make the
   lot/scrubbing work across currencies, too).


The second problem is that, under some circumstances, GnuCash will
*silently* make transaction with a nil amount (value?) on the other
side of the split. That, in my eyes, is a bug, and should not
happen. I'm going to make a bug report with a precise reproduction
example.

> When you create these transactions, are you creating them from the
> stock account or the bank account.

The problematic cases arise when I create them from the stock
account.

-- 
Lionel


More information about the gnucash-user mailing list