How do I set up job costing in QuickBooks Online for a general contractor?
QuickBooks Online can handle job costing for general contractors, but a default setup won’t get you there. The out-of-the-box configuration treats every business the same, which means you’ll get financial statements that show total revenue and total expenses without any visibility into whether individual jobs are making or losing money. Getting it right requires configuring several features to work together.
The foundation is sub-customers. Create a parent customer for each client, then add each job or project as a sub-customer underneath them. Every transaction you enter (bills from suppliers, subcontractor invoices, labor costs, material purchases) gets tagged to the specific sub-customer it belongs to. This is what allows you to pull profitability reports at the job level. If you skip this step, your books will show that you spent $14,000 on lumber last month but won’t tell you which jobs consumed it.
Enable the Projects feature on top of sub-customers. Projects give you a dashboard view of each job with income, expenses, and profitability in one place. It’s a useful visual layer, but it has real limitations for construction. You can’t run work-in-progress reports natively, and progress billing with retainage requires workarounds. Projects work best as a complement to sub-customers, not a replacement.
Classes are where you separate cost categories. Set up classes for labor, materials, subcontractors, equipment, and overhead. When you record a bill or expense, you tag it with both the sub-customer (which job) and the class (what type of cost). This lets you see not just total spend per job but how that spend breaks down. If materials are eating 60% of a job’s budget when you estimated 45%, you’ll catch it before the job is done instead of after.
Your chart of accounts also needs to reflect how construction companies actually operate. Cost of goods sold should break out into the same categories as your classes. Revenue accounts should separate contract income from change orders. Retainage receivable and retainage payable need their own accounts. A generic chart of accounts lumps everything together and hides the details that matter.
For estimated vs. actual tracking, enter your job estimates into QBO so you can compare budgeted costs against actual costs as work progresses. This is the core of construction job costing and it’s what tells you whether a job is on track or heading toward a loss. Without estimates in the system, you’re just recording history instead of managing profitability.
The honest reality is that QBO has limits for contractors. It doesn’t produce WIP schedules, which banks and bonding companies often require. Percentage-of-completion reporting takes manual work outside the system. And if you have dozens of active jobs with complex billing structures, you’ll feel the friction. But for most general contractors running a manageable number of projects, a properly configured QBO file handles the job.
The configuration is the hard part. Most contractors who set this up themselves miss pieces, and those gaps compound over time into reports that don’t match reality. If you’re handling construction job costing in Phoenix and want QBO done right from the start, it’s worth having someone who understands both the software and how GCs actually run their business do the initial setup. Getting it right on the front end saves months of cleanup later.
Your Valley of the Sun Bookkeeper
The Next Step:
A Quick Conversation
Tell us what's going on with your books. We'll listen, ask a few questions, and give you a clear quote with no surprises.
More Questions
How do I account for subcontractor payments and ensure 1099 compliance on construction jobs?
Set up each subcontractor as a 1099-eligible vendor in QBO before you pay them, and code every payment to the correct project. Collect W-9s upfront, track retainage as a separate liability, and file 1099-NECs by January 31 for any sub paid $600 or more.
Read answerWhat is AIA billing and how do I record G702/G703 pay applications in my books?
AIA billing is the standard progress billing format used in construction, built around the G702 Application for Payment and G703 continuation sheet. Record the full application amount as revenue, track retainage as a separate receivable, and keep change orders as distinct line items so your financials reflect your true position on each project.
Read answerHow do I track retainage in QuickBooks for construction projects?
QuickBooks Online doesn't have a built-in retainage feature. You need to create a Retainage Receivable account and a Retainage Payable account, then use line items and journal entries at each billing cycle to track what's being withheld.
Read answerWhat is the difference between overbilling and underbilling on a WIP schedule?
Overbilling means you've billed more than the work you've completed, and it shows as a liability. Underbilling means you've done more work than you've billed for, and it shows as an asset. Both are tracked per project on a WIP schedule.
Read answerShould my construction company use cash or accrual accounting for tax purposes?
Most construction companies under $29 million in average annual gross receipts can use the cash method, which defers taxes. But cash basis hides true job profitability, so many contractors benefit from accrual-style reporting internally even if they file taxes on a cash basis.
Read answer