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
Expenses::Electricity
Expenses::Water
Expenses::Rates
Classifications could be achieved by adding new level to each account
Expenses::Electricity::Property1
Expenses::Electricity::Property2
Expenses::Water::Property1
Expenses::Water::Property2
Expenses::Rates::Property1
Expenses::Rates::Property2
This can produce complex accounts structures especially if multiple currencies are involved.
-
AdminGeert Janssens (Core Dev, GnuCash) commented
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
Payments:Food
and
Payments:HouseThen 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
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.
Thanks!!!
-
Jesse commented
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. :-)
P.S.
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.P.P.S.
I've also just discovered another workaround here: https://bugzilla.gnome.org/show_bug.cgi?id=113772#c6 -
Anonymous commented
For example, I may have the following expense accounts:
Project1:Engineering
Project2:Prototyping
...:...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
Tom -
Jesse commented
Have found two duplicate requests for this same feature:
http://gnucash.uservoice.com/forums/101223-feature-request/suggestions/1599121-allow-for-multiple-vendors-to-charge-to-a-job
http://gnucash.uservoice.com/forums/101223-feature-request/suggestions/1668975-improved-job-expense-invoice-tracking
I'm willing to contribute some $$ to getting this done, does anyone know to do that? -
Jesse commented
The "Jobs" feature would be ideal except that it currently (GnuCash 2.6.1) only allows you to group transactions for a "single vendor" or a "single customer". I want to group all the transactions for a single 'project'. Using Jobs would allow one to group all the Water bills for Property 1 and all Water bills for Property 2. But doesn't allow one to group all Water, Electricity and Rates for Property 1 together.
My specific case is that I'm a stage performer and producer. I would like to groups all expenses and income, associated with performing at a particular festival.
-
Darrryl commented
I think that it should be relatively easy to do by using the "jobs" feature. You can link invoices and bills to different jobs ( Rental unit 1 ; Rental unit 2, Dept 1 ; Dept 2.....) currently but you are only able to pull the one job report and it shows only income, no expenses. If the job report could be modified to allow the selection of expense accounts then a report could be generated with the expenses to compare with the revenue reported for the "job".
-
Gideon Adedokun commented
I have a technical business (say AB LLC) which has a number of departments/divisions e.g. AB Building & Construction, AB Electrical Engineering, AB Furniture, AB Technical School, etc. There are single revenue, expense, asset and liability accounts (it is just one business after all) but I will like to be able to report by department for performance management purpose. I hope the dimension/segment reporting feature is implemented ASAP.
-
Anonymous commented
For anyone really needing this feature, and not needing all the other advanced features of GnuCash, check out HomeBank, which is also FOSS: http://homebank.free.fr/
-
bthomson commented
DB: What do you mean by meta-accounts? This sounds like a solution that might help us sort multiple organizations, projects and expense categories. However I can't find any reference or help on setting up a project (you use 'property') as a meta-account. How do I do this to see if that's a solution for out accounting system?
-
DB commented
Are you talking about meta-accounts? For instance, you'd set up each property as a meta-account, so that if you enter 'Property1' as a sub-account anywhere in GnuCash, it is automatically classified as part of the 'Property1' meta-account... so Expenses > Electricity > Property1 and Expenses > Water > Property1 would both be part of the 'Property1' meta-account, and you could then tally all the data for the 'Property1' meta-account separately from other meta-accounts. Thus, you could get an individualized look at how each property is doing.
I have a similar idea, but using a spreadsheet to extract the data from GnuCash for each property. Two paths to the same ends. Not sure which would be easier to implement. -
Anonymous commented
My understanding is that this could be accomplished using fields or slots on transactions, and most of the frameworks is already there, just needs some new standard definitions and a lot of new UI, see http://gnucash.1415818.n4.nabble.com/What-the-use-of-slots-table-in-gnucash-with-mysql-td4656874.html. Perhaps this could be done in a plugin, but I don't know much about how plugins work with gnucash. Anyone know if there's been any work done on this?
-
Xavier Vidal Piera commented
There are times when you have payments to someone but for diferent reasons.
For example:
Buy food: pay 10EUR to "ABC Market".
Account: Payments::Food::ABC MarketBuy furniture: pay 65EUR to "ABC Market"
Account: Payments::House::ABC MarketAs you can see, there's two diferent accounts because the payments category are different, but the payee is the same.
So, if any day i want a report to now my expenses on one payee, i would like to select "ABC Market" (the first one, i.e.) and view all the payments due to them.
If "ABC Market" from Food is linked to "ABC Market" from House, the software can do the connection and aggregate the data.
Or maybe there's a better way to do what i want and you could show some light about it.
P.D: I'm a user from Microsoft Money and i'm trying to accomodate to GnuCash, specially in reporting.
-
JohnM commented
I'm familiar with a major commercial accounting system which has the concept of "Ledger Dimensions" similar to that mentioned by "Hajo". His proposal seems to me to be a professional and well structured approach to meeting this need.
-
Vincent Dawans commented
Yes I too would like to see this feature but wish we could call it for what it is to dispel misunderstandings.
What we are looking at here is features for analytical accounting: the ability to classify transactions along orthogonal dimensions that have nothing to do with the GL accounts.
As James points out, I give more detais about this in my post at https://bugzilla.gnome.org/show_bug.cgi?id=113772#c6
Here is another explanation about the difference between General accounting (what gnucash does very well) and analytical accounting (what gnucash does not so well):
- General accounting (or financial accounting) is for identifying the assets and liabilities of the business. It is managed using double-entry accounting which ensures that each transaction is credited to one account and debited from another.
- Analytical accounting (or management accounting, or cost accounting) is an independent accounting system, which reflects the general accounts but is structured along axes that represent the company’s management needs.Found here: http://doc.openerp.com/v6.0/book/3/3_7/index.html
-
James commented
Comment 6 on teh bugzilla form did a great job of clarifying this for me.
https://bugzilla.gnome.org/show_bug.cgi?id=113772#c6I have had a similar want when dealing with rental property. My original idea was a top level account that allowed for any type of sub-account (liability, expense, equity, asset, and income). Logically it is the same as how I understand the idea for categories.
My work around now is a separate GnuCash file for each rental property. This was fine when I only had one, but it could get ridiculous (I admit my work around is not as clever as others).
-
Rise-T commented
I've been waiting for an equivalent to Quicken's classes for years. This has been my prime reason for using Quicken instead of GC. I've tried various ways to circumvent my need for classes/tags in GC by changing my account structure, but all of them were pretty cumbersome, unnecessarily complex, and led to a lot of work. I was almost wondering if I was the only one with a need for this feature - which is obviously not true.
-
Hajo commented
I suggest a more general solution to this requirement: its called "Dimensions":
Dimensions
==============A "dimension" is an additional information on a split booking.
One split booking can have multiple dimensions (three normally should be enough).
Every "dimension" is a tree structure with root, branches and leaves.create table dimension (
dimguid char ( 32 ) primary key, // Global Unique Identifier
dimwhich smallint default 1, // Which dimension [1..3]
dimtype char ( 1 )
check ('R', 'N', 'L'), // Root, Node, Leave
dimname char ( 30 ), // Any name. Should be unique within same dim
dimno long, // Any number. Should be unique within same dim
dimparent char ( 32 ) // Reference to parent entry
references dimension.dimguid
);A split booking needs three additional columns for dimensions 1, 2 and 3. Column types are
references to the global unique ID of a dimension entry (dimension.dimguid).The root entry gets the name of that dimension (e.g. "costcenter").
This root names should be used for column headers when displaying or printing a split booking.Screens:
"Dimension-Management" similar to Account-Management with three root entries for the
three dimensions. Default names could be "dim 1" to "dim 3"."Journal" to be extended with three columns for the dimensions. Each one should be usable as
a filter to only display all transactions and/or splits containing references to a specific
dimension or even dimension entry. E.g.: only display/print all transactions which have at least
on split booking with a reference to dimension1. Something like:
"select ... where split.dim1 is not null..."
Also this display/print should be filterable by a time period.Additional functionality could be to restrict dimensions only to be used on split bookings
which have an account of type income or expense. Anyway this restriction has to be configurable
because it does not make sense for all kinds of uses.Questions? mailto:hlemcke@web.de
-
Bob Brush commented
Also on the Customer Summary Report there is an entry for "No Customer" this is the total of all entries that are not tagged. It can be a useful indicator of how valuable the rest of the report is.
-
Bob Brush commented
GnuCash does have a little known feature that can accomplish some of these scenarios, but it requires the use of the business features, and it is not documented so you are kind of on your own to figure it out. In the example above you would create an Electricity Vendor, and a Property Customer, then when you create a Bill for the Electricity Vendor, on the same box enter Property1 for the customer. Now on the Bill you enter the line whatever the charge is for, select the account Expenses:Electricity and the amount, then post the invoice. At this point we have "tagged" the expense while still in the proper account with the property. You can also enter rental charges and payments by creating an invoice for property1. It gets even better. After entering all the utilities, and the loan payment for the property1, and entering the rent charged you can run a report and determine the profitability of property1. Look in the Reports menu for Business and then Customer Summary. This report totals everything "tagged" by Customer and displays the total income, expenses, and the difference, including the %. You can sort the report by name, profit, expense, or income. You can also select or deselect expense and income accounts, to enable yet another degree of control, in the case of Income:Commercial Rent and Income:Residential Rent or whatever the case may be. There are also the concept of "Jobs" which are yet another subcategory under Customers, although I have not used this feature. In the future we may consider a report for jobs or extend the existing report.