[GNC] Rethinking the placeholder account concept (was: Re: Fwd: The two modules)

John Ralls jralls at ceridwen.us
Fri Jun 29 23:37:28 EDT 2018



> On Jun 29, 2018, at 3:26 PM, Christian Kluge <frakturfreak at gmail.com> wrote:
> 
> Hi,
> 
> Am 29.06.2018 um 19:26 schrieb John Ralls:
>> 
>> 
>>> On Jun 29, 2018, at 9:52 AM, Geert Janssens <geert.gnucash at kobaltwit.be> wrote:
>>> 
>>> Op vrijdag 29 juni 2018 16:59:07 CEST schreef John Ralls:
>>>> Stock accounts need to have a parent denominated the currency in which the
>>>> stock trades in order for the asset roll-up to work correctly on the
>>>> Accounts page. Three-commodity transactions are possible using trading
>>>> accounts, but I haven’t dealt with that stuff in a while and the details
>>>> have gone fuzzy on me.
>>>> 
>>>> Stock accounts aside, let’s not conflate different purposes. We *should*
>>>> have an account type to accommodate the European Passive account with
>>>> Liability and Equity children, so let’s create that. We’ll need to tweak
>>>> some of the reports a bit to accommodate it, but otherwise it won’t have
>>>> much impact. It should, of course, be what we now call a placeholder and it
>>>> should be able to have only Root as a parent and only one each Liability
>>>> and Equity placeholder children.
>>>> 
>>> I was in fact deliberately trying to come up with a solution that's more 
>>> flexible than fitting the currently known use cases. The European Passive 
>>> account was just one example.
>>> 
>>> However we may be spending more time on it than necessary. I checked in the 
>>> current version of the commercial accounting package* I also have to deal with 
>>> and it doesn't define a Passive type at all. "Passive" it doesn't even appear 
>>> on its default balance sheet. That is a bit uncommon though as the reports I 
>>> get from my accountant do have a passive section. However just like gnucash 
>>> this package is targeting a worldwide audience (though with country specific 
>>> extensions). That may explain why they didn't bother adding the Passive 
>>> section.
>>> 
>>> Let me add that contrary to other accounting packages I have played with in 
>>> gnucash the chart of accounts takes a very central place. So whether or not we 
>>> want our own Passive type to group liabilities and equity hierarchically on 
>>> the chart of accounts as well is up for debate.
>>> 
>>>> I don’t think that creating a generic placeholder type account that can have
>>>> children of any type is a good idea,
>>> 
>>> Here's another example: a household that wants to  track its finances, but 
>>> would want to keep separate account hierarchies per family member. Standard 
>>> response: create two files. However they would benefit from common reporting 
>>> which is cumbersome with two separate files. So what if we would allow to 
>>> create two independent account hierarchies in one file. With a view type 
>>> account one could create two top-levels ("Husband" and "Wife") and create a 
>>> independent hierarchy for each. While this could also be solved if we would 
>>> allow multiple root accounts and make that root visible I'm using it here to 
>>> illustrate there are use cases we are not covering well.
>>> 
>>> I borrowed the idea of a view type account from an old version of the 
>>> commercial package* we have to use. Looking more closely it turns out the 
>>> current version has dropped view accounts and instead is organizing charts/
>>> reports using a combination of account type (roughly like we do) and 
>>> hierarchical account numbers. So I must admit perhaps the idea was not so 
>>> bright after all :)
>>> 
>>> The package also doesn't have a hierarchical account tree. It's flat and 
>>> hierarchy is only added in reports as explained above. So there is no such 
>>> thing as a parent account in that package and hence no restriction on which 
>>> account type a certain account can be.
>>> 
>>> Again in gnucash the chart of accounts is very central and visible so we 
>>> probably shouldn't drop its hierarchical structure just yet.
>>> 
>>> The downside of this hierarchical structure is then of course we have to think 
>>> about issues like  whether or not we should allow accounts to have any type of 
>>> child or not. I believe parts of gnucash rely on this (I seem to remember a 
>>> relatively recent issue in the export code that it didn't find all liability 
>>> accounts if they had a non-liability parent or such).
>>> 
>>>> and I think that we already have too
>>>> many overlapping account types with subtle behavior differences that are
>>>> neither documented nor easily discoverable in code.
>>>> 
>>> I'm all for clearing this up. If we can reduce the number of account types 
>>> that would be great. 
>>> For reference this is the list of 17 account types supported by the commercial 
>>> package*:
>>> Receivable, payable, bank and cash (one type), current assets, non-current 
>>> assets, prepayments, fixed assets, current liabilities, non-current-
>>> liabilities, equity, current year earnings, other income, income, 
>>> depreciation, expenses, cost of revenue, credit card.
>>> 
>>> Gnucash currently has 15 of which a few are internal only:
>>> Bank, cash, credit, asset, liability, stock, mutual, currency, income, 
>>> expense, equity, receivable, payable, root and trading.
>>> 
>>> 
>>> 
>>> The leftovers from this long discussion for immediate use may be summarized 
>>> as:
>>> - on reports display placeholder accounts once as aggregate account and once 
>>> as its own account if it has splits.
>>> - work to be more pedantic about the meaning of "placeholder". It should 
>>> become an empty account used for structuring the account hierarchy and for 
>>> collecting (sub)totals.
>>> - introduce a read-only status for accounts one doesn't want to accidentally 
>>> modify, but that should still appear in the chart of accounts in various 
>>> places
>>> - replace "hidden" combined with current "placeholder" with "inactive".
>>> - consider introducing a passive account type to be able to structure the 
>>> chart of accounts and reports conform European habits.
>>> - think of ways to have more than one chart of account in one file (only 
>>> mentioned first in this message).
>> 
>> There’s been an effort over the last several years between the IASB and the US’s FASB to reconcile IAS and US GAAP for the obvious reason that it’s a royal PITA for international businesses to have to present their books in different ways to different regulators. I discovered when looking for an IAS example CoA earlier today that it’s apparently come to fruition as IFRS and that the standard CoA doesn’t have a “Passive” super-category [1], so perhaps the rest of the world is catching up with GnuCash. ;-)
>> 
> 
> Not the whole world. Section 266 of the German HGB requires the balance
> sheet to split in active and passive and that’s how it’s displayed in
> every German accounting software.
> 
> https://www.gesetze-im-internet.de/hgb/__266.html <https://www.gesetze-im-internet.de/hgb/__266.html>
> 
> Also while you add it think about new account structures and the
> placeholder concept could you also consider the equivalents of the other
> types mentioned in the document above.


No surprise that individual country’s legislation hasn’t caught up. That will likely take several more years.

I don’t see any account types there other than the Active/Passive sections that GnuCash doesn’t already support. What I can’t figure out is what parts of the CoA small companies are allowed to leave out. (And no, my German isn’t good enough to thoroughly read the document. I used Google translate and so I may have gotten some of it wrong.)

Regards,
John Ralls





More information about the gnucash-user mailing list