AIStatements

· 9 min read · AIStatements editorial

QuickBooks Profit and Loss by Class: How to Run It and Fix It

Sample company

Generate statements from your own books · sample CSV

Software, not advice · Files parse in your browser, nothing is uploaded

Try it on a sample company, or upload your own CSV

To run a QuickBooks profit and loss by class, open Reports, choose Profit and Loss by Class, set the date range, and QuickBooks returns one column per class plus a column for transactions with no class assigned. In QuickBooks Online you must first turn class tracking on under Settings, Account and Settings, Advanced, Categories. The report only reflects what was tagged, so any amount sitting in the unclassified column is a coding gap, not a QuickBooks limitation.

Class tracking is how QuickBooks answers the question your P&L alone cannot: which part of the business made the money. Locations, departments, programs, revenue lines, properties, funds. Below is how to set it up so the report is usable, how to fix the unclassified column, the limits worth knowing before you commit, and how to turn the result into a statement pack somebody outside the business can read.

How do I turn on class tracking in QuickBooks Online?

Go to Settings (the gear icon), then Account and Settings, then the Advanced tab, then the Categories section. Switch on Track classes. Two options appear underneath and both matter. "Warn me when a transaction is not assigned a class" should be on, because it is the only thing standing between you and a large unclassified column at the end of the quarter. The second option lets you assign one class per transaction or one class per line item; choose per line item if a single bill ever needs splitting across programs or departments, which for most organizations it does.

Class tracking is available on QuickBooks Online Plus and Advanced. Simple Start and Essentials do not include it, which is the most common reason the menu path above appears to be missing. In QuickBooks Desktop the equivalent lives under Edit, Preferences, Accounting, Company Preferences, with a Use class tracking for transactions checkbox.

Decide what a class represents before you create any, and write the decision down. The frequent mistake is mixing dimensions: a class list containing both "Seattle" and "Consulting" produces a report where no column means anything, because a Seattle consulting job has to pick one. Use classes for one dimension and locations for the other. QuickBooks Online gives you exactly those two, so spend them deliberately.

How do I run the report?

From the left navigation choose Reports, then search for or scroll to Profit and Loss by Class under Business Overview. Set the reporting period, then use Customize to control what you actually get back. The settings worth changing are the accounting method (accrual unless you have a reason for cash), the comparison columns (prior period or prior year, so the report shows movement rather than a snapshot), and the rows and columns section where you can filter to specific classes.

Save the customized version. Click Save customization, name it something like "P&L by Program, monthly", and it appears under Custom reports so nobody rebuilds the settings each month. If a board or a client receives it on a schedule, set the email delivery on the saved report rather than remembering to send it.

Export to Excel or CSV from the export icon in the report header when you need the data elsewhere. The CSV keeps the class columns intact, which matters if the export feeds a statement pack or a functional expense grid downstream.

Class tracking options and what each one is for
SettingWhereRecommendedWhy
Track classesAdvanced, CategoriesOnEnables the report at all
Warn on unassigned classAdvanced, CategoriesOnPrevents the unclassified column growing
One class per rowAdvanced, CategoriesPer line itemLets one bill split across programs
Track locationsAdvanced, CategoriesOn if you need a second dimensionKeeps classes to a single meaning
Accounting methodReport CustomizeAccrualMatches how statements are prepared

Why does my profit and loss by class have an unclassified column?

Because those transactions were posted without a class. It is the single most common complaint about this report and it is always a data problem rather than a reporting one. Click the amount in the unclassified column to drill into the transaction list, then fix each one by adding the class and saving. The report updates immediately.

Certain transaction types are repeat offenders. Journal entries frequently get posted without a class, especially automated ones. Bank feed transactions accepted in bulk carry whatever the rule assigned, and rules created before class tracking was enabled assign nothing. Opening balance equity entries and transfers often have no meaningful class at all. Payroll imported from a third-party service usually needs its own mapping, and this is often the largest unclassified amount in the file.

To stop it recurring, set bank rules to assign a class, turn on the warning setting described above, and check the unclassified column as a standing item in the close. Our QuickBooks month-end close checklist has the wider list of checks worth running before you call a period closed.

What are the limits of class tracking?

The big one: QuickBooks Online does not produce a true balance sheet by class. There is a Balance Sheet by Class report in QuickBooks Desktop, but it is unsupported in Online and even in Desktop it produces unbalanced columns unless every transaction, including transfers and payments, was tagged consistently. If you need separate balance sheets per entity or per fund, you are looking at separate company files or a system built for multi-entity accounting.

The second limit is dimension count. Classes plus locations gives you two. Organizations wanting program, funder and geography at once run out, and the workarounds (sub-classes, naming conventions such as "Program:Grant") get unwieldy fast and break reporting when someone renames one. Nonprofits hit this hardest, since function and donor restriction are both mandatory dimensions in their reporting; our page on nonprofit financial statements covers what the functional presentation actually requires.

The third is that class accuracy depends entirely on entry discipline. Every bill, expense, invoice and journal entry has to be coded by whoever enters it, and the person entering vendor bills at speed is the weakest link. Pulling line-level detail off supplier documents with automated invoice data extraction rather than retyping it keeps the coding consistent, because the split is captured from the document instead of being reconstructed from memory.

How do I turn a P&L by class into a statement pack?

The class report is a management view, not a financial statement. Nobody outside the business reads a fifteen-column grid, and it does not include a balance sheet or a cash flow statement, so it cannot stand on its own for a lender, a board or a grantmaker. What those readers want is a conventional three-statement pack, with the class detail supporting it rather than replacing it.

Export the data and let the assembly happen automatically. AIStatements takes a QuickBooks export or trial balance and produces the income statement, balance sheet and cash flow statement together, tied to each other, with a plain-English summary of what moved and why. The class dimension carries through as segment detail where the export includes it, so the pack shows both the consolidated picture and the breakdown behind it. For the wider QuickBooks reporting workflow, see QuickBooks financial statements and running a QuickBooks profit and loss by month.

The practical rhythm most teams settle into: run the P&L by class during the month to steer, run the statement pack at close to report. One is a steering wheel and one is a document, and confusing them is why board meetings end up debating a spreadsheet instead of the business. Upload a QuickBooks export above to see the pack your own data produces.

AIStatements turns a bookkeeping export into a board-ready statement pack with the analysis written. Try the financial statement generator with a sample company, no account needed.

Keep reading

Walk into your next board meeting with the pack already done

Upload your bookkeeping export. Get the P&L, balance sheet, cash flow and the written analysis in about 60 seconds.

Encrypted in transit · We never sell your data