Class Tracking in QuickBooks® – A Rarely Understood, Awesome Feature

Using “Classes” in QuickBooks to Track: Locations, Projects, Divisionsquestion

If you need to keep track of your income and expenses by department, location, property, project or event, using classes in QuickBooks might be for you.  You can also track your Balance Sheet by class, but it can be problematic.

First, let me say this: I do NOT recommend class tracking with classes representing your jobs for job-costing, you should always use Customers/jobs for job-costing, and you can learn more about that here: However, I do recommend classes to some of my job-costing clients for either tracking different types of revenue and costs or for workarounds.

What Are Classes?

When you use classes in QuickBooks, in addition to item or account, you can also assign a class to each transaction.  Then, you can run a Profit and Loss report by class, and even filter reports like Accounts Receivable and Accounts Payable reports by class. 


–          A landscaping business with a Maintenance and Installation division that would like to track the profitability of each division separately

–          A Non-Profit that needs to track income and expenses by grant, event or project.

–          A Sole-Proprietor who uses one account for both business and personal expenses (I which I recommend against, but some insist on doing)

–          A business with 2 or more locations, who uses the same company file to track the profitability (and/or A/R, etc.)

–          Property management, to track the income and expenses for each property

Class Tracking Best Practices

Be careful not to duplicate the Chart of Accounts with classes – What I caution against, and I’ve noticed people tend to do, is the practice of using classes as a duplicate to the Chart of Accounts.  Your classes should be completely different from your COA.  I see this mistake happen most often in businesses that use classes to track projects or events.  They aren’t sure where to track expenses that don’t apply to a project or event, and feel the need to assign something meaningful.  In most cases, I recommend assigning a class to every transaction, but it’s ok to lump many into a generic class.  I’ll talk about this next.

Assign a class to every posting transaction – I recommend assigning a class to every posting transaction, because otherwise, it will be difficult to tell if you have forgotten to assign a class to something important.  What I usually do is have a class called “Overhead” or “Project Allocation” for transactions that do not apply to what I am specifically tracking.  If you need to fit everything into a specific class, you always have the option of “splitting” out things like overhead expenses and assigning a class per line item.

Use classes on “posting” transactions – Some people are confused about which transactions they need to assign a class to.  Notice, I recommend assigning a class to every “posting” transaction.  Assigning a class to non-posting transactions doesn’t hurt anything, but isn’t necessary.  For instance, when you use an invoice to bill your customer for products or services, the invoice is the posting transaction, and you need to assign a class to the invoice and/or the line item on the invoice.  The related payment receipt and the deposit are not posting transactions for the expense.  If you use the deposit form directly to post your income, without an invoice or sales receipt, in that case, the deposit IS the posting transaction and you need to assign a class.  It’s the same with bills vs. checks.

Run a Profit and Loss Unclassified report – Depending on the reporting purpose and number of classes, instead of running the “Profit and Loss by Class”, you may prefer to create a P&L Report, filter by the class, and for each one, memorize it.  It’s important either way, assuming you assign a class to every posting transaction as I recommend, to make sure all of your transactions are assigned to a class before creating your reports.  It’s easy to miss some.

Classes can be useful for workarounds – I have also used classes in several workaround scenarios.  It’s something to keep in mind if you should need another “tier” of reporting in addition to account or item.  For instance, I use classes to track pre-paid and unearned income for events.  I have just one liability account called “Unearned Event Income”, yet my client is collecting unearned revenue for several projects at once.  I assign each transaction a class, and then create a custom transaction detail totaled by class so that I can move the unearned revenue to income when the event is over and the income has been earned.  I’ve also used classes to get vendor names on time and material billing to show up for contractors by setting up vendors as classes, assigning the vendor name as the class on the bill entry and editing my template so that the “class” (vendor name) will show on the customer’s invoice.

Balance Sheet by Class – In QuickBooks versions 2011 or later, you can also run a Balance Sheet by Class report.  It’s definitely quirky – QuickBooks says it is an “advanced report” and that you may experience “some unexpected results” that require a strong background in accounting and QuickBooks to fix.  An example of some “unsupported transactions” is: Journal entries with unbalanced classes, Paychecks allocated to multiple classes, Payroll liability payments and Sales Tax payments.  If you really need a Balance Sheet by Class report, I recommend studying QuickBooks help – search “balance sheet by class” to learn more.

Turning on Class Tracking

Turning on the class tracking feature in QuickBooks is easy.  From the Gray menu bar, click Edit – then Preferences – then click Accounting from the menu, the Company Preferences tab, click the box next to “use class tracking”.  Turning on this feature will not in any way affect your current reporting or previous transactions.  It will simply add a column to your transactions that will allow you to assign a class.  In order to assign a class for each line item on sales transactions, you may need to edit your templates to show this column.  If you run payroll in QuickBooks, you’ll also need to set the preference per paycheck or per earnings item under the “Payroll and Employees” company preferences.

Assigning Classes to Historical Transactions

The good news is – if you have the Premier Edition of QuickBooks (2011 or 2012), and have it installed (or re-install it) as the Accountant’s version, you can quickly re-classify your transactions in a spreadsheet type format using the Accountant Center.  This could save you a significant amount of time, and I would say is possibly worth purchasing the program if you are really going to re-classify a lot of transactions.   When assigning classes to historical transactions that have already been reconciled, be especially careful not to inadvertently change anything else about the transaction, aside from adding the class.

Although I rarely use it, I am very grateful for the class tracking feature in QuickBooks.  I hope you find this information helful in your decision to use classes for your business, and in your understanding of how it works.

Love to learn more about Job Costing in QuickBooks for Contractors?  Get one on one training and support from Penny Lane, Check out my free QuickBooks for Contractors Training Videos like my Facebook page for the latest Tips and Tricks: and don’t forget to subscribe to  my Youtube channel