How to Set Up QuickBooks for a Construction Company (Step-by-Step)
QuickBooks is the most widely used accounting platform among small to mid-size construction companies. It is affordable, accessible, and capable of handling the core accounting needs of most contractors. But a default QuickBooks installation — the one you get when you sign up and start clicking — is designed for general businesses, not construction. Without proper setup, QuickBooks will not give you job costing, retainage tracking, progress billing, or the project-level reporting that contractors need to manage their finances.
This guide walks you through exactly how to set up QuickBooks for a construction company. We cover everything from choosing the right version to configuring your chart of accounts, setting up job costing, tracking retainage, managing subcontractors, and building the custom reports that give you real financial visibility on every project.
QuickBooks Online vs. QuickBooks Desktop: Which Is Better for Construction?
Before you configure anything, you need to choose the right version. Both QuickBooks Online (QBO) and QuickBooks Desktop (QBD) can work for contractors, but they have meaningful differences.
QuickBooks Online
QuickBooks Online is cloud-based, accessible from any device, and receives automatic updates. It offers a Projects feature that allows you to track income and expenses by job, and it integrates with a wide ecosystem of construction apps and field tools. For contractors under $5 million in annual revenue running fewer than 15 active projects at a time, QBO is usually sufficient.
The advantages of QBO include real-time access from the field, easy collaboration with your bookkeeper and accountant, strong bank feed integration, and a growing library of construction-specific app integrations. The limitations include less granular job costing than Desktop, no built-in progress billing templates, and performance issues when transaction volume gets high.
QuickBooks Desktop
QuickBooks Desktop — specifically QuickBooks Desktop Premier Contractor Edition or Enterprise — was built with construction in mind. It offers more robust job costing, built-in progress billing (AIA-style), change order tracking, and deeper reporting capabilities. For contractors over $5 million or those doing bonded work that requires detailed WIP schedules and job cost reporting, Desktop is often the better choice.
The advantages include deeper job costing with cost code-level tracking, built-in progress billing and retainage features, more powerful reporting, and better handling of high transaction volumes. The limitations include being tied to a local computer or hosted server, manual backups, and a smaller ecosystem of integrations compared to QBO.
Which Should You Choose?
If you are a subcontractor or small GC under $5 million doing mostly time-and-material or lump-sum billing, QuickBooks Online with proper setup will serve you well. If you are a general contractor over $5 million, doing progress billing on larger projects, or working with bonding companies that require detailed financial reporting, QuickBooks Desktop Contractor Edition is the stronger platform. Either way, the setup matters more than the platform — a well-configured QBO file will outperform a poorly configured Desktop file every time.
Step 1: Set Up Your Chart of Accounts for Construction
Your chart of accounts is the foundation of your entire accounting system. In construction, it needs to separate direct job costs from overhead, track cost of goods sold by category, and support the project-level reporting that drives your business decisions. The default chart of accounts that QuickBooks creates is generic and will not work for a contractor without significant modification.
Here is a construction-specific chart of accounts structure to start with:
Income Accounts
- Contract Revenue — revenue from construction contracts
- T&M Revenue — revenue from time-and-material work
- Service Revenue — revenue from maintenance or service calls
- Change Order Revenue — revenue from approved change orders (can also be tracked within Contract Revenue by project)
Cost of Goods Sold (Direct Job Costs)
- Job Labor — direct labor costs allocated to projects (wages plus burden)
- Job Materials — materials purchased for specific projects
- Subcontractor Costs — payments to subcontractors
- Equipment Costs — equipment rental and owned equipment charges allocated to jobs
- Other Job Costs — permits, inspections, testing, dumpsters, and other project-specific expenses
Overhead / Operating Expenses
- Officer Compensation — owner and officer salaries
- Office Salaries — administrative and office staff wages
- Rent — office and yard lease payments
- Utilities — office utilities
- Insurance — General Liability
- Insurance — Auto
- Insurance — Workers' Comp (Overhead Portion)
- Vehicle Expense — company vehicle costs not allocated to jobs
- Office Supplies
- Professional Fees — accounting, legal, consulting
- Advertising and Marketing
- Depreciation
- Small Tools and Supplies — tools and consumables not charged to specific jobs
Balance Sheet Accounts
- Accounts Receivable — standard AR for invoiced amounts
- Retainage Receivable — retainage withheld by customers (must be separate from AR)
- Accounts Payable — amounts owed to vendors and subs
- Retainage Payable — retainage you are holding from subcontractors (must be separate from AP)
- Overbillings (Billings in Excess of Costs) — liability account for overbilled positions
- Underbillings (Costs in Excess of Billings) — asset account for underbilled positions
The most critical distinction in this chart of accounts is the separation between direct job costs (COGS) and overhead expenses. Every dollar that goes to a specific project should be categorized under COGS and coded to that job. Everything else — the costs of running the company that are not tied to a specific project — goes under overhead. This separation gives you your gross margin by project and your overhead rate, which are the two numbers that drive pricing and profitability decisions.
Delete or deactivate any default QuickBooks accounts you will not use. A bloated chart of accounts with dozens of irrelevant accounts leads to miscoding and confusion.
Step 2: Configure Classes or Projects for Job Costing
Job costing requires that every transaction is assigned to a specific project. In QuickBooks, you accomplish this using one of two features depending on your version:
QuickBooks Online: Use the Projects feature. Go to Settings, then select the Projects tab and turn on the "Organize all job-related activity in one place" option. Each construction project becomes a Project in QBO, and you assign transactions to projects as you enter them.
QuickBooks Desktop: Use the Customer:Job hierarchy. Each customer has sub-entries for each project. For example, "Smith Development" might have sub-jobs for "Smith Office Renovation" and "Smith Warehouse Build-Out." You can also use Classes to create an additional layer of categorization — for example, to separate commercial from residential work, or to track by division.
When creating projects or jobs, establish a consistent naming convention. Include the project number, a short description, and optionally the location. For example: "2024-015 Smith Office Renovation - Dallas" gives you the year, a sequential number, the project name, and the city. This makes it easy to find projects in dropdown menus and sort them in reports.
For each project, record the following information in the project or job record:
- Contract amount
- Estimated start and end dates
- Project type (commercial, residential, government, etc.)
- Project manager or superintendent name
- Status (active, completed, warranty, closed)
This metadata makes your project list a useful management tool, not just an accounting artifact.
Step 3: Set Up Customers as Projects
In construction, the relationship between customers and projects is different from most businesses. A restaurant has customers who buy products. A contractor has customers (property owners, general contractors, developers) who hire you for projects, and you may do multiple projects for the same customer over time.
Your QuickBooks setup needs to reflect this. In QBO, create the customer record for the entity (e.g., "Smith Development LLC") and then create individual Projects under that customer for each construction job. In Desktop, create the customer and add sub-jobs for each project.
On each project record, enter the contract details: the original contract amount, the billing method (fixed-price, T&M, cost-plus), and any retainage percentage. This information will drive your billing and revenue tracking throughout the life of the project.
Avoid creating a separate customer for every project. If Smith Development hires you for three jobs, they should be one customer with three projects — not three separate customers. This keeps your customer list manageable and lets you see your total exposure and payment history with each client.
Step 4: Create Items for Progress Billing and Retainage
Construction billing is more complex than standard invoicing. You are often billing based on percentage of completion, using AIA-style pay applications (G702/G703), and dealing with retainage on every billing cycle. QuickBooks does not handle this automatically out of the box — you need to set up the right items and workflow.
Progress Billing Items
Create service items that correspond to the line items on your contracts. For a general contractor, these might mirror your CSI divisions or your schedule of values:
- General Conditions
- Site Work
- Concrete
- Structural Steel
- Carpentry / Framing
- Roofing
- Plumbing
- Electrical
- HVAC
- Finishes
Each item should be mapped to your Contract Revenue income account. When you create a progress bill, you enter the amount completed for each line item during that billing period. Over the life of the project, the total billed across all periods should equal the contract amount plus approved change orders.
Retainage Tracking
Retainage is the portion of each payment withheld by the customer until project completion — typically 5 to 10 percent. You need to track retainage separately because it represents money you have earned and billed but have not collected. It is a receivable, but it is not due until a future date, so it should not be mixed with your regular accounts receivable.
Set up retainage tracking as follows:
- Create an item called "Retainage Withheld" mapped to your Retainage Receivable balance sheet account
- On each progress bill, add a negative line for the retainage amount (e.g., negative 10 percent of the current billing)
- This reduces the invoice total by the retainage amount, with the offset going to Retainage Receivable
- When the project is complete and retainage is released, create a separate invoice for the retainage amount, reversing the Retainage Receivable balance
On the payables side, do the same thing in reverse. When you pay subcontractors, withhold retainage and track it in your Retainage Payable account. When the sub's work is complete and you release retainage, record the payment against the Retainage Payable balance.
If you skip retainage tracking, your accounts receivable will be overstated (because it includes amounts not yet due), your balance sheet will be inaccurate, and your WIP schedules will be wrong.
Step 5: Configure Vendor Tracking for Subcontractors (1099 Compliance)
Subcontractors are your largest vendor category, and they come with specific compliance requirements. Every subcontractor you pay $600 or more in a calendar year needs to receive a 1099-NEC form. QuickBooks can generate these forms automatically, but only if you set up your vendor records correctly from the start.
For each subcontractor vendor record:
- Enter the legal business name exactly as it appears on their W-9
- Enter their Tax Identification Number (TIN) or Social Security Number from their W-9
- Check the box that marks them as a 1099 vendor (in QBO, this is the "Track payments for 1099" checkbox)
- Map the payments to the correct 1099 category (Box 1: Nonemployee Compensation for most subcontractors)
- Verify that the expense account used for sub payments is mapped in your 1099 settings
Collect W-9 forms from every subcontractor before you issue their first payment. Do not wait until January when 1099s are due — chasing down W-9s from subs who finished their work months ago is one of the most frustrating and time-consuming tasks in construction bookkeeping. Make it a requirement: no W-9, no first payment.
Keep a separate vendor record for each subcontractor, even if you work with the same sub across many projects. The payments to a given sub across all projects need to roll up into a single 1099 at year-end.
In QuickBooks Desktop, verify your 1099 settings by going to Edit, then Preferences, then Tax: 1099. In QBO, go to Expenses, then Vendors, and use the "Prepare 1099s" workflow to verify that your settings are correct before year-end.
Step 6: Set Up Bank Feed Rules for Construction Transactions
Bank feeds import your bank and credit card transactions into QuickBooks automatically, which saves time on data entry. But for a construction company, the default bank feed behavior is dangerous — it will suggest generic categories and will not assign transactions to projects unless you tell it to.
Set up bank feed rules to automate the coding of recurring transactions:
Rules for Overhead Transactions
Create rules for predictable, recurring expenses that are not job-specific:
- Office rent payments — automatically code to Rent expense
- Utility bills — automatically code to Utilities
- Insurance premiums — automatically code to the appropriate insurance account
- Phone and internet — automatically code to Telephone/Internet
- Software subscriptions — automatically code to Software/Technology
Rules for Job Cost Transactions
For job-related expenses, be more careful with automation. You can create rules for vendors you frequently purchase from:
- Home Depot, Lowe's, or local lumber yards — set the default account to Job Materials, but leave the project field blank so the bookkeeper must assign it manually
- Equipment rental companies — set the default account to Equipment Costs, require manual project assignment
- Fuel purchases — set the default account to Vehicle Expense or Equipment Fuel depending on your structure
The critical rule for construction bank feeds is this: never let QuickBooks auto-accept job cost transactions without manual review. Every transaction that should be coded to a project needs a human to verify the correct project assignment. Auto-accepting transactions leads to costs coded to the wrong job or to no job at all, which destroys your job costing data.
Review your bank feed transactions at least twice per week. Letting transactions pile up in the bank feed queue leads to rushed coding, miscategorization, and backlogs that undermine the timeliness of your financial data.
Step 7: Create Custom Reports for Construction Management
QuickBooks comes with standard financial reports — Profit and Loss, Balance Sheet, Cash Flow Statement — but contractors need additional reports that provide project-level visibility. Here are the custom reports you should create and save in QuickBooks:
Job Profitability Summary
This report shows revenue, direct costs, and gross margin for each active project. In QBO, run the "Profit and Loss by Customer" report and filter it to show only active projects. In Desktop, use the "Job Profitability Summary" report. Customize it to show Contract Revenue less all COGS categories, with the gross margin percentage calculated for each project.
Review this report monthly. It tells you which projects are on track and which are trending below your target margin. If a project shows a gross margin below your company average, drill into the job cost detail to find out why.
Budget vs. Actual by Project
This report compares estimated costs (from your bid) against actual costs for each project. In Desktop, use the "Job Estimates vs. Actuals" report. In QBO, you will need to set up budgets by project and run the "Budget vs. Actuals" report filtered by project.
Enter your project budgets into QuickBooks at the start of every job, broken down by cost category. This gives you the baseline to compare against actual costs as the project progresses. Without budgets entered, you cannot run a meaningful budget vs. actual report.
Accounts Receivable Aging by Project
Construction companies need to see AR aging at the project level, not just the customer level. Run the "A/R Aging Detail" report and group it by project. This shows you which invoices are outstanding on which jobs, helping you prioritize collections and identify slow-paying projects.
Pay special attention to invoices over 60 days. In construction, slow payment is often an early warning sign of disputes, financial trouble with the owner, or documentation issues with your billing. Do not let receivables age silently.
Accounts Payable Aging
Track what you owe to vendors and subcontractors with the "A/P Aging Summary" report. Know your total payable obligations and their due dates so you can manage outgoing cash flow and avoid late payments that damage vendor relationships or trigger lien rights.
Cash Flow Projection
While QuickBooks does not generate a true 13-week cash flow forecast, you can use the "Statement of Cash Flows" report as a starting point and supplement it with a spreadsheet-based forecast that incorporates your project billing schedules, expected collections, and planned expenditures.
Common QuickBooks Mistakes Contractors Make
Even with a proper setup, contractors frequently make mistakes in how they use QuickBooks day to day. These mistakes degrade data quality over time and undermine the value of your reporting.
Not Assigning Transactions to Projects
The most common mistake. A material purchase comes through the bank feed, the bookkeeper codes it to Job Materials but does not assign it to a project. Now that cost is floating in your COGS without being tied to any job. Your company-level financials look correct, but your job cost reports understate the costs on that project. Over time, unassigned transactions accumulate and your job cost reports become unreliable.
Using the Wrong Account Types
Creating Retainage Receivable as an income account instead of an asset account. Setting up subcontractor costs as an expense instead of COGS. Using a liability account where an equity account should be. Account type errors flow through to every report and make your financial statements inaccurate. Always verify the account type when creating new accounts.
Entering Journal Entries Instead of Proper Transactions
When contractors or their bookkeepers cannot figure out how to record a transaction properly, they often use a journal entry as a workaround. Journal entries bypass the natural workflow of QuickBooks — they do not create invoices, bills, or payment records — and they make it difficult to track the transaction trail. Use journal entries only for true adjusting entries like WIP adjustments, depreciation, and accruals. Everything else should be recorded through the proper transaction types: invoices for billing, bills for payables, checks for payments.
Skipping Bank Reconciliations
Bank reconciliation is the most basic and most critical bookkeeping control. It verifies that your QuickBooks records match your actual bank activity. When reconciliations fall behind, errors accumulate undetected — duplicate entries, missing transactions, incorrect amounts, and fraudulent charges all hide in unreconciled accounts. Reconcile every bank and credit card account monthly, without exception.
Not Backing Up Data (Desktop Only)
QuickBooks Desktop files are stored locally. If your computer crashes, gets stolen, or suffers a ransomware attack and you do not have a current backup, you lose everything. Set up automatic daily backups to an external drive and a cloud backup service. This is not a concern for QBO users since data is stored in the cloud.
When to Upgrade from QuickBooks
QuickBooks is powerful, but it has limits. There comes a point where a growing construction company needs more than QuickBooks can provide. Here are the signs that it is time to consider upgrading to a construction-specific platform like Foundation Software, Sage 100 Contractor, or Sage Intacct:
- Transaction volume is overwhelming QuickBooks. When your file has tens of thousands of transactions and reporting slows to a crawl, QuickBooks is struggling with the load.
- You need certified payroll. If you do prevailing wage or Davis-Bacon work, you need certified payroll reporting that QuickBooks does not provide natively.
- You need integrated AIA billing. While you can create AIA-style invoices in QuickBooks with workarounds, dedicated construction platforms handle G702/G703 billing natively with proper retainage and change order tracking.
- Your bonding company requires more sophisticated reporting. Larger bonding programs require detailed WIP schedules, cost-to-complete projections, and financial reporting formats that are easier to produce from construction-specific software.
- You have outgrown the project tracking capabilities. When you are managing 30 or more active projects with multiple cost codes, budget tracking, and committed cost monitoring, construction-specific platforms offer depth that QuickBooks cannot match.
- You need multi-entity or multi-division reporting. If your company operates multiple entities or divisions, construction-specific platforms like Sage Intacct handle consolidated reporting more effectively.
The upgrade decision is not just about software — it is about process maturity. If you upgrade to Foundation or Sage but do not have the bookkeeping discipline and financial expertise to use it properly, the new platform will not help. Get your processes right in QuickBooks first, then upgrade when you have genuinely outgrown it.
How FinTruction Sets Up QuickBooks for Contractors
At FinTruction, QuickBooks setup for construction companies is one of our core services. We have configured QuickBooks for hundreds of contractors, and we know exactly what works and what does not.
Our systems and integration team builds your QuickBooks file from scratch with a construction-specific chart of accounts, project tracking structure, billing workflow, retainage tracking, and custom reports. We do not start with the QuickBooks default and tweak it — we build a file designed for construction from day one.
We also integrate QuickBooks with your field tools — project management platforms, time tracking apps, estimating software, and document management systems — so data flows into QuickBooks accurately and automatically. This eliminates double entry, reduces coding errors, and ensures that your job cost data is current.
Our construction bookkeeping team then manages the ongoing data entry, bank reconciliations, job costing, and monthly close process. And our controller services team produces the WIP schedules, budget vs. actual reports, and financial analysis that you need to manage your projects and your business.
Whether you are starting a new QuickBooks file, cleaning up an existing one, or evaluating whether QuickBooks is still the right platform for your growing company, we can help.
Need QuickBooks Set Up Right for Your Construction Company?
Frequently Asked Questions
Is QuickBooks good enough for a construction company?
Yes, for most small to mid-size contractors. QuickBooks Online or Desktop can handle job costing, progress billing, retainage tracking, and project-level reporting when configured properly for construction. The key word is "properly" — a default QuickBooks setup will not work. You need a construction-specific chart of accounts, project tracking, and workflows. Most contractors under $10 million in revenue can run their business effectively on QuickBooks.
Should I use QuickBooks Online or Desktop for construction?
QuickBooks Online works well for subcontractors and smaller general contractors who value cloud access, mobile flexibility, and app integrations. QuickBooks Desktop Premier Contractor Edition or Enterprise is better for larger contractors who need deeper job costing, built-in progress billing, and more powerful reporting. If you do bonded work or AIA billing on larger projects, Desktop is usually the better choice.
How do I track retainage in QuickBooks?
Create a Retainage Receivable account (Other Current Asset type) and a corresponding line item on your invoices. On each progress bill, add a negative line for the retainage withheld — typically 5 to 10 percent of the current billing. This reduces the invoice total while recording the retainage as a receivable. When the project is complete and retainage is released, create a final invoice for the retainage amount to move it from Retainage Receivable to regular AR.
Can I do job costing in QuickBooks without QuickBooks Desktop?
Yes. QuickBooks Online supports job costing through its Projects feature. You assign income and expenses to specific projects, and QBO generates project-level profitability reports. The job costing in QBO is less granular than Desktop — you do not get cost code-level tracking natively — but it is sufficient for many contractors, especially subcontractors and smaller GCs who do not need CSI-level cost code breakdowns.
How much does it cost to have QuickBooks set up for construction?
Professional QuickBooks setup for a construction company typically ranges from $1,500 to $5,000 depending on the complexity of your operations, the number of project types, and whether you need integrations with other software. This includes chart of accounts configuration, project tracking setup, billing workflows, bank feed rules, and custom report creation. It is a one-time investment that pays for itself quickly through accurate job costing, timely reporting, and fewer bookkeeping errors.