[GNC] Account Types -- what are the implications of getting them wrong?

ml at tgr66.me ml at tgr66.me
Mon Feb 20 20:25:13 EST 2023


Thanks Jim for the reply.

> On Feb 20, 2023, at 15:49, Jim DeLaHunt <list+gnucash at jdlh.com> wrote:
> 
> It sounds like you are trying to answer two questions:
> 
> 1. How do you extract meaning from account name strings in incoming migration data, such that you can pick the appropriate GnuCash account type?

Ummm, sort of. Yes, I am asking myself that because I have to make decisions. But I was really providing the scenarios to help shape the reader's thinking about the implications.

Yes, the question I’m asking is in the subject line. I should have included it more in the body. I did ask specifically in the body though if there was "any negative implications of assigning too general of an account type to an account?” I’m inclined to err on the side of general and tell the user they need to review all of them and edit appropriately based on GnuCash’s documentation. But, it is still a good challenge to get them as close to right as possible.  

The decisions I’m making are naturally heavily influenced by my personal account and categories structure in Quicken along with my understanding about how GnuCash structures accounts and defines types. There are undoubtedly members of this mailing list who migrated data from some other app to GnuCash. They made decisions about account types, perhaps after creating their chart of accounts, and they may have found adjustments were necessary because something didn’t work as expected. I believe hearing that would be helpful to me and others. 

> 
> 2. What are the GnuCash account types, and what are their meanings (or, purposes, or semantics)?
> 
> I think question 1 is up to you. It is not a GnuCash question.
> 
> The place to start for question 2 is the GnuCash /Help/ documentation, 5.1. *Types of GnuCash Accounts*[1]. You might find it helpful to consult the notes about what kinds of child account type each parent account type accepts.  Missing from this page is the Trading Account type.
> 

I had read https://code.gnucash.org/docs/MAINT/group__Account.html#ga398c5d6f7a5127db7b81789e05262908 <https://code.gnucash.org/docs/MAINT/group__Account.html#ga398c5d6f7a5127db7b81789e05262908> but will make sure to go back and read section 5.1. I appreciate that you’ve highlighted that there can be child-parent mismatches as that is a real implication. I realize that if a user migrating to GnuCash using the tool I’m developing had a Credit Card under an Asset account, they could potentially have a problem. I’m using PieCash for my GnuCash writes, and I *think* it checks the parent-child rules, but I might want to test that.


> Trading accounts are described in the GnuCash /Tutorial and Concepts Guide/, 12.3. *Automatically Recording Currency Transactions using Trading Accounts*[2], and at wiki page *Trading Accounts*[3].
> 
> You might have to resort to reading the GnuCash code[4] to answer more detailed questions. I remember doing this once to clear up some of my own questions.
> 
> Your subject: line asks, "what are the implications of getting [Account Types] wrong?" I don't see you asking that in your message body. But as far as I know, the implication can be unusability if you get the account type very wrong (e.g. an Asset type for what should be an Expense type account), or inconvenience if you get the account type a little wrong (e.g. no option to add an interest payment during the reconciliation process if you assign a Liability type for what should be a Credit type account). Note that users can, within limits, change account types for a book which is in use. That limits the negative implications of migration software making the wrong choice of account type.
> 

Great comments. Thank you. I did notice oddities yesterday when I created a new book (GnuCash->File-New File) and created a full chart of accounts. In particular, in Investments. Under Retirement, Bond accounts have a type of Stock, so they have Shares/Buy/Sell, etc columns in the register. So those look okay (other than calling a Bond a Stock type, which feels odd to me). But as far as implications, I don’t see any issue. However, I realized this partially answers the question about implications of opting general vice specific. And this is reflected, I think, in GnuCash’s default account structure and types.

In the Bond, Market Index, Mutual Fund and Stock accounts under Brokerage Account are all type Asset while the latter is Bank. So I’m guessing the logic here is that *most* brokerage accounts have an associated sweep or bank account. But, Brokerage Account is a Placeholder so I didn’t think transactions would be recorded there. Admittedly, I may misunderstand so I’ll need to experiment. I do see that Buy/Fee/Sell show up as Actions in one of those registers.

My app’s logic today would assign the type Stock to an account with the word “brokerage” included. I’m now questioning this based on GnuCash’s default setup. 

So specifically, why does GnuCash’s default chart of accounts have the brokerage accounts as Assets while the retirement accounts are either Stock or Mutual Fund?

Thank you again.

Tim

> You are welcome to pose more specific questions to this list, if you like.
> 
> And, while reading the documentation you may come up with suggestions for improved documentation wording. I encourage you to propose those as pull requests, or to the gnucash-dev mailing list. Part of what makes GnuCash so good is that many hands help to improve it.
> 
> Best regards,
>      —Jim DeLaHunt
> 
> [1] <https://www.gnucash.org/viewdoc.phtml?rev=4&lang=C&doc=help>, temporarily hosted at <https://code.gnucash.org/website/viewdoc.phtml?rev=4&lang=C&doc=help> while www.gnucash.org's web server is offline.
> 
> [2] <https://www.gnucash.org/docs/v4/C/gnucash-guide/currency_trading_accts.html>, temporarily <https://code.gnucash.org/website/docs/v4/C/gnucash-guide/currency_trading_accts.html>
> 
> [3] <https://wiki.gnucash.org/wiki/Trading_Accounts>
> 
> [4] <https://github.com/GnuCash/gnucash>
> 
> _______________________________________________
> gnucash-user mailing list
> gnucash-user at gnucash.org
> To update your subscription preferences or to unsubscribe:
> https://lists.gnucash.org/mailman/listinfo/gnucash-user
> -----
> Please remember to CC this list on all your replies.
> You can do this by using Reply-To-List or Reply-All.

> On 2023-02-19 05:32, ml at tgr66.me wrote:
> 
>> The approach I’m taking in a migration app I’m writing will be conservative, erring on the side of more general vice more specific. For example, ASSET, LIABILITY, INCOME, EXPENSE, EQUITY are pretty easy to accurately apply based on account names (for example, “assets:current assets:cash”). In an initial round of type assignments, this account would get ASSET as its type. In a deeper subsequent look, it should be reassigned with a type of CASH.
>> 
>> INCOME, EXPENSE and EQUITY types don’t have sub-types I see, so those will be even easier. I don’t foresee any issues with those.
>> 
>> LIABILITY and CREDIT don’t appear too difficult as there just aren’t that many options. First I’ll assign LIABILITY and if the words “credit card” or “credit cards” exist in the rest of the account path, I’ll switch to CREDIT, otherwise, leave it alone.
>> 
>> Assets and Investments will be the trickiest. Let me start with Assets first.
>> 
>> Assume an imported account has the path and name of “assets:savings:family savings”. Getting this typed as an ASSET is pretty straightforward. Ideally, however, it would be typed as BANK.
>> 
>> Or SHOULD it? Perhaps this family puts its savings in old coffee cans under the back porch. So, I’d be inclined to leave this as ASSET. The user can change it, but are there any negative implications of assigning too general of an account type to an account?
>> 
>> However, if the name has the word “account” in it, well, then I’d be confident assigning a type of BANK.
>> 
>> Investment accounts will be the trickiest I believe. Heck, I’m not sure I understand the differences.
>> 
>> When I create a new account in GnuCash, I’m surprised at some of the assignments made when creating the hierarchy. For example, “Assets:Investments:Brokerage Account” is a placeholder with type of BANK. I would be inclined to assign any placeholder accounts a more generic type. In this case, ASSET. Again, are there any negative implications of me taking this approach?
>> 
>> Regardless, I will direct the user to review all of them once created in GnuCash to ensure they align with their exceptions, but are there consequences if I get them wrong?
>> 
>> And finally, TRADING. I don’t see any of those in the initial account list created when I make a new file. So, for now, I’ll ignore this. Is that okay?



More information about the gnucash-user mailing list