QuickBooks Classes vs Projects: Which One Tracks Jobs?
Half the contractors I talk to are tracking jobs with Classes because somebody set their file up that way in 2019, and the other half turned on Projects and are not sure what Classes are still doing there. Both features slice your books — they just slice in different directions. Two minutes here saves a re-do of your whole file.
What Classes are for
A Class is a label you attach to transactions so you can filter the P&L by it. Classes answer segmentquestions: how did the remodel division do this quarter versus the handyman side? Is the Fort Worth crew profitable as a group? Run the P&L by Class and each segment gets its own column. Classes never close — a division is forever, which is exactly why it is the wrong container for a job that starts in March and ends in May.
What Projects are for
A Project is a container for one job: its invoices, its costs, its hours, its profitability panel. Projects answer job questions: did the Handley Street bathroom make money? Where is the Novak kitchen against budget? A project opens when the job starts and stops accumulating when it ends — which matches how contracting actually works. The full setup is in our QBO job costing walkthrough.
The decision table
| You want to know… | Use | Why |
|---|---|---|
| Profit on one specific job | Projects | That is the entire feature. One job, one container, one profit number. |
| Remodels vs. service work, this year | Classes | Segments persist across jobs and years; the P&L by Class splits them. |
| Which crew makes more money | Classes | A crew is a division, not a job — label each transaction by crew. |
| Bid accuracy on one specific kitchen job | Projects | Budget vs. Actuals lives on the project. |
| Both at once | Both | Tag the project AND the class on each line — the two do not conflict. |
Using both: one remodel company, worked through
Say you run two crews and do both full remodels and small service jobs. Set up two Classes — "Remodel" and "Service" — and create a Project for every job either crew takes. The Handley bathroom is a Project tagged Class: Remodel. A water-heater swap is a Project tagged Class: Service. At year end, the P&L by Class tells you the service side quietly ran a fatter margin than the remodel side — and each project told you which specific jobs carried it. Neither report could answer the other's question.
Put numbers on it: say the year closes with $410,000 of remodel revenue at 22% margin and $145,000 of service work at 31%. The P&L by Class is what surfaces that spread — and the projects underneath tell you the remodel number was really two strong kitchens carrying one bathroom that went sideways. Segment first, then job: that is the drill-down these two features were built to do together.
Setting each one up without regret
Classes:turn on class tracking in your account settings, then keep the list brutal — three to six classes that match how you would describe your business to another contractor. "Remodel, Service, New Construction" is a class list. "Remodel-2024, Remodel-2025, Bathroom-Remodel-Large" is a confession that jobs snuck in. Set QuickBooks to warn when a transaction saves without a class, or the report develops holes you will not notice until quarter end.
Projects: one per job, named in crew language, opened the day the contract signs and with a budget attached the same hour. When the job closes, mark the project complete — a tidy completed list is what makes the year-end which-jobs-carried-us review a ten-minute read. The full setup order is in the main QuickBooks job costing guide.
And if you run one crew doing one kind of work: skip Classes entirely. A single-segment business gains nothing from segment reporting — Projects alone is the whole system, and every field your crew does not have to fill in is a field that cannot be filled in wrong.
The classic mistakes
- A Class per job.The class list balloons to 300 dead entries and the P&L by Class becomes unreadable. Jobs close; classes do not.
- Sub-customers instead of Projects. The old workaround from before Projects existed. It still half-works and reports worse — migrate as jobs close.
- Tagging one and not the other. If you run both systems, a line missing its class (or its project) silently falls out of that report. Pick a rule: every line gets both tags, no exceptions.
- A project per phase.Splitting one remodel into "demo," "rough-in," and "finish" projects triples the tagging work and buries the only number that matters — the whole job's margin. One job, one project; phases live in the cost categories.
What neither one fixes
Classes and Projects are filing systems. Neither gets the receipt out of the truck. The jobs that blow their numbers do not fail in the filing — they fail at capture, the gap the main QuickBooks guide walks through. My worst one cost $7,500 on one bathroom — every receipt perfectly filed, except the ones that never arrived.
Job Cost Pro — my app, built after that bathroom — handles the capture half on the jobsite — snap the receipt, AI files it to the right job, GPS clock-in puts hours where they belong — then exports QuickBooks-ready files that drop into whichever structure you run. Free on the App Store — 3 projects, 50 receipts a month, no credit card. Get it here.
FAQ
Should I use Classes or Projects for job costing in QuickBooks?
Projects. Job costing means per-job income, costs, and profit, and Projects is the feature built for exactly that. Classes are for persistent business segments — divisions, crews, locations — not individual jobs that open and close.
Can I use Classes and Projects at the same time?
Yes, and many contractors should: a Project for every job, plus a Class for the segment it belongs to (remodel vs. service, crew A vs. crew B). Tag both on each transaction and you get per-job profit and per-division P&L from the same books.
Why not create a QuickBooks Class for each job?
Because classes never close. A class per job grows an unmanageable list of dead classes, and the P&L by Class was not designed to be a job report. Projects exist precisely so jobs get a container that opens, accumulates, and ends.
Where do QuickBooks Locations fit next to Classes and Projects?
Locations is a third label, meant for physically separate operations — a second branch or market. If you run one shop in one metro, skip it. Stacking all three labels on a small operation multiplies the fields a busy person can leave blank, and blank fields are how reports quietly rot.
Do Classes or Projects capture receipts from the jobsite?
Neither — both are labels applied to transactions that someone still has to enter. Field capture is a separate problem: either a disciplined same-day entry habit, or a jobsite app that scans receipts to the right job and exports clean files into QuickBooks.