I suggest you ...

Transaction Classifications

Corresponding Bugzilla item: https://bugzilla.gnome.org/show_bug.cgi?id=113772

While the account hierarchy allows each transaction to be assigned to a different sub-accounts, it would be useful to have classifications which apply to transactions accross sub-accounts. e.g. assume the following accounts exists


Classifications could be achieved by adding new level to each account


This can produce complex accounts structures especially if multiple currencies are involved.

474 votes
Sign in
Sign in with: facebook google
Signed in as (Sign out)
You have left! (?) (thinking…)
ghr shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →


Sign in
Sign in with: facebook google
Signed in as (Sign out)
  • uy2618 commented  ·   ·  Flag as inappropriate

    Totally agree. The Quicken/Intuit concept of categories and classes is what makes it so powerful. Gnucash would massively benefit from adopting a similar way of dissecting accounts. The alternative workarounds suggested by some, such as having multiple expense accounts such as Expense:Pharmacy for Family member #1, Expense:Pharmacy for Family member #2 and so on seem clumsy in comparison when it comes to producing clear reports, though multiple filterings with GC will (eventually) get you the same information.

  • Anonymous commented  ·   ·  Flag as inappropriate

    not really the place to explain this but accounts generally serve that purpose : "nature" and "class" of the transaction is the same thing:

    say i run an event and i want to track what i spent per event
    and per type of expenses, my accounts could look like this

    -revenu (fair of events)
    _ -Cash
    _ -Events
    __ -event ABC
    __ -event XYZ
    __ -gas
    __ -electricity

    you enter a revenu transaction that goes to "cash"
    from "cash" it goes to event ABC or XYZ then in goes to expenses

    shure you have to create an account for each event but that
    is how accounting works from my point of view.
    if you "insert" money into the venture just add an "equity" account.
    and "add money" there then put it into "cash" instead of renvenu->cash

    Note that from "cash" you can split your transaction into more than one "event" or from one event into multiple "expenses" this allows for tracking of say how much you paid electricity , and how much you spent into event ABC .

    now if you want to total electricity per event you would need to create a report that "groups by" on target account being electricity. but selecting data from the "event" account. this dives into reporting however and my knowledge of what is possible is limited but i would guess its very feasable

  • [Deleted User] commented  ·   ·  Flag as inappropriate

    @Anonymous 11-April-2018 - because it was never felt to be useful. It's not difficult to expand full-text-search to these fields, but it would be too annoying to allow arbitrary searching, e.g. "Filter all Desc containing 'Restaurant' and Memo containing '#vacation'" -- the limitation is that too many fields = too many options = developer burden. The equivalent that can be done for this arbitrary filtering is "Restaurant|#vacation' as a full text Desc/Notes/Memo regex filter.

  • Anonymous commented  ·   ·  Flag as inappropriate

    OMG!! I just discovered that I can create a transaction report from search results!! Unfortunately this report doesn't seem to differentiate between Credit and Debit (income & expense) accounts and simply adds everything together. I.e. Job income = $100, Job expenses = $20: Report shows Total Credits of -$120
    Can anyone point me to instruction on how to edit this report so that it will give me a useful total of $80? I'm happy to edit e-guile & scheme reports but don't understand them well.

  • Anonymous commented  ·   ·  Flag as inappropriate

    I just saw the GNUCash 3.0 manual - Absolutely LOVE the "Filter" Tab in transaction reports but why or why does it only allow filtering on description, notes, or memo!!! I need to filter by "Action" and "Num/T-Num". :'-(
    GNUCash has a fabulous Search Function that allows searching by almost anything why didn't you just copy that functionality to the transaction filter?
    I really do appreciate the hard work of developers and I want to say thank you for all that you do. Its just very disappointing to find the feature I've been waiting six years for doesn't apply to the fields I need it to :'-(

  • AdminGeert Janssens (Core Dev, GnuCash) commented  ·   ·  Flag as inappropriate

    @Devan to clarify: the hint to unlimited tagging refers to the future ability to define a filter based on the contents of a transaction's description, notes or memo field. So you could enter "tag" strings in either of these three fields and create a report to select only transactions matching one or more of these strings. It's rudimentary but should help you reach your goal.

    As for when: the developers are currently in the process of stabilizing the code in preparation of the 3.0 release. It's tentatively targeted for end of March of this year. If there are blocking issues by that time we may delay some more.

  • Devan Mardyks commented  ·   ·  Flag as inappropriate

    I really hope this feature gets added soon. I run an event company and I need a way to tag transactions for different events without having to create an endless number of accounts.

  • [Deleted User] commented  ·   ·  Flag as inappropriate

    I can confirm the upcoming Gnucash 3.0 will allow custom filtering of transactions in the default transaction report. So, you'll soon have unlimited #tagging opportunities!

  • DAVID SHARNOFF commented  ·   ·  Flag as inappropriate

    Rather than add "classifications", add a multi-dimensional tagging system. Allow users to add whatever tag categories they want.

    Then if I want to add both "class" and "client", I could do that and they would be independently chosen.

  • Leonard Will commented  ·   ·  Flag as inappropriate

    Yes, I agree that this is a mojor deficiency in GnuCash. Quicken allows each transaction, or split of a transaction, to be assigned to both a "Category" (which I use for the nature of the expenditure) and to a "Class" (which I use for the purpose of the expenditure, e.g. project or event). The report generator allows you to produce two-dimensional reports, with each row representing a Category and each column representing a Class - as well as providing horizontal and vertical totals. I do hope that some GnuCash developer will be able to provide that type of functionality.

    It's important for me because Intuit stopped selling Quicken in the UK after the 2002 version, and I fear that some update from Microsoft will make that version stop working, so I'd feel safer moving to GnuCash. I reaslise tht development effort is voluntary, and much appreciated, but it seems a pity not to be able to complete this functionality which would made a good program into a really comprehensive and excellent one.

  • LJP commented  ·   ·  Flag as inappropriate

    IMHO, this feature is a must, if GnuCash wants to stay at the forefront!

    In case, I (and others) do not understand how to use GnuCash correctly, could someone (i.e. a GnuCash expert) advise how to solve relatively simple real word issues, please?

    Lets say, I am an ordinary man who is organising event#1 and event#2. I made one purchase(transaction) and have one receipt, but this transaction includes multiple items (e.g. food and decorations) for both events. So the split transactions are set as transfers Assets:DebitCard1 -> Expenses:Food and Assets:DebitCard1 -> Expenses:Decorations. That keeps the books happy.
    (i) I want to keep it a single transaction, then it will be the same amount as in my bank statement (so I can easily reconcile it).

    (ii) I want to maintain tracking of how much money has been spend on food (i.e. Expenses:Food) and decorations (Expenses:Decorations)

    (iii) At the end of the year, I will have made, lets say, 100 events, and I will want to know how much money (in percentage) I have spend on food, petrol etc for each event individually (I do not want to put a tremendous amount of effort into this; otherwise I could well use an excel spreadsheet or write my own code in python, but I don't think it's wise to re-invent a wheel..).

    (iv) Using thousands of accounts (i.e from Expenses:Food:event#1 to Expenses:Food:event#99, and from Expenses:Decorations:event#1 to Expenses:Decorations:event#99) is not really an option, is it?? nor would be an option to use a reversed system (i.e. Event#1:food to Event#99:food etc.), as it would require to consistently create the same eventNames/ProjectNames or the same expense accounts (i.e. Expenses:Food, Expenses:Decorations etc)

    (v) Using Vendors and Customers do not seem to allow to assignt fraction of split transactions (i.e. a fraction of items on a single receipt) to different customers/vendors (e.g. event#1, event#2) while retaining expense type (e.g. Expenses:food, Epxenses:transport)

    (vi) I could have separate receipts for each event, but there are various benefits for purchasing multiple items at once rather than separately, for example, shipping costs.

    (vii) Now, of course, event#1 could actually refer to fixing a car, while event#2 could refer to Holiday2017, and event#3 could be someones birthday etc.

    Lack of this option is frustrating me so much, that I would happily move to another software, but I haven't found a free alternative yet.. Could someone recommend one, please ? (I've tried HomeBanks and KMyMoney - none of them really solves the problem!)

    Personally, I very much support explanations (why such classification is needed) by the following users (and I would like to hear a robust solution/work around that addresses the issues they have raised):
    Craig Lawson (Craig Lawson 2003-05-26 22:16:58 UTC)
    Vincent Dawans (https://bugzilla.gnome.org/show_bug.cgi?id=113772#c6),
    Kael Shipman (commented · March 30, 2016 22:20),
    Jeff Wiegley (https://lists.gnucash.org/pipermail/gnucash-user/2007-July/020873.html)

    Are we (those who strive for the orthogonal dimensions) misunderstanding something, or is this feature really so difficult to implement??

    I mean Craig Lawson raised this in 2003-05, that's 14 years ago! I don't think smartphones existed then, but now we have self driving cars.. :/

  • Anonymous commented  ·   ·  Flag as inappropriate

    what custom accounting program ? Did you write any custom code for GnuCASH or totally different accounting system.

  • Anonymous commented  ·   ·  Flag as inappropriate

    Hajo and Vincent are on the right track. I implemented this in a custom accounting program written for my company a few years ago. We settled on these three orthogonal dimensions:

    Traditional accounting of assets, liabilities, equity, income, expenses, and appropriate sub-accounts of each. This is useful for getting to a tax return, or knowing things like net income.

    In traditional accounting, we usually only do detail categories on expense accounts. This is probably just tradition. But also because it is difficult to do on things like assets and liabilities. But sometimes, it is very useful to know how much fuel, or electricity, labor, or materials went into a capital asset. By having separate categories for these, you can see how an asset breaks down, just as easily as we now determine how our expenses break down.

    These have more to do with accountability, job costing, etc. At the highest level, a project can be a separate business unit. At lower levels, it can be used as an alternative to traditional accounts (like having a separate project number for different bank accounts, all under Current_Assets::Cash). A project can track the assets in a property, or department. It can also contain expenses, all applicable to that property or department. It is really fun when you can build a separate budget for each project, and then track performance against a budget goal.

    Projects can benefit greatly from a hierarchical structure, like accounts. Categories can be hierarchical, but they work fine in a flat format too.

  • Kael Shipman commented  ·   ·  Flag as inappropriate

    I just wanted to add what I think is a very important note to this. In classic accounting, *what* you spend your money on has always been mixed with *why* you spent the money (for example, Expenses:Business:Dining and Expenses:Personal:Dining). Thus, I believe there are a few important steps to take:

    First, we need to shift the terms that we use to refer to aspects of the financial system so that they more closely resemble reality, and in so doing, we'll reveal that there's missing data: *why* we spent the money. What is classically termed the Chart of Accounts is more complicated than just that. It's really a structure that stores information about *what* our transactions are: What is money in a bank account? It's a liquid asset. What's money in a mutual fund? It's a long-term investment. What is an expense? It's a good or service, which may be part of a hierarchy of goods and services. Importantly, an expense is NOT a reason, and that's the whole point.

    This leads to the second to-do: We need to define a new structure, in this post referred to as "classifications", but perhaps more humanistically called "Funds" or "Budgets" that capture *why* we spent the money. Every split in a transaction should have one or more "Funds" or "Budgets" attached to it.

    Thus, when you purchase a meal on a business trip, you register a split in "Expenses:Food:Eating Out" and then mark 80% of that split as coming from your Business fund and 20% (maybe you treated yourself to a glass of beer or two and you don't think your company should pay for that) as coming from your personal fund.

    The last element of this is that reporting needs to be able to show *what* you spent your money on as a subset of *why* you spent the money. That is, you might view an expense report and see the visual equivalent of, "You spend an average of $300 per month on business expenses, of which an average of $32 are on Eating Out, $75 are on transport, $100 are on lodging [etc....]"

    If anyone is interested in this, please check out theoperationsinstitute.org and get in touch with me. I'm looking to build on the extraordinary work that the GnuCash team and others are already doing by creating a suite of tools geared specifically toward nonprofits.


  • AdminGeert Janssens (Core Dev, GnuCash) commented  ·   ·  Flag as inappropriate

    Thank you for your request. It's a variation of the currently most popular request to add categories or tags allowing to filter on something other than accounts only.

    On the other hand I also think you are using accounts the wrong way. Accounts shouldn't be named after the shop you're buying from but after the type of goods you are buying. You can use the Shop's name in the description or notes field instead.

    So the accounts in your example would be

    Then when you want to report all payments to ABC market, you can search from the account hierarchy on "Description" (or "Notes") "Contains" "ABC Market". And from the search ledger you can open an Account report if you like to print your results.

    Would that suffice for your needs ?

  • Anonymous commented  ·   ·  Flag as inappropriate

    I would love the ability to tag certain transactions and even accounts, and then exclude or highlight tagged items in reports.

    For example, I could record expenses that my parents pay for, and tag them as "Paid by Parents." Then, I could create a report that would show all of my expenses excluding the things my parents paid for.


  • Jesse commented  ·   ·  Flag as inappropriate

    I believe I have found an interim workaround!! You can use "Customers" to achieve classifications.

    Create two dummy customers: Property_Customer_1 and Property_Customer_2
    Give them special Customer Numbers such as "Prpty_1" and "Prpty_2" so that they are clearly separate from any real customers. You could even enter the addresses of each property if you wanted.

    Next you need to start entering your expenses using the business "Bill" function.
    Create three Vendors: Electricity, Water & Rates
    When you enter a bill for Property_1 enter the Customer "Property_Customer_1" as the 'Default Chargeback Project Customer'
    If you want to further subdivide your classifications this is where Customer Jobs come in. Lets say you wanted to separate Utility Bills from Rates and also record Maintenance Expenses. You could create three Jobs for Property_Customer_1, and when entering each Bill assign it to that job.

    The best report I've found to date is the "Customer Summary" report because it shows income, expenditure, the % difference (labelled as markup), and the profit. It also allows you to select which accounts to sum as the income and which as the expense.

    If these are investment properties you could use the invoice feature to attribute income to the dummy customers

    One important note is that there is no way to DELETE a customer once you have created it! You can change every part of the customer, including the customer number, so if you create too many rename those you don't need to BLANK and change their customer number to 000000 or something similar, then the next time you want to create a new customer change one of these BLANK customer's instead.

    Hope this helps. :-)

    In my specific case as a stage performer and producer. I create a customer for each project/show, sometimes they are dummy customers but sometimes, such as when performing in a festival, they are real customers. In both cases I can see how much it has cost me to produce that particular show. If I'm producing multiple shows in a single festival I use a different Job for each one.

    I've also just discovered another workaround here: https://bugzilla.gnome.org/show_bug.cgi?id=113772#c6

  • Anonymous commented  ·   ·  Flag as inappropriate

    For example, I may have the following expense accounts:

    I would like to be able to create reports per project (e. g., what percentage is spent on various sub accounts), but also across all projects account (e. g., how much was spent on all engineering)

    Many thanks

  • Jesse commented  ·   ·  Flag as inappropriate
← Previous 1 3

Feedback and Knowledge Base