QuickBooks for Contractors
How do you use QuickBooks for a construction company?
Short answer
Set up every job as a project, use products and services items as your cost codes, keep classes or locations for divisions or branches (not for jobs), bill from an estimate with progress invoicing, hold retainage in its own balance sheet account, and read profit by project every month. In QuickBooks Online, projects, class tracking and location tracking need the Plus or Advanced plan, and project estimates with estimates vs. actuals need Advanced.
QuickBooks for contractors works well when it's set up around the job, not around the bank account. Most construction files we're asked to fix were opened the generic way and never reshaped, so every bill lands in one "materials" account and nobody can say which job made money. Here's the setup we use for contractors doing $1 million to $5 million a year in QuickBooks Online, in the order we build it.
1. Which QuickBooks Online plan does a contractor need?
Pick the plan from the features, not the price. Intuit lists projects, class tracking and location tracking for QuickBooks Online Plus and Advanced. Project estimates, and the estimates vs. actuals comparison on the project dashboard, are available in QuickBooks Online Advanced. If you run fixed-price jobs and want to see budget against actual cost inside QuickBooks, that points to Advanced. If you need job profit and division reporting without the budget comparison, Plus usually covers it.
2. How do you set up jobs as projects?
Turn projects on under Account and settings > Advanced, with the setting Intuit calls "Organize all job-related activity in one place." Then create one project per contract under the customer who's paying for it. From that point, every transaction that belongs to the job picks the project: estimates and invoices in the Customer field, and bills, checks and expenses in the Customer/Project field. The project then tracks income and costs for that job, so you can check its profitability at any point. The rule we give office staff is simple: if a cost is for a job, it doesn't get saved without a project.
3. How do you use items as cost codes?
In QuickBooks Online, your cost codes live in Products and services. Create each phase of work as a Service or Non-inventory item, tick "I purchase this product/service from a vendor," and give it both an income account and an expense account. When a bill is entered against the item and the project, the cost lands on the right job, in the right phase, in the right account. Keep the list short enough that a field supervisor can code a receipt without a cheat sheet. We explain how to pick the codes themselves in construction cost codes.
| Item (cost code) | Type | Expense account | Income account |
| 01 General conditions | Service | Job cost: general conditions | Contract revenue |
| 03 Concrete | Non-inventory | Job cost: materials | Contract revenue |
| 06 Framing labor | Service | Job cost: subcontractors | Contract revenue |
| 09 Drywall and finishes | Service | Job cost: subcontractors | Contract revenue |
| CO Change orders | Service | Job cost: materials | Change order revenue |
4. Should you use classes or locations?
Use them for the slices of the business that sit above the job. Class tracking is turned on under Account and settings > Advanced > Categories, and you choose one class per transaction or one per row. Intuit describes location tracking for different locations, offices, regions or departments of the same company. A common construction pattern is classes for divisions (residential, commercial, service work) and locations for branches, if you have more than one. What we don't recommend is using classes for jobs. Projects already do that, and doubling up means two places to get wrong.
5. How does progress invoicing work for construction billing?
Progress invoicing lets you bill one estimate across several invoices as the work moves. Turn it on under Account and settings > Sales with the setting "Create multiple partial invoices from a single estimate." Build the estimate from your cost code items so it mirrors your schedule of values, then use Convert to invoice each billing period. The Estimates & Progress Invoicing Summary by Customer report shows each estimate with the invoices billed against it, which is the quickest way to answer "how much is left to bill on this job?"
6. How should you track retainage?
Retainage is money you've earned and invoiced that the owner or general contractor is holding until a milestone or the end of the job. It shouldn't sit mixed into ordinary receivables, or your collections report will look worse than it is and your cash forecast will be wrong. We set it up so the invoice shows the full amount billed and the retainage withheld, the held amount lands in its own retainage receivable account, and a release invoice clears it at the end. Retainage you hold back from subcontractors gets the same treatment on the payable side. How it should hit income depends on whether your books are on the cash or accrual basis, so we test the setup against your basis before you send the first pay application. The accounting behind it is in retainage accounting for contractors.
7. Which reports show job profitability?
Start with the project itself: each project tracks the job's income and costs, and a completed project shows total income, total expenses and profit margin. On Advanced, the Estimates vs. actuals report under the project's Project Reports menu compares what you budgeted to what you've spent and earned. Run both monthly, not at year end, while there's still time to fix a job. Then take the project totals into a work-in-progress schedule so over and under billings show up on your financial statements. Our free WIP calculator shows the math for a single job.
What are the most common QuickBooks mistakes contractors make?
- Jobs set up as classes instead of projects, so job reports and division reports fight each other.
- Bills saved without a project, which quietly turns job cost into overhead and makes every job look better than it is.
- One catch-all materials account instead of cost code items, so there's no way to compare phases across jobs.
- Field labor left out of job cost, often the biggest cost on the job. Our labor burden guide shows what belongs in that number.
- Retainage buried in accounts receivable, so the aging report shows money as late that isn't due yet.
- Change orders billed but never added to the estimate, so the remaining-to-bill figure is wrong for the rest of the job.
- No monthly close. Bank and credit card accounts that aren't reconciled every month make every report above unreliable.
If your file already has some of these, it's usually fixable without starting over. That's what our QuickBooks cleanup and construction accounting work is for, and the first step is a free consultation.