Flow Agentic Accounting

LiveFlow FP&A

Industries

Resources

Flow Agentic Accounting

LiveFlow FP&A

Industries

Resources

Published

Construction Chart of Accounts Template for Excel

SHARE THIS BLOG

Construction chart of accounts template for Excel: the complete contractor COA playbook

A construction chart of accounts template is a numbered account list — structured around assets, liabilities, equity, income, and job-cost categories — designed so that WIP, retainage, and progress billing are trackable without rebuilding your reporting from scratch every month. Without this structure, jobs blur together in the general ledger, retainage disappears into a catch-all receivables line, and producing a WIP schedule means a manual spreadsheet rebuild every close cycle.

Key takeaways

Here is what matters most before you compare options.

  • COA structure: A construction chart of accounts template separates job costs, WIP, retainage receivable/payable, and progress billing into distinct account categories so financial statements are reportable by project without multiplying GL accounts.

  • Dimensions over proliferation: Well-structured construction COAs use jobs and cost codes as reporting dimensions inside a lean account list — not hundreds of project-specific GL accounts — keeping the GL readable and your reports flexible.

  • Template starting point: The Excel/Google Sheets template in this guide covers account code ranges (1000s–7000s), construction-specific account names, and account types ready to import into QuickBooks Online.

  • Reporting layer: Once the COA is clean, LiveFlow FP&A connects it to live WIP schedules and job GP dashboards directly in Google Sheets; for multi-entity contractors ready to move off QuickBooks, Flow ERP has multi-entity and WIP built into the accounting layer from day one.

What must a construction chart of accounts support that a standard COA doesn't?

A construction chart of accounts must support four financial events that don't exist in standard business accounting: job costing, WIP accounting, retainage tracking, and progress billing. A generic COA handles none of these well, and the gaps show up immediately in the financial statements.

Retainage lumped into a standard accounts receivable account makes your AR aging report unreliable — the receivable isn't collectible until project completion, but standard AR tools treat it like any other invoice. Similarly, without a dedicated WIP account, percentage-of-completion adjustments land on random expense lines and your balance sheet misrepresents the business's financial position at any given close. These aren't minor formatting issues; they produce materially misleading statements.

The four requirements every construction COA must address:

  • Job costing: Every direct cost — labor, materials, subcontractors, equipment — must be assignable to a specific project so you can measure gross profit by job.

  • WIP accounting: Costs in excess of billings (the WIP asset) and billings in excess of costs (the overbilling liability) require dedicated balance sheet accounts. Learn how to build a WIP schedule in QuickBooks Online once your COA supports these accounts.

  • Retainage tracking: Retainage receivable (amounts billed but held by the owner) and retainage payable (amounts withheld from subcontractors) must be separated from standard AR/AP to produce accurate aging and cash flow forecasts.

  • Progress billing: Recognizing revenue based on percentage of completion — and tracking over- and underbilling in construction — requires accounts structured to support that calculation rather than simple cash-in reporting.

Job costing

Job costing is the practice of tracking all costs — labor, materials, subcontractors, equipment — at the individual project level, not just at the company level. This requires two things working together: the right direct cost accounts in the 5000s range and the right dimensions (job number, cost code) applied to transactions so gross profit by project is visible without a manual reconciliation at every close.

WIP, retainage, and progress billing accounts

WIP asset (costs in excess of billings) is the balance sheet account that captures work you've performed but haven't yet billed — it's an asset because the client owes you for it. Overbilling liability (billings in excess of costs) is the reverse: you've collected more cash than the work performed justifies, so you owe future work for revenue already recognized. Retainage receivable is the portion of each billing the owner holds until project completion; retainage payable is the portion you withhold from subcontractors under the same terms. All four are balance sheet accounts, not income statement accounts. Missing any one of them produces a materially misleading balance sheet.

What account structure should a construction company use across assets, liabilities, income, and costs?

A construction company should organize its chart of accounts using numbered ranges: 1000s for assets, 2000s for liabilities, 3000s for equity, 4000s for income, 5000s for direct job costs, 6000s for indirect costs and burden, and 7000s for G&A. This structure is consistent with AICPA guidance on chart of accounts design and maps directly into QuickBooks Online account types without translation work.

1000s — assets

Construction asset accounts include cash (operating account), accounts receivable (standard billings), retainage receivable (billed amounts withheld by the owner pending project completion), costs in excess of billings — the WIP asset that captures work performed but not yet invoiced — prepaid expenses, equipment, and accumulated depreciation as a contra account against equipment value.

2000s — liabilities

Liability accounts include accounts payable (vendor and subcontractor invoices), retainage payable (amounts withheld from subcontractors pending their work completion), billings in excess of costs — the overbilling liability representing cash collected ahead of work performed — accrued payroll, and equipment loans under long-term liabilities.

3000s — equity

Keep equity accounts straightforward: owner's equity, retained earnings, and distributions. Entity structure (S-corp, LLC, partnership) affects the naming of these accounts but not their function in the COA.

4000s — income / revenue

Separate contract revenue from change order revenue into distinct accounts. Lumping change order billings into the base contract revenue account hides change order margin and makes project-level analysis unreliable. Other income (equipment rental to third parties, rebates) goes in a separate 4200-range account so it doesn't distort your core contract margin.

5000s — direct job costs (COGS)

Direct job cost accounts include field labor, subcontractors, materials, equipment costs (owned or rented on specific jobs), and permits and fees. This is where job costing lives. Cost codes are applied here as dimensions — not as separate accounts — so you get project-level reporting without multiplying the GL.

6000s — indirect costs and burden

Burden is the indirect cost of field labor that doesn't map to a specific job line but is still project-related: employer payroll taxes, workers' comp, small tools, and safety expenses. Keeping burden in the 6000s rather than the 5000s prevents your job cost reports from over-allocating overhead to projects. A job GP report should reflect controllable direct costs — burden allocation is a separate calculation.

7000s — G&A / overhead

G&A accounts cover office salaries, rent, non-project insurance, software, professional fees, and depreciation on non-field assets. G&A must never appear on a job cost report. Placing all G&A in the 7000s enforces this structurally — if a cost is in the 7000s range, it stays off job cost exports by default.

The table below presents a sample construction COA with account codes, names, QuickBooks Online account types, and construction-specific notes. Use this as the starting point for your Excel template.

Sample construction chart of accounts — ready for QuickBooks Online import

Account code

Account name

QBO account type

Category

Construction-specific note

1000

Cash — operating

Bank

Asset

Primary operating account

1100

Accounts receivable

Accounts Receivable

Asset

Standard contract billings only

1150

Retainage receivable

Other Current Assets

Asset

Billed but withheld by owner; released at completion

1200

Costs in excess of billings

Other Current Assets

Asset

WIP asset — balance sheet only; costs > billings on active jobs

1250

Prepaid expenses

Other Current Assets

Asset

Insurance, software paid in advance

1300

Equipment

Fixed Assets

Asset

Field equipment at cost

1310

Accumulated depreciation

Fixed Assets

Asset

Contra account to 1300

2000

Accounts payable

Accounts Payable

Liability

Vendor and subcontractor invoices

2050

Retainage payable

Other Current Liabilities

Liability

Held from subs pending their completion

2100

Billings in excess of costs

Other Current Liabilities

Liability

Overbilling liability; billings > costs on active jobs

2150

Accrued payroll

Other Current Liabilities

Liability

Wages earned, not yet paid

2200

Equipment loans

Long-Term Liabilities

Liability

Financed field equipment

3000

Owner's equity

Owner's Equity

Equity

Name varies by entity structure

3100

Retained earnings

Retained Earnings

Equity

QBO auto-calculates; do not manually post

3200

Distributions

Owner's Equity

Equity

Draws; LLC and S-corp only

4000

Contract revenue

Income

Income

Base contract billings recognized

4100

Change order revenue

Income

Income

Keep separate from 4000 for margin analysis

4200

Other income

Other Income

Income

Equipment rental, rebates; not core contract revenue

5000

Labor — field

Cost of Goods Sold

COGS

Use cost codes as sub-dimension, not sub-accounts

5100

Subcontractors

Cost of Goods Sold

COGS

Specialty trade payments

5200

Materials

Cost of Goods Sold

COGS

Job-specific purchases

5300

Equipment costs

Cost of Goods Sold

COGS

Owned or rented equipment on a specific job

5400

Permits and fees

Cost of Goods Sold

COGS

Job-specific permits only

6000

Payroll taxes — field

Expense

Expense

Employer-side taxes on field labor; keep out of 5000s

6100

Workers' comp

Expense

Expense

Field labor burden; not a direct job cost

6200

Small tools

Expense

Expense

Below capitalization threshold; project-related

7000

Office salaries

Expense

Expense

Never appears on a job cost report

7100

Rent

Expense

Expense

Office and yard; not job-site costs

7200

Insurance — non-project

Expense

Expense

General liability and D&O; not job-specific

7300

Professional fees

Expense

Expense

Accounting, legal; overhead only

Should you use job and cost-code dimensions or create a separate GL account for each project?

Construction finance teams should use jobs and cost codes as reporting dimensions within a lean COA rather than creating new GL accounts per project. The alternative — often called "exploding the COA" — produces an unmanageable account list that makes reconciliation and consolidated reporting painful without providing any additional analytical value.

A contractor with 40 active jobs and 15 cost categories who creates a GL account per project ends up with 600 or more accounts. Bank reconciliation becomes a matching exercise across hundreds of lines, year-end cleanup stretches into weeks, and any consolidated view across entities requires mapping those 600 accounts to a common structure every single period.

QuickBooks Online supports dimensions through Classes (useful for division or entity tagging), Customers/Jobs (for project-level tracking), and Items or Service lines (for cost code categorization). Applied consistently at transaction entry, these dimensions produce job-level P&L reporting from the same lean account list without multiplying the GL. The COA stays readable; the reporting stays flexible.

Multi-entity contractors managing a separate legal entity per project face a structurally different problem. At that scale, QBO's per-file architecture means no consolidated view exists natively, and the reporting workaround becomes its own close task. For those operators, see consolidation tools for general contractors on QBO — or evaluate Flow ERP, which houses all entities in a single workspace so consolidated job GP is visible without switching between files.

What does a construction COA template in Excel or Google Sheets look like, and how do you use it?

A construction COA template in Excel or Google Sheets is a spreadsheet with columns for account code, account name, account type, detail type, and a construction-specific description — structured so it can be imported directly into QuickBooks Online or used as a standalone reference for building your GL from scratch.

The recommended tab structure for the file:

  • Tab 1 — Full COA list: The importable account list matching the table above. Columns map directly to QBO's import format: Name, Type, Detail Type, Description.

  • Tab 2 — Balance sheet roll-up: SUMIF formulas that pull from Tab 1 categories to produce a balance sheet summary. Enter trial balance amounts by account code, and the roll-up populates automatically.

  • Tab 3 — P&L roll-up: Separates income (4000s), direct job costs (5000s), burden (6000s), and G&A (7000s) into a summary P&L with gross margin and net income calculated. This tab shows you whether burden is distorting your job GP before you finalize the period.

Column-by-column guidance for the COA tab:

  • Account code: The numeric identifier (1000–7999). Assign codes in 50- or 100-number increments to leave room for additions without renumbering.

  • Account name: The display name that appears in QBO reports. Use exact, consistent naming — any variation across entities breaks your mapping table.

  • Account type: QBO's top-level classification (Bank, Accounts Receivable, Other Current Assets, Fixed Assets, Accounts Payable, Other Current Liabilities, Income, Cost of Goods Sold, Expense). This determines which financial statement the account appears on.

  • Detail type: QBO's sub-classification within the account type. For construction-specific accounts like costs in excess of billings, the correct detail type is Other Current Assets. For retainage payable, use Other Current Liabilities.

  • Construction-specific note: A brief description of what the account is used for and any dimension rules — for example, "Apply job number and cost code at every transaction; do not create sub-accounts."

[DOWNLOAD CTA PLACEHOLDER — design team: insert download button for the .xlsx template file here]

[IMAGE PLACEHOLDER — design team: insert screenshot of Tab 1 COA list with columns labeled]

How do you map a construction chart of accounts into QuickBooks Online without breaking your existing books?

Mapping a construction COA into QuickBooks Online requires matching each account to a QBO account type and detail type before import — mismatches cause import errors or land accounts in the wrong financial statement category, which takes significant cleanup to reverse.

Follow these steps in order:

  1. Open QuickBooks Online and navigate to Settings (the gear icon in the upper right), then select Chart of Accounts. Click the Import button and download QBO's blank import template. This gives you the exact column headers QBO expects: Name, Type, Detail Type, and Description.

  2. Open your Excel COA template and map each column to QBO's required fields. Account code maps to Name if you include the number in the account name (e.g., "1150 Retainage receivable"). Account type maps to Type. Detail type maps to Detail Type. Your construction-specific note maps to Description.

  3. Resolve accounts that don't have a direct QBO match. Costs in excess of billings (WIP asset) imports under Type = Other Current Assets, Detail Type = Other Current Assets. Billings in excess of costs imports under Type = Other Current Liabilities, Detail Type = Other Current Liabilities. These aren't intuitive — verify placement by running a test balance sheet after import.

  4. Upload the completed import file in QBO's Chart of Accounts import screen. After upload, run a P&L and a balance sheet to confirm every account landed in the correct financial statement section. Accounts that appear in the wrong section require deletion and re-import with corrected Type or Detail Type values.

  5. Enable job-level and cost-code tracking. Go to Settings, then Account and Settings, then the Advanced tab. Turn on Classes (if you use divisions or entities as dimensions) and enable the Customers/Jobs tracking feature for project-level cost assignment. This step connects your COA to the dimension structure that produces job GP reporting.

QBO's native job costing through Customers/Jobs works for single-entity contractors with straightforward project structures. For specialty trades managing complex cost code hierarchies or multi-entity GC structures, the limitations become apparent quickly. See job costing reporting in QuickBooks Online for specialty trades for a full walkthrough of where QBO's native tools hold up and where they don't.

How do you get from a clean construction COA to live WIP schedules and job GP dashboards?

A clean construction COA is the structural foundation, but it doesn't produce live WIP schedules or job GP reports on its own — that requires a reporting layer connected to real-time data from QuickBooks Online and your project management tool (Procore, Buildertrend, or JobTread). According to LiveFlow's Finance in the AI Era report, 78% of finance teams still move data primarily via manual spreadsheet exports. That's the gap the reporting layer closes.

Two paths based on where your business is today:

LiveFlow FP&A for teams staying on QuickBooks Online

LiveFlow FP&A connects directly to your QuickBooks Online account and pulls live job cost data into Google Sheets, where WIP schedules, job GP by project, and retainage aging reports update automatically without a manual export. The retainage receivable account you built in step 2 of the QBO mapping section (account 1150 in the template) is what populates the retainage aging column in LiveFlow FP&A — it reads that account balance directly and keeps the aging current as QBO updates.

For homebuilders on QBO managing draw schedules alongside WIP, the same COA foundation supports live WIP reporting for homebuilders on QuickBooks Online without any structural changes to the template above. The accounts are already correct; LiveFlow FP&A adds the live data layer. If you're using Buildertrend alongside QBO, the integration between the two systems affects how job cost data flows — see the Buildertrend-QuickBooks integration guide for specifics on closing the WIP and draw reporting gap.

What you get in the first week: a WIP schedule that refreshes when QBO refreshes, job GP by project visible without opening individual job files, and retainage aging that doesn't require a monthly rebuild in Excel.

Flow ERP for multi-entity contractors ready to move off legacy systems

For contractors managing three or more entities — separate LLCs per project, holding companies, joint ventures — the problem isn't COA structure. It's that QuickBooks Online treats every entity as an isolated file, so consolidation is a manual rebuild every period. Flow ERP, which is built with multi-entity architecture at its core, houses all entities in a single workspace and generates consolidated job cost reports in real time with GAAP-compliant elimination.

Flow ERP migrates from QuickBooks Online in under 2 minutes, and books are live in 11 days or less. Account Harmonization — the process of standardizing chart of accounts naming conventions across entities using AI — handles the COA alignment on the way in, so the account structure you've built in this guide carries forward without manual remapping. For contractors whose accounting system wasn't built for the business they're running now, Flow is the path to continuous close without a six-figure implementation.

Start with the right COA — then let the reporting run itself

The logical sequence is COA structure first, QBO mapping second, and live reporting third — each step builds directly on the one before it. Get the account structure right in Excel, import it cleanly into QuickBooks Online with the correct types and dimensions, and the reporting layer has accurate data to pull from.

Two concrete next steps:

  • Staying on QBO: Download the template above, map it into QuickBooks Online using the steps in this guide, and connect LiveFlow FP&A to get a live WIP schedule and job GP dashboard in Google Sheets without a single manual export.

  • Multi-entity contractors managing 3+ entities or locations: If your close keeps slipping because QuickBooks wasn't built for consolidation, book a demo of Flow ERP to see continuous close and multi-entity consolidation without a big-bang migration. Within the first week, you'll have all entities in one workspace and consolidated job cost reports that update in real time.

Frequently asked questions

Here is what matters most before you compare options.

What does a chart of accounts mean for construction finance teams?

A chart of accounts (COA) is the complete numbered list of GL accounts a company uses to record every financial transaction — and for construction finance teams, it's the structural foundation that determines whether job costing, WIP, and retainage are reportable or not. A generic COA treats all revenue and costs the same; a construction-specific COA separates contract revenue, change order revenue, direct job costs, burden, and G&A into distinct ranges so project-level profitability is measurable without manual reconciliation. Without the right COA structure, every WIP schedule and job GP report requires a spreadsheet rebuild from scratch each period.

How does a construction chart of accounts connect to WIP tracking and over/underbilling?

WIP tracking and over/underbilling calculations depend entirely on two balance sheet accounts that must exist in the COA: costs in excess of billings (the WIP asset, where costs exceed what's been invoiced) and billings in excess of costs (the overbilling liability, where invoiced amounts exceed work performed). Without dedicated accounts for these, the WIP schedule has no source data to pull from and over/underbilling can't be calculated accurately. Once these accounts are in the COA, LiveFlow FP&A reads them directly from QuickBooks Online to produce a live WIP schedule that updates automatically.

Can QuickBooks Online handle construction job costing and WIP natively with a standard COA?

QuickBooks Online supports job-level cost tracking through Customers/Jobs and class tracking, and it can accommodate the construction-specific accounts in this template (retainage receivable, costs in excess of billings, billings in excess of costs) as Other Current Assets and Other Current Liabilities. Where QBO falls short is in producing live WIP schedules and consolidated job GP reports automatically — those still require a manual export and spreadsheet rebuild each period. LiveFlow FP&A closes that gap by connecting QBO data to Google Sheets reporting that updates without manual exports.

How do LiveFlow FP&A and Flow ERP help without replacing the GL on day one?

LiveFlow FP&A sits on top of your existing QuickBooks Online account and connects to it directly — your GL stays in QBO, and LiveFlow FP&A pulls live data into Google Sheets to produce WIP schedules, job GP dashboards, and retainage aging reports that update automatically. Flow ERP is the option when QBO itself is the bottleneck: it migrates your QuickBooks Online books in under 2 minutes and goes live in 11 days or less, replacing QBO rather than reporting on top of it — without the six-figure implementation cost of NetSuite or Sage Intacct.

How do you set up a chart of accounts for a construction company from scratch?

Setting up a construction chart of accounts from scratch starts with establishing numbered account code ranges: 1000s for assets (including retainage receivable and WIP accounts), 2000s for liabilities (including retainage payable and billings in excess of costs), 3000s for equity, 4000s for income with contract revenue and change order revenue as separate accounts, 5000s for direct job costs, 6000s for burden and indirect field costs, and 7000s for G&A. Build the list in Excel first using the template structure in this guide, then import it into QuickBooks Online by matching each account to the correct QBO account type and detail type. Enable Classes and Customers/Jobs tracking in QBO settings after import to activate job-level and cost-code dimensions without multiplying the GL account list.

In the Articles

Supercharge your finance operations

LiveFlow is an agent of Plaid Financial Ltd. (Company Number: 11103959, Firm Reference Number: 804718), an authorized payment institution regulated by the Financial Conduct Authority under the Payment Services Regulations 2017. Plaid provides you with regulated account information services through LiveFlow as its agent.

© LiveFlow. All rights reserved.

LiveFlow is an agent of Plaid Financial Ltd. (Company Number: 11103959, Firm Reference Number: 804718), an authorized payment institution regulated by the Financial Conduct Authority under the Payment Services Regulations 2017. Plaid provides you with regulated account information services through LiveFlow as its agent.

© LiveFlow. All rights reserved.

LiveFlow is an agent of Plaid Financial Ltd. (Company Number: 11103959, Firm Reference Number: 804718), an authorized payment institution regulated by the Financial Conduct Authority under the Payment Services Regulations 2017. Plaid provides you with regulated account information services through LiveFlow as its agent.

© LiveFlow. All rights reserved.

LiveFlow is an agent of Plaid Financial Ltd. (Company Number: 11103959, Firm Reference Number: 804718), an authorized payment institution regulated by the Financial Conduct Authority under the Payment Services Regulations 2017. Plaid provides you with regulated account information services through LiveFlow as its agent.

© LiveFlow. All rights reserved.