I recently started buying some stocks and track them with gnuCash. I used the gnuCash manual to get started. Basically I have Assets:Broker Account where I transfer money. From this account I buy stocks into Assets:Stocks:<SYMBOL>. The latter accounts are created as type "Stock" and each one uses a security called <SYMBOL>.

Clearly I would like to track the (current) value of my stocks. However, gnuCash shows an arbitrary Dollar amount in the stocks parent account (Assets:Stocks).

I do not only know how gnucash determines this value, I would also expect that this value reflects the sum of the currents stocks that exists underneath.

A picture says more than thousand words, so this is how it looks like:

GnuCash Ledger

The 1116.60$ looks arbitrary to me and it is clearly not the value of the stocks underneath! "1 GOOGL" alone was about 1050$ when I bought it! The number should be around 8000$.

What is going wrong here?

1 Answer 1


GNUCash determines the value of stock in two ways:

  1. Implicitly - when you buy or sell a stock you tell GNUCash how many shares you purchased/sold and the total price paid/earned.
  2. Via updates in the 'price editor' tool which can be either manual or automatic if you've configured it to retrieve prices from the web.

For example, the AAPL stock you purchased: as of closing today it was selling for $177 a share. Your entry for purchasing it would thus look close to:

AAPL Purchase Screenshot

You had to enter the number of shares you purchased and the total purchase price - GNUCash then calculates the price per share. This price-per-share then get's logged into the price editor and remains the price of the stock a) permanently for the transaction and b) as the current price of the stock until a newer value is placed in the price-editor.

GNUCash then uses the number of shares of a stock times the price-per-share in the price-editor to determine the value of all stock. If the value does not look correct, even when the transactions do reflect the correct purchase price, it is likely that the price-editor has a wrong value for the stock price which supersedes the purchase price (i.e. is newer).

  • This is what I thought but my ledgers looked like your picture! However, your post brought me to the right point: The prices shown at the parent account are not added from any of the columns above - they come from the Price Editor: NumSharesFromLedger x PriceFromPriceEditor. When I entered the stocks I did not understand this, wrote "0" as the Exchange rate and manually adjusted Shares/Price/Buy afterwards. But the 0 went into the price editor and was not modified afterwards. So I went back to the price editor and edited all user:price values to reflect my price of each share.
    – divB
    Commented Jan 23, 2018 at 21:54
  • Maybe you could clarify this (with the role of the price editor) a bit more? then it's the right answer and I could marked it as solved.
    – divB
    Commented Jan 23, 2018 at 21:56
  • Okay, glad it helped - I've updated my answer to try and clarify the role of the price-editor. Let me know if I can improve upon this.
    – Andy
    Commented Jan 23, 2018 at 22:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .