[GNC-dev] New balsheet (and P&L report), API considerations, and (slow?) KVP in Account.cpp
Christopher Lam
christopher.lck at gmail.com
Thu Aug 16 03:58:56 EDT 2018
Hi John
Just to be a pain again... I found a small discrepancy - (This is
different from the previously noted missing-capital-gains situation)
* if trading-accounts are enabled,
* a single 100AAPL purchase @ $100 each dated 01/01/18
* a new increased price $200 on 01/06/18 is recorded,
* price-source is 'latest' to pick up the new price
There's no trade sale yet -- this means 'trading gains' is $0 -- indeed
the book will not have any Trading accounts yet.
I'd expect the balance-sheet to record the increased price as
'unrealized gain'.
Yet the balance-sheet just displays an increased FUNDS valuation at
$20,000 (i.e. total assets = $20000) without a corresponding increase in
right-hand-side (ie total equity+liability=$10000).
I'd think the 'correct' balance sheet with trading-accounts enabled,
*should* still report Unrealized Gains, no?
On 13/08/18 22:51, John Ralls wrote:
>
>
>> On Aug 12, 2018, at 10:04 PM, Christopher Lam
>> <christopher.lck at gmail.com <mailto:christopher.lck at gmail.com>> wrote:
>>
>> Hi Jralls
>>
>> So just wish to double check my understanding of gnucash's data
>> format for a balance-sheet on date X
>>
>> There are two possibilities for displaying the right-hand-side
>>
>> 1. Liabilities + Equity + Retained Earnings + Trading Balances
>> 2. Liabilities + Equity + Retained Earnings + Unrealized Gains
>>
>> "Retained Earnings" should be NULL if the user has properly closed
>> the books on the balance sheet date X.
>>
>> In my understanding, "Trading Balances" and "Unrealized Gains" are
>> one and the same -- in balance-sheet.scm the
>> unrealized-gain-collector is only populated if book->trading-accounts
>> setting is disabled. (btw this causes a 'bug' whereby a book with
>> 'enable-trading-accounts', but was later switched to
>> 'disable-trading-accounts' will then add both the
>> unrealized-gain-collector and the trading-balance the right-hand-side).
>>
>> This seems to be deconstruct current balance-sheet?
>>
>> (I can't seem to find any unrealized-gain issue... from using
>> different price-sources... perhaps this is beyond my understanding.)
>>
>>
>> On 11/08/18 22:41, John Ralls wrote:
>>> Chris,
>>>
>>> Remember that we’ve long advised users that they need not close
>>> their books, they can run a balance sheet report for any day. IMO
>>> removing that capability would be a major breakage.
>>>
>>> I suspect that you needed to use trading accounts because you didn’t
>>> book the trading gains and losses as income. Users should do that
>>> regardless of using trading accounts and doing so should make it
>>> unnecessary for the balance sheet report to include trading accounts.
>>>
>>> Unrealized gains are another matter entirely and are a result of
>>> using prices from the price database instead of actual cost from the
>>> transaction data. IMO the balance sheet report shouldn’t be taking
>>> prices from the price db and shouldn’t be able to see unrealized
>>> gains, but if price source is going to be an option then an
>>> unrealized gains line flows from that so that users don’t waste a
>>> bunch of time chasing an imbalance caused by price differences.
>>>
>>> https://bugs.gnucash.org/show_bug.cgi?id=775368 is related because
>>> that’s currently how the balance sheet report gets the “actual” costs.
>>>
>>> Regards,
>>> John Ralls
>>>
>>>> On Aug 10, 2018, at 11:40 PM, Christopher Lam
>>>> <christopher.lck at gmail.com <mailto:christopher.lck at gmail.com>> wrote:
>>>>
>>>> Hi John
>>>>
>>>> I've managed to make the left-side (activa?) match the right-side
>>>> (passiva?)
>>>>
>>>> https://screenshots.firefox.com/RNvkjaxnYyxpGkYn/null
>>>>
>>>> 1) it does require closing books on the balance-sheet date
>>>>
>>>> 2) it does require adding trading-accounts
>>>>
>>>> The existing balsheet introduces/calculates the "Retained
>>>> Earnings", "Trading Gains" and "Unrealized Gains", whereas the
>>>> current iteration of new-balsheet will not.
>>>>
>>>> To me this is the easiest method to ensure both sides produce the
>>>> same total, and is now technically correct - if the user has not
>>>> closed their books, the balance sheet won't balance.
>>>>
>>>> This is giving me a headache :(
>>>>
>>>> Should a new balsheet calculate and report these '(fake) retained
>>>> earnings', and 'unrealized gains' ???
>>>>
>>>> C
>>>>
>>>>
>>>> On 09/08/18 08:32, John Ralls wrote:
>>>>>
>>>>>> On Aug 8, 2018, at 8:51 AM, Geert Janssens
>>>>>> <geert.gnucash at kobaltwit.be> wrote:
>>>>>>
>>>>>> I haven't been following every detail of this. However I note on
>>>>>> most balance
>>>>>> sheets the total assets doesn't match total net worth (or
>>>>>> liabilities/equity).
>>>>>> In most, this is fixed by including the retained earnings.
>>>>>>
>>>>>> I believe at least in most European countries the "left hand
>>>>>> side" (Assets,
>>>>>> Active) and "right hand side" (Passive or liabilities + equity)
>>>>>> of the
>>>>>> multicolumn view should balance (it's called balance sheet for a
>>>>>> reason).
>>>>>> That would suggest retained earnings does have to be part of the
>>>>>> balance
>>>>>> sheet.
>>>>>>
>>>>>> However I'm not an accountant and perhaps your book is slightly
>>>>>> contrived so I
>>>>>> don't know the exact answer here.
>>>>>>
>>>>>> As for the "multi-column" vs one column debate, both present the
>>>>>> same data.
>>>>>> The only difference is visual representation or style.
>>>>>>
>>>>>> As of recently I have become a strong proponent of separating
>>>>>> structure (or
>>>>>> accounting functionality in a different context) from style, I
>>>>>> think this
>>>>>> should be delegated to the realm of css. This particular layout
>>>>>> variation can
>>>>>> IMO be handled by making divs for each large group and either let
>>>>>> them follow
>>>>>> normal flow or use float to move them next to each other. If you
>>>>>> will you can
>>>>>> have a European style sheet and an American one, or an Australian
>>>>>> or whatever.
>>>>>>
>>>>>> As for "categories", I read Frank's earlier reply as if he agreed
>>>>>> that at
>>>>>> least for now the account organization is something to be done in
>>>>>> the CoA, not
>>>>>> in report code.
>>>>> The Balance Sheet is indeed supposed to balance, but in normal
>>>>> practice it balances only when the book is “closed”, i.e. when all
>>>>> of the income and expense accounts are summed up and added to
>>>>> Equity. In US corporate books the cumulative total of income and
>>>>> expenses lives in an Equity account called “Retained Earnings”.
>>>>>
>>>>> In the pen-and-paper days a “Trial Balance” was computed outside
>>>>> of the books before closing as a way to catch errors before making
>>>>> the closing entries and writing the formal Balance Sheet.
>>>>>
>>>>> GnuCash's existing Balance Sheet Report creates the “Retained
>>>>> Earnings” line so that one need not close the books (Tools>Close
>>>>> Book) in order to get a balanced report. Removing that feature
>>>>> might be more formally correct but it would mean that users would
>>>>> have to close their book before running a balance sheet. That
>>>>> would be a big change and I don’t think that we want to do it. On
>>>>> the other hand “Retained Earnings” isn’t the right term for many
>>>>> cases, so it would be a useful improvement to make it configurable.
>>>>>
>>>>> There’s a second problem with the current report as well: If the
>>>>> user does close their books periodically they’ll have an account
>>>>> for the accumulation that may well be called “Retained Earnings”.
>>>>> The Balance Sheet Report will dutifully report the contents of
>>>>> that account and, if there are income and expenses after the last
>>>>> close, add a second “Retained Earnings” line. That looks a bit odd
>>>>> and might be confusing; ISTR we’ve had comments on the user list
>>>>> about just that.
>
> Chris,
>
> To demonstrate the price difference on assets creating an “Unrealized
> Gain” line, I created a fake account with Trading Accounts off and
> purchased on 1 January 100 shares of a stock for $100, then created a
> new price for the stock of $200. The resulting Balance Sheet report is
> the first screenshot below. Price source is set to “nearest in time”.
>
> I repeated the process in a new book with trading accounts enabled and
> got the second screenshot. As you pointed out, the “Unrealized Gains”
> line changes to “Trading Gains”. Selling the stock made no difference
> on the report unless I also booked the 10,000 gain to Income:Short
> Term Cap Gains, after which the calculated line became “Retained
> Earnings” as illustrated by the third screen shot.
>
> I went back and did the sale on the non-trading-accounts book and
> found that indeed “Unrealized Gains” didn’t change after I sold the
> stock; that’s wrong, it’s a realized gain at that point. Booking the
> gain to Income changed the line to “Retained Earnings” as it did with
> trading accounts enabled and as expected.
>
> Finally, to illustrate the effect of price source I removed the sell
> transaction and changed the price source in report options to “Avg
> Cost”. The result is the last screenshot, showing the stock at book
> value and the “Unrealized Gains” line at 0.
>
> Regards,
> John Ralls
More information about the gnucash-devel
mailing list