Chart of Accounts for General Contractors: What Goes Where

A generic chart of accounts creates billing headaches and bad job cost reports. Here's how to build one that actually works for a general contracting business.

EZBilling Team May 19, 2026 5 min read

Why Generic Charts of Accounts Fail GCs

Most accounting software ships with a default chart of accounts built for a retail store or a service company. It has accounts for inventory, cost of goods sold, and maybe a handful of expense categories. That structure will not hold up once you start running multiple jobs with subcontractors, retention, change orders, and monthly pay applications.

A chart of accounts for a general contractor needs to do three things at once: produce clean financial statements for your bank and CPA, feed accurate job cost reports for your project managers, and support the billing workflow your owners and architects expect. Those three goals pull in slightly different directions, so the structure matters.

Year-end is also when problems surface. If your accounts are a mess going into tax season, your CPA spends billable time sorting transactions instead of finding deductions. Getting this right now saves money in Q1.

The Four Major Account Groups You Need

1. Assets

Beyond the standard checking and savings accounts, GCs need a few asset accounts that most businesses skip.

  • Accounts Receivable (billed): Progress billings you have submitted but not yet collected.
  • Retainage Receivable: Keep this separate from regular A/R. Retention sits out there for months, sometimes years, and lumping it into A/R distorts your aging report. A dedicated account, typically numbered in the 1200s, makes collection follow-up straightforward.
  • Costs in Excess of Billings (underbillings): If your percentage-of-completion calculation shows you have earned more than you have billed, that difference is an asset. It belongs on the balance sheet, not buried in a notes payable or accrual account.
  • Deposits and Prepaid Expenses: Bonding premiums paid annually, builder's risk insurance paid upfront, and equipment deposits all go here.

2. Liabilities

  • Accounts Payable: Standard, but make sure subcontractor invoices flow through here, not directly to an expense account. You need the aging report to manage cash flow.
  • Retainage Payable: The mirror of retainage receivable. You hold retention from subs until the owner releases yours. Track it separately or you will accidentally pay subs before you get paid.
  • Billings in Excess of Costs (overbillings): When you have billed more than you have earned, that excess is a liability. Some GCs hide this. Your bank does not overlook it.
  • Subcontractor Payroll Tax Liabilities: If you run any in-house crews on prevailing wage jobs, federal and state payroll tax liabilities need their own line. Mixing them with trade payables creates errors on certified payroll reports like the WH-347.

3. Revenue

Keep revenue accounts simple but specific enough to segment work type.

  • Contract Revenue: Base contract billings on active jobs.
  • Change Order Revenue: A separate account here is worth the setup time. When a PM asks why the job margin dropped, you can show approved change orders as revenue and compare them against change order costs without digging through every transaction.
  • Material Sales or Stored Materials: Some contracts allow billing for materials delivered on-site but not yet installed. Track that separately to reconcile with G703 continuation sheet line items.

4. Cost of Revenue (Direct Job Costs)

This is where most GCs need the most detail. Map your accounts to CSI MasterFormat divisions and your billing gets much easier. A workable structure looks like this:

  • Division 01 (General Requirements): Temporary facilities, project superintendent labor, site safety, permits, and testing. These are real job costs, not overhead. Billing them as Division 01 on the schedule of values puts the cost where it belongs.
  • Division 03 (Concrete): Forming labor, concrete material, pump truck, finishing crews.
  • Division 05 (Metals) / Division 06 (Wood and Plastics): Structural steel erection, rough carpentry, millwork.
  • Mechanical, Electrical, Plumbing (Divisions 22, 23, 26): Usually subcontracted, but you still need cost accounts to match sub invoices against your schedule of values line items.
  • Subcontractor Costs (all divisions): Some controllers run a single subcontractor cost account. That works for small shops. Once you are managing ten or more subs on a project, breaking costs out by trade gives you far better variance analysis.

Direct job costs live above the gross profit line on your income statement. Overhead does not.

Overhead: What Does Not Belong in Job Cost

Overhead accounts sit below gross profit. They cover costs that support the company but cannot be tied to a specific job: office rent, accounting software, the estimating team's salaries, general liability insurance (unless you allocate it by job), and owner compensation not tied to field supervision.

The common mistake is pushing overhead costs into job cost accounts to make individual jobs look cheaper. That inflates gross margin and destroys the accuracy of your job cost reports. Your estimator uses historical cost data to bid the next job. Feed them bad data and they bid too low.

Payroll is where this gets tricky. A project superintendent who works one job goes into job cost. Your office manager goes into overhead. A superintendent who floats between three jobs needs a time-based allocation. Set the rule and enforce it consistently.

Numbering Your Accounts

Standard numbering convention for GCs works like this: 1000s for assets, 2000s for liabilities, 3000s for equity, 4000s for revenue, 5000s for direct costs, 6000s for overhead. Leave gaps. If your concrete costs are account 5030, put concrete labor at 5031 and concrete materials at 5032. You will add accounts as the business grows, and having room in the numbering sequence prevents a disorganized chart later.

Retainage receivable at 1200 and retainage payable at 2200 is a clean pairing that makes balance sheet review faster for anyone reading your financials.

One Account That Most GCs Are Missing

Warranty reserves. When you close out a job and issue the G704 certificate of substantial completion, your exposure is not over. Many contracts carry one-year or two-year warranty periods. Setting up a warranty reserve liability account and funding it with a small percentage of contract revenue on closeout gives you an accurate picture of real obligations. It also prevents the unpleasant surprise of a $40,000 warranty repair showing up in an overhead account eighteen months later with no clear job to charge it against.

Seasonal Note for Year-End Setup

If you are reading this heading into Q4 or early Q1, this is the right time to restructure your chart of accounts before the new fiscal year starts. Retrofitting accounts mid-year creates reconciliation headaches and inconsistent comparative reports. Make the changes in your accounting software now, map your existing transaction history to the new structure with your CPA, and start the new year clean.

Construction accounting works better when the software understands jobs, cost codes, and pay apps natively. EZBilling does.

Ready to simplify your AIA billing?

EZBilling handles G702/G703 progress billing, job costing, and compliance tracking in one platform built for general contractors.

Start 30-Day Free Trial Schedule a Demo

Related Posts