Start free

Job Costing First: Construction Chart of Accounts with ERP Mapping

Construction controller mapping job cost accounts

A construction chart of accounts has to do one job above everything else: connect every dollar spent to a specific job, phase, and cost code, while keeping retainage, work-in-progress, and overbilling separate from the rest of the general ledger. Get that structure right and job costing, WIP schedules, and financial statements all pull from the same clean data. Start by grabbing a sample layout and mapping your cost codes to it before you touch anything else in your books.


TL;DR:

  • Properly linking every dollar to specific jobs, phases, and cost codes ensures accurate job costing and WIP reporting, with dedicated accounts for retainage and overbilling.
  • Asset and liability accounts must include separate retainage receivable and payable, along with specific WIP accounts labeled for excess billing or earned but unbilled revenue.
  • Using a job and cost code dimension system prevents account explosion, allowing scalable, consistent record-keeping across multiple projects.
  • Maintaining discipline through monthly reconciliation of WIP, open receivables, payables, and budget tracking is critical to sustaining accurate job-level profitability data.
  • An integrated ERP system automates account mapping and enforces data consistency, reducing manual errors and speeding up monthly WIP close processes.

Designflow-build
Align Job Costs With Your ERP
DesignFlow Build combines project management, accounting, and field operations to reduce manual work and keep construction data cohesive.
Visit DesignFlow Build

Table of Contents

Essential accounts every construction COA needs

A construction chart of accounts needs more precision than a standard small-business template because every account has to eventually roll up into job-level profitability. The five groups below are the backbone.

Assets need to separate operating cash from job-specific receivables. Beyond standard cash and accounts receivable, you need a Retainage Receivable account and a WIP asset account often labeled “Costs and Estimated Earnings in Excess of Billings.” These are not optional line items. They are what a bank or surety looks for first when assessing your financial position, according to CFMA’s guidance on reading a WIP schedule.

Liabilities mirror the asset side. You need Accounts Payable, a dedicated Retainage Payable account, and a liability account for “Billings in Excess of Costs and Estimated Earnings,” which captures overbilled positions.

Equity stays close to standard structure: owner’s equity or retained earnings, with draws or distributions tracked separately if the entity is a pass-through.

Revenue and COGS need to break out by cost type, not just lump into “cost of goods sold.” At minimum, separate:

Overhead accounts cover general and administrative costs that do not attach to a specific job: office rent, admin salaries, insurance, and professional fees. Many contractors also build an overhead allocation account that distributes a portion of G&A costs across active jobs for more accurate job-level margin reporting.

The naming convention matters here as much as the structure. “Direct Labor, Job 1042, Framing” tells you more at a glance than “Labor Expense,” and it is the naming pattern that lets a construction-specific chart of accounts actually support job costing instead of just satisfying a tax preparer.

How WIP, retainage, and ASC 606 shape your accounts

Work-in-progress accounting is where most construction charts of accounts fall apart, usually because the underlying GL was not built to support the percent-complete method in the first place.

The standard calculation uses cost-to-cost: percent complete equals costs incurred to date divided by total estimated costs for the job, a method confirmed as the industry standard by guidance on FASB’s contract asset and liability rules. Multiply percent complete by total contract value to get earned revenue. Compare earned revenue to billed-to-date, and the variance tells you whether you are overbilled or underbilled on that job.

That variance needs its own home in the GL, not a manual spreadsheet adjustment at quarter-end. Three accounts carry the weight:

  1. Costs and Estimated Earnings in Excess of Billings (an asset, for underbilled positions)
  2. Billings in Excess of Costs and Estimated Earnings (a liability, for overbilled positions)
  3. Retainage Receivable and Retainage Payable (tracked separately from standard AR and AP)

Retainage gets its own accounts because lumping it into general AR and AP distorts your aging reports and cash flow visibility, a point practitioner guidance on contract assets and liabilities under ASC 606 makes directly: dedicated accounts like Retainage Receivable and Retainage Payable keep aging accurate and make reconciliation to contract assets and liabilities straightforward for sureties and lenders.

The WIP schedule is the earliest warning system you have for job profitability, according to CFMA’s practitioner guidance, which recommends a three-line monthly check: percent complete, estimated margin, and billing position. Run that check every month, not every quarter, and margin fade shows up while you can still do something about it.

A typical journal entry for recognizing earned revenue on an underbilled job debits the WIP asset account and credits contract revenue for the variance between earned revenue and billed-to-date. For an overbilled job, you credit the WIP liability account instead. The mechanics are explained in more depth in our walkthrough of construction revenue recognition.

WIP journal entry paths for billing positions

Setting up account numbers and cost-code segments

A numbering scheme keeps your chart of accounts predictable as it grows, and it matters more in construction than in most industries because you are layering job-level detail on top of standard GL structure.

A common scheme uses number ranges by account type: 1000 to 1999 for assets, 2000 to 2999 for liabilities, 3000 to 3999 for equity, 4000 to 4999 for revenue, 5000 to 5999 for direct costs, and 6000 to 6999 for overhead. Within each range, leave gaps (1010, 1020, 1030) so you can insert new accounts later without renumbering everything.

The bigger decision is what belongs in the GL as its own account versus what belongs as a segment or dimension attached to a transaction.

This separation is what practitioner commentary on retainage guidance means when it stresses designing a chart of accounts around operational KPIs instead of just tax filing: dimensions keep the GL lean while still producing job-level detail.

Keeping the chart of accounts accurate month over month

A chart of accounts is only as good as the discipline behind maintaining it, and construction firms that skip monthly routines usually discover problems during tax season instead of when they could still fix them.

  1. Reconcile the GL’s WIP accounts against the actual WIP schedule every month, not every quarter.
  2. Review open accounts payable and accounts receivable aging alongside retainage balances to catch misclassified entries.
  3. Compare purchase orders against committed costs to catch jobs trending over budget before they close out.
  4. Run a change-control step before adding or retiring any GL account, so the chart does not drift into duplicate or inconsistent entries.
  5. Flag red flags immediately: margin fade between reporting periods, overbilling that does not reconcile to actual progress, or retainage treated inconsistently across jobs.

A properly maintained chart of accounts enables KPIs that a generic bookkeeping setup cannot produce, including days sales outstanding and job-level gross margin, metrics that matter just as much for trade contractors tracking profitability KPIs as they do for general contractors.

Pro Tip: Put the monthly WIP reconciliation on the same calendar day every month, tied to your billing cycle, so it never slides to “whenever we get to it.”

A sample layout you can adapt to your company

A compact sample chart of accounts gives you a starting point, but every construction firm needs to adjust it based on company size, contract type, and how many active jobs run at once.

Account number Account name Type
1010 Cash, Operating Asset
1000 to 1999 Accounts Receivable Asset
1000 to 1999 Retainage Receivable Asset
1000 to 1999 Costs/Earnings in Excess of Billings (WIP) Asset
2000 to 2999 Accounts Payable Liability
2000 to 2999 Retainage Payable Liability
2000 to 2999 Billings in Excess of Costs/Earnings (WIP) Liability
4000 Contract Revenue Earned Revenue
5000 to 5999 Direct Labor COGS
5000 to 5999 Materials COGS
5000 to 5999 Subcontractor Costs COGS
6000 to 6999 G&A Overhead Overhead

Map each COGS account to your job cost codes as a dimension rather than creating new GL lines per job. When you import this into accounting software, populate the account type, normal balance, and a tax mapping field if your software uses one, and confirm that your job and cost code dimensions carry through to reporting, a step covered in more detail in our guide to live job cost dashboards.

How an integrated ERP keeps your COA and job costs aligned

Keeping a construction chart of accounts accurate by hand means re-entering the same job and cost code data across spreadsheets, your accounting software, and whatever your field team uses to track hours and materials. Every re-entry is a chance for a cost code to get mapped wrong.

An AI-native ERP that combines accounting, job costing, and field operations in one system enforces account mapping automatically: a cost entered in the field attaches to the right job, cost code, and GL account the first time, with no second entry required.

Contractors report a large reduction in manual data entry and significant monthly savings, with typical implementation running a few weeks and high user adoption rates.

That consistency is what makes a faster monthly WIP close possible, since the reconciliation step described earlier in this guide starts from numbers that already match.

What I’d check first on any construction COA cleanup

Most chart of accounts problems trace back to one habit: treating the GL as a tax document instead of a job-costing tool. Here is the 90-day fix I give people starting from scratch.

Weeks 1 to 2: inventory every existing account and flag duplicates or vague names. Weeks 3 to 6: map every cost code to a GL account and a job dimension. Weeks 7 to 10: run your first full WIP cycle and reconcile it against the three-line check. Weeks 11 to 13: document the governance process so the next person who touches the chart does not undo the work.

The most common pitfall is lumping retainage into regular AR and AP, which quietly wrecks your aging reports for months before anyone notices.

— Keith

Get your chart of accounts and job costing working together

Building a clean construction chart of accounts is only half the job. Keeping it accurate every month, across every job, is where most firms lose the thread. Our Construction ERP ties your GL directly to job cost codes and WIP data as field entries happen, so the mapping holds without a monthly cleanup project.

Designflow-build

Check current pricing and plans to see which setup fits your team size and how quickly you could get your WIP close running on live numbers instead of spreadsheets.

FAQ

How do I set up a chart of accounts for a construction company?

Start with standard asset, liability, equity, revenue, and overhead accounts, then add construction-specific accounts for retainage receivable and payable, plus WIP asset and liability accounts for over and underbilling. Map your job cost codes as dimensions attached to transactions rather than creating a new GL account for every job.

What are the five basic chart of accounts categories?

The five core categories are assets, liabilities, equity, revenue, and expenses, with expenses in construction typically split into direct job costs and overhead. Construction firms add retainage and WIP accounts within the asset and liability categories to support percent-complete accounting.

What are the typical accounting entries for a construction company?

Common entries include recording direct costs by job and cost code, recognizing earned revenue based on the cost-to-cost percent-complete method, and adjusting WIP asset or liability accounts for the variance between earned revenue and billed-to-date, a method confirmed in FASB guidance for contractors. Retainage entries post to dedicated receivable and payable accounts rather than standard AR and AP.

How do you account for construction costs?

Direct costs like labor, materials, and subcontractor charges post to job-specific cost codes that roll up into COGS accounts on the income statement. Overhead costs that do not attach to a specific job post separately and may be allocated across active jobs for more accurate job-level margin reporting.

Sources