QuickBooks style Classing in ERPNext

Different businesses have different needs for managing their accounting, conceivably by some subset or combination of Cost Center (a business function), Project (an isolate-able transaction or series of transactions, most often related to a single customer) or Department (overlapping with Cost Center, but in a working definition, more focused on the human aspect than business function).

For all the things I dislike about QuickBooks, their classing system seems to be superior to ERPNext’s Cost Center system, though I think this could be improved, simply by adding it to this grid:

Cost Center is currently buried in the Item Details, which means this is possible to do, but is a poor workflow.

Here’s an example of a QuickBooks P&L by class


In the case above it’s actually more analogous to Project than Cost Center, but you can imagine. Here’s a better example:


The use case that I got the most power out of was using classing to mark transactions between two businesses with the same owner; this allowed me to see what the costs to produce , how much COGS and labor were getting shunted into products that were sold at another location. Both locations had the same problem but in reverse and it was very hard to track departmental profitability and markups independently without it.

So, by combining the concept of class and the tree-structure of Cost Centers, I think you end up with a better solution.

Is making this a more robust feature of interest to the community?

Would it help you to be able to pick cost centre on a transactional basis? i.e. if you raise an invoice you can pick the default cost centre on that sales invoice?

If this helps we developed a patch on which you can choose default cost centre and warehouse.


1 Like

Can you share the patch?


Yes, I think this another way of saying what I’m after. For additional clarity, ‘transactional’ == per item, per invoice.

Thanks for sharing the default patch. Would you describe this as “defaults to the same every time” or “remembers what you did last time”? QuickBooks does a decent job with “remembering” as well.

You can actually make it default

Transactional = Per invoice

Here’s the use case for classing at the Item level:
I have an invoice from a supplier that has 20 items on it, 5 of which are for the produce department and 15 are for the grocery department. These departments have different managers, different inventories and different labor costs.

Exactly. In this case, cost centers per line within the invoice would be the appropriate thing (which is what it is today).

With regards to your initial question, yes this is a desirable feature and us more a constraint of the available reporting layouts than of the way the transaction is booked. Basically, reports need to provide the ability to split values by a specified dimension the way one would do with a pivot in excel.

1 Like

+1 We agree.