[GNC] Valuation of stocks, foreign currencies in reports

Christopher Lam christopher.lck at gmail.com
Tue Jun 26 10:08:47 EDT 2018


Hi Geert,

Thank you.

The latest iteration does provide 'report-currency' for both balsheet 
(price from the exact column date) and profit&loss (price from 
begin/mid/end of column date period) and some cosmetic changes as advised.

No cost-price valuations are implemented. Perhaps this can be parked for 
now; and merged when it is confirmed accurate enough.

C


On 26/06/18 17:11, Geert Janssens wrote:
> Op dinsdag 26 juni 2018 06:03:07 CEST schreef Christopher Lam:
>> Hi Stephen
>>
>> Thank you for valuable feedback... all these issues are cosmetic / account
>> selection, and are relatively trivial.... except that Placeholder accounts
>> can also contain transactions therefore must not necessarily accumulate
>> their children account amounts.
>>
>> My major concern relates to switching amounts to a so-called "Report
>> Currency". But IMO this leads to balance sheets to being confused with
>> 'stock valuation'
>>
>> The existing balance sheet offers weighted-average, average-cost, nearest,
>> latest. AFAIU weighted-average and average-cost obtains prices from the
>> actual transactions; nearest means 'use price nearest to report-date', and
>> latest means 'use today's nearest price'
>>
>> Let's say I bought:
>> 100 AAPL at $10 in 2006, and
>> 50 AAPL at $20 in 2009; and
>> AAPL was $110 in 2015
>> AAPL is about $180 in 2018
>>
>> I'm wanting stock valuation in 2015.
>> - original currency - shows 150 AAPL, no price conversion (i.e. simplest)
>> - cost price - 100x$10 + 50x$20 = $2000 (labour intensive because each
>> stock transaction must be analysed, and converted using any available price
>> entry to the report currency)
>> - nearest - 150x$110 = $16,500 (simple)
>> - latest - 150x$180 = $27,000 (also simple)
>>
>> Please check latest showing balsheet multicolumn amounts converted to
>> report currency; although they're esthetically nice, this has increased the
>> level of complexity a magnitude a tad too high... (I wouldn't know how/if
>> income/expense amounts can/must be subject to price conversion...)
>>
>> I'd be keen to remove price conversion to report currency myself...
> Unfortunately you can't.
>
> A balance sheet is used to get a quick overview of the financial situation of
> a company. I would want to see this expressed in one currency and I find that
> other accounting software around me here does that as  well. This is important
> to be able to compare the value of the company at different key moments
> (fiscal year ends, when a new loan has to be acquired from a bank,...).
>
> So inevitably this will pull in all the complexity of trading and valuation.
> And it gets even worse if your report splits out in different time periods.
>
> I don't have much experience in this area unfortunately as I don't manage
> stocks or foreign currencies myself in GnuCash.
>
> I can peek how my accountant handles this for our company though.
>
> Currently for our company stock is valued at cost price. However our
> accountant says this is a choice. One could just as well decide (at least here
> in Belgium) to value stock at report date. It's not up to the application you
> use to decide which one. Instead that's an accounting decision (fiscal
> optimization). So ideally gnucash supports those two at least.
>
> Note that in case you generate a balance sheet with multiple dates "report
> date" really means the closing date for each column. So different prices can
> be in use for each column. Or put differently in a multi column balance sheet
> you are really computing several independent balance sheets at different
> points in time. I haven't deciphered your code yet, so I don't know if that is
> how you wrote it.
>
> This is important because when comparing present day's balance sheet with the
> closing balance sheet of the last fiscal period I don't want the closing
> balance sheet to change based on what happens to be the current price of a
> share. Or at least not in all circumstances. I want to be able to compare my
> company's current situation with what I reported to my tax authorities for
> example.
>
> Also although you mark the cost price example above as "labour intensive" you
> have chosen the most simple version of it, namely the situation in which
> shares have only been bought but not yet sold.
> Suppose you sell 20 AAPL shares at a $25 price in 2010, then what is the cost
> price of the 130 shares you have left ? Do you now have
> 80 shares at $10 + 50 shares at $20 (FIFO principle)
> or
> 100 shares at $10 + 30 shares at $20 (LIFO principle)
> or
> 90 x $10 + 40 x $20 or yet another way ?
> I don't know at all what would be correct or legally allowed in different
> parts of the world. The first two options seem reasonable.
>
> I think John has looked at this several times in the context of the Advanced
> Portfolio report so he may have more insights.
>
> However it looks like we have hit a topic that may benefit from a centralized
> set of functions that deal with valuation and that can be reused throughout
> the rest of the code.
>
> Geert
>
>



More information about the gnucash-user mailing list