The Short Version
Your chart of accounts is the skeleton your financial data hangs on. If it's built for a generic service business instead of a construction company, every report you run — P&L, job cost, overhead burden — will give you data that looks legitimate but doesn't tell you what you need to know to run your business. I've rebuilt this structure for builders at every revenue level. The principles are always the same. The version below is what I recommend for builders doing $500K–$3M.
Sound Familiar?
Signs your chart of accounts is working against you:
- Your P&L shows revenue and 'cost of goods sold' as single line items — no breakdown by project type or trade
- You can't tell from your financials whether custom homes or remodels are more profitable
- Your bookkeeper categorizes subcontractor costs under 'labor' and material costs under 'supplies' interchangeably
- Your overhead costs are mixed with direct job costs, making your true overhead burden invisible
- Your accountant produces financial statements that look correct but don't help you make any operational decisions
What We Found
Why Most Construction COAs Are Built Wrong
When a bookkeeper sets up QuickBooks for a construction company, they usually start from one of two places: the QuickBooks default chart of accounts (built for retail or generic services) or a template they've used for other small businesses. Neither is built around how construction companies actually operate.
The result is a COA that might satisfy your accountant at tax time but produces reports that are useless for operations. The most common problems I see:
- Labor and subcontractor costs combined. Your own crew's wages and sub payments go into the same bucket. You can't see your direct labor exposure separately from sub costs — which means you can't analyze your make-vs-buy decisions or your true labor overhead.
- Materials mixed with supplies. Job-specific materials (lumber, concrete, roofing) are categorized with office supplies, fuel, and equipment maintenance. Job cost by material type becomes impossible to analyze.
- No overhead separation. Your project manager's salary, your truck expenses, your software subscriptions, and your office rent all land in the same P&L sections as direct job costs. Your overhead burden percentage is invisible — which means you can't price it accurately.
- No project-type segmentation. Custom homes, remodels, additions, and commercial work all flow through the same revenue account. You have no data on which project type is actually profitable.
These aren't minor organizational issues. They're the reason builders think their financials "look fine" while running 6–8% net margins on work that should produce 12–14%.
The Reporting Gap Cost
A builder who doesn't know their true overhead burden typically underprices by 4–8% on every bid, because that overhead isn't captured in their markup. On $2M in annual revenue, a 4% underpricing error is $80,000 in margin left on the table annually. A correct COA doesn't guarantee you'll price it right — but without it, you can't even see the gap.
The 7-Category Construction Chart of Accounts Structure
Here is the COA framework I use when I rebuild a builder's QuickBooks setup. It's organized around how construction businesses generate revenue, incur direct costs, and manage overhead — not around how an accountant thinks about general business categories.
Category 1: Revenue (by project type)
Separate revenue accounts for each project type you run. At minimum:
- Custom Home Revenue
- Remodel Revenue
- Addition Revenue
- Service/Repair Revenue (if applicable)
- Commercial Revenue (if applicable)
With separate revenue accounts, your P&L immediately shows revenue by project type. After 12 months, you have data to answer the question most builders have never been able to answer: which project type produces the most revenue per hour of your time? That data drives your business development strategy.
Category 2: Direct Labor (by type)
- Field Labor — Wages (W-2 employees only)
- Field Labor — Payroll Taxes and Benefits
- Field Labor — Workers Comp and Liability (allocated)
Separating payroll taxes and workers comp from base wages gives you your true burdened labor cost per hour. Most builders know their hourly wage rate. Almost none know their burdened rate — which is the number you actually need to price labor correctly. Burdened labor typically runs 22–28% above base wages when you include taxes, insurance, and benefits.
Category 3: Subcontractor Costs (by trade)
- Sub — Framing
- Sub — Concrete
- Sub — Electrical
- Sub — Plumbing
- Sub — HVAC
- Sub — Roofing
- Sub — Other Trades
Separate sub accounts by trade let you track sub cost as a percentage of revenue by trade over time. When electrical subs run 7.2% of project revenue on average but your estimates assume 6.5%, you're systematically under-pricing electrical work. You won't see this pattern without trade-level sub accounts.
Category 4: Direct Materials (by category)
- Materials — Lumber and Framing
- Materials — Concrete and Masonry
- Materials — Roofing
- Materials — Mechanicals (rough plumbing, electrical, HVAC)
- Materials — Insulation and Drywall
- Materials — Finish and Fixtures
- Materials — Other Direct
Material categories let you track material cost as a percentage of total job cost by category. Lumber running 18% of total job cost versus your estimate of 15%? That's a lumber pricing or takeoff accuracy issue — and you can see it because it has its own account.
Category 5: Project-Level Overhead
Costs that are direct to a project but not to a specific trade: permits and inspections, temporary utilities, job site equipment rental, site safety costs, project insurance, and dumpster/waste disposal. These often get buried in general overhead when they belong in direct job costs. Separating them gives you a cleaner gross margin calculation and more accurate job costing.
Category 6: Business Overhead (operating expenses)
- Salaries — Owner/PM (non-field time)
- Salaries — Office/Admin
- Rent and Utilities
- Vehicle Expenses
- Equipment Depreciation
- Software and Technology
- Marketing and Advertising
- Professional Services (accounting, legal)
- Insurance — Business
- Training and Education
This category is your true overhead burden. Sum these accounts, divide by revenue, and you have your overhead burden percentage — the number you need to build into every estimate to ensure overhead is covered before you calculate net margin.
Category 7: Other Income and Expense
Interest income, interest expense, depreciation (non-operating), and gains/losses on asset sales. Keep this clean and minimal. Most operational expenses belong in categories 2–6. When Category 7 gets large, it usually means expenses are being miscategorized.
The One Number Most Builders Have Never Calculated
After rebuilding a chart of accounts, the first question I ask every builder is: what's your overhead burden percentage? It should be the sum of Category 6 divided by your total annual revenue. Most builders can't answer this. Once they can, they're able to price overhead correctly on every bid — and stop giving it away.
Connecting the COA to JobTread and Your Job Cost Reports
A correct chart of accounts in QuickBooks is half the work. The other half is ensuring your JobTread cost codes map directly to the right QuickBooks categories so that invoice syncs produce clean, usable job cost data automatically.
The mapping principle is simple: every JobTread cost code should have a one-to-one relationship with a QuickBooks account in the COA. When you post a framing sub invoice in JobTread against the "Sub — Framing" cost code, it should sync to "Sub — Framing" in QuickBooks without any manual reclassification.
Builders who set this up correctly can run a QuickBooks P&L and a JobTread job cost report and have the numbers agree without reconciliation work. Builders who set it up incorrectly — or never align the two systems — spend 3–5 hours per week reconciling data that should reconcile automatically.
The setup process:
- Build the 7-category COA in QuickBooks first
- Map each JobTread cost code to its corresponding QB account in the JobTread-QuickBooks integration settings
- Verify the mapping by running a test invoice sync and checking the result in QB
- Run a parallel period (one month) where you manually verify sync accuracy before relying on it fully
This setup takes a full day to do correctly — longer if your current QB data is messy and needs reclassification. The payoff is a financial reporting infrastructure that produces accurate, actionable data every month without manual intervention. That's the foundation for every operational decision: pricing, hiring, what projects to take on, when to add capacity.
If your COA has never been built for construction, this is the highest-leverage financial improvement you can make. Better software, more detailed estimates, and tighter job cost tracking all depend on having the right account structure underneath. Without it, you're analyzing clean-looking data that doesn't mean what you think it means.
5 Margin Killers Every Builder Misses
The 5 pricing and cost mistakes that silently drain 8–18% from your margins on every project. Free guide with quick-fix checklist.
Get the Free Guide →Frequently Asked Questions
A construction chart of accounts should include separate revenue accounts by project type, direct labor accounts that separate base wages from burden costs, subcontractor accounts organized by trade, direct materials accounts by category, project-level overhead accounts, business overhead accounts that capture all indirect costs, and a clean other income/expense section. This 7-category structure produces the financial reports that actually tell you how your construction business is performing.
Setting up QuickBooks for a construction company starts with rebuilding the chart of accounts around your project types and cost structure — not the QuickBooks default template. From there, configure class tracking by project to enable job-level P&L reports, connect your construction PM software (such as JobTread) with cost code mapping that aligns to your COA, and set up customer accounts by job for invoice tracking. The setup takes one focused day and eliminates months of reconciliation headaches.
Overhead burden in construction is the total of all indirect business costs — owner and office salaries, rent, vehicles, insurance, software, marketing, and professional services — divided by total annual revenue. For most residential builders doing $500K–$3M, overhead burden runs 18–28% of revenue. If your markup doesn't cover this percentage before net profit, you're losing money on overhead with every job. Most builders underestimate this number because their COA mixes overhead costs with direct job costs.
Use both — each does something the other doesn't. JobTread tracks real-time job costs during construction: budget vs. committed (POs) vs. actual (invoices) by cost code, visible while the job is active. QuickBooks provides accurate period-end P&L by project type and payroll cost tracking. The key is connecting them with a clean cost code to chart-of-accounts mapping so job data flows from JobTread to QuickBooks automatically, without manual reclassification.
Most residential construction companies in the $500K–$3M range should have 35–55 accounts in QuickBooks, organized into the 7 categories described above. Fewer than 30 accounts usually means overhead and direct costs are lumped together in ways that prevent accurate burden and margin analysis. More than 60 accounts is usually over-engineering that creates categorization confusion without adding analytical value. The right number is whatever it takes to separate the costs you need to analyze independently.