Hi All The state of balsheet-pnl for now, imho is feature complete and has nicer well-documented internal functions. However I'm still stumped by various equity calculations, unsure how to emulate all combinations of trading/unrealized/realized gains/losses. JRalls has helpfully created some illustrative tests, but these would need plugging into the new balsheet which isn't immediately obvious. And for me to spend a few months getting to understand the formulas.
For this matter I wouldn't be keen to replace the current balsheet yet. I know some users are keen to maintain the current balsheet's calculations and I can't guarantee the new one will produce the same equity section. So, for now, the options are to add the multicolumn balsheet as a new menu item and seek user feedback about equity calculations, or leave it unmerged and unfinished, which is another shame. On Fri, 17 Aug 2018 at 21:20, Christopher Lam <christopher....@gmail.com> wrote: > Hi David > > I refer you to a prior discussion: > https://lists.gnucash.org/pipermail/gnucash-user/2018-June/077758.html > > I appreciate balance-sheet is a formal accounting report. The problem is, > as always, within the details. > > Initially I thought we could leave currencies unconverted. > > Then Geert reminded me *all* currencies *must* be allowed to convert to a > user-selected common-currency. Because a balance-sheet is really a > valuation of all of your assets, into a legal currency of your choice. The > price used must be either (1) actual transactional prices - either > average-cost or weighted-average - both terms whose exact definitions > currently elude me despite looking at code (2) from the pricedb - > latest/nearest. > (* PS what's the strategy if accounts are in EUR/USD/GBP, with plenty of > pricing data in these 3 currencies, but user prefers common-currency to be > JPY, and pricedb has EUR/USD, USD/GBP, GBP/AUD and AUD/JPY amounts? Answer: > Internal logic will try to find an intermediate pricedb pair, eg. > GBP->AUD->JPY at the nearest date available, and EUR/USD will result to 0 > JPY.... Except my report will convert GBP->JPY correctly and leave EUR/USD > in original currency <g>) > > The next issues are all to do with Equity: > > (1) trading-accounts are optional. As we know, trading accounts will > compute *REALIZED GAINS,* so that EUR>USD>EUR transfers at different > prices *must* result in a realized-gain recording. If the trading-accounts > are disabled, the current balance-sheet will make an attempt at computing > its own Realized Gains. It assumes the user hasn't recorded realized-gains > during currency conversions. IMHO There's currently a logic error if there > are trading-accounts in a book with book property trading-accounts > disabled. Moreover, if trading-accounts are disabled, and the user has > recorded but underestimated realized gains, I think the balsheet *should* > report the delta amount as unrealized-gains too??? > > (2) selection of a report common-currency must compute *UNREALIZED GAINS*, > e.g. if EUR/USD/GBP accounts are reported for balsheet in JPY, and JPY has > increased in value between transaction-dates and report-date, presumably > all amounts must increase? This is not proven correctly handled yet. I > still think there's an error - the Asset report-currency amount will use > the higher price, but the unrealized gains are not computed when > trading-accounts are disabled. > > (3) income and expense amounts are technically closed to equity on > balsheet-date but we don't enforce this, so, their difference must account > for *RETAINED EARNINGS* or some other similar heading. If user has closed > books correctly on balsheet-date, then the balsheet should report retained > earnings to be $0. > If anyone can help me, please do. Spreadsheets or formula sheets welcome. > Double-entry is all fun and games until trying to compute a balance-sheet! > The above, not an accountant yadda yadda. > > On 17/08/18 00:27, David T. wrote: > > Hi, > > I admit that I haven’t been following the details of thsi thread that > closely, but it would seem to me that if a user has selected price source > “Latest,” then the report will of necessity include an Unrealized Gains line > in order to balance, as John said. I agree with his suggestion that > Unrealized Gains might not belong in a Balance Sheet report, but I note that > as a personal user of GnuCash, I am rather interested in the current value of > my empire, ephemeral though it may be. I’m eager to see how rich I am Right > Now! Bwa Ha Ha Ha! > > Seriously, though, since “Balance Sheet” seems to be a commonly-used term in > accounting to refer to a particular general type of report and content (I > base this on the fact that Googling “Balance Sheet report definition” yields > numerous accounting websites with explanations of what a balance sheet is and > does), perhaps there could be a separately-identified and named report to > give the armchair trader the putative value of their holdings as of a given > date. Then the Balance Sheet could be dedicated to the real world situation > (i.e., no need for the PriceDB at all—just use the transaction prices), while > the new report could include unrealized gains explicitly. A descriptive name > (“Trade Value”? “Speculative Value”? “Castles in the Sand”?) could help make > clear the difference between the two. > > David > > > On Aug 16, 2018, at 7:30 AM, John Ralls <jra...@ceridwen.us> > <jra...@ceridwen.us> wrote: > > Chris, > > That’s because you used price source = “latest” which uses the most recent > price in the pricedb for the purchase as well as the valuation. > > Regards, > John Ralls > > > On Aug 16, 2018, at 12:58 AM, Christopher Lam <christopher....@gmail.com> > <christopher....@gmail.com> wrote: > > 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....@gmail.com > <mailto:christopher....@gmail.com> <christopher....@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 > > Liabilities + Equity + Retained Earnings + Trading Balances > 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 > <https://bugs.gnucash.org/show_bug.cgi?id=775368> > <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....@gmail.com > <mailto:christopher....@gmail.com> <christopher....@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 > <https://screenshots.firefox.com/RNvkjaxnYyxpGkYn/null> > <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.gnuc...@kobaltwit.be> > <geert.gnuc...@kobaltwit.be> <mailto:geert.gnuc...@kobaltwit.be> > <geert.gnuc...@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 > <Balance Sheet No > Trading.png><BalSheet-Trading.png><BalSheet-Trading-CapGain.png><BalSheetAvgCost.png> > > > _______________________________________________ > gnucash-devel mailing > listgnucash-devel@gnucash.orghttps://lists.gnucash.org/mailman/listinfo/gnucash-devel > > > _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel