Job costing and finance

How to build a construction cost code structure

A good cost code structure has two parts: a short list of work codes (what was built) and a fixed set of cost types (labor, material, subcontract, equipment, other). Number them consistently, use them in the estimate and the books, and keep the list short enough that the field codes accurately.

An office manager and contractor review invoices with a calculator and laptop in a construction office.
Review invoices, committed costs, and cash timing together before making project decisions. AI-generated illustration.

A construction cost code structure is the list of categories you use to budget and track every dollar on a job. Build it in two layers. The first layer is the work: phases or divisions such as sitework, concrete, framing, or electrical rough-in. The second layer is the cost type: labor, material, subcontract, equipment, and other. A cost lands on one work code and one cost type, for example 06-100 Rough Framing, Labor. Number the codes the same way on every job, use the exact same list in your estimates and your accounting, and keep it short enough that a foreman can pick the right code on a phone in ten seconds.

The structure matters more than the software. Job costing, WIP reports, and estimating history all depend on it. A messy list produces messy numbers no matter what system you run.

Start with a standard or build your own?

Many general contractors base their codes on MasterFormat, the specification numbering system published by the Construction Specifications Institute, which CSI describes as the industry's standardized language for project documentation. Its divisions, such as Division 01 General Requirements, Division 09 Finishes, and Division 26 Electrical, line up with how drawings and specs are organized, which makes buyout and subcontract scopes easier to match. CSI revises the standard from time to time, so check which edition your architects are using.

Trade contractors usually do better with codes built around how their own work happens. An electrician thinks in underground, rough-in, trim, and gear. A residential builder thinks in phases: foundation, framing, dry-in, mechanical rough, drywall, finishes. Either approach works. What matters is that the code matches how the work is estimated and how the crew actually builds it.

How to build your cost code structure in seven steps

1. Pull your last ten estimates

List the line items you actually price. If your estimates have 18 recurring sections, that is your starting point. Codes that never appear in an estimate will never have a budget to compare against.

2. Group them into 15 to 40 work codes

Combine items that you would never make different decisions about. Interior and exterior paint might be one code for a GC who subs it out, and two codes for a painting contractor. Ask: if this line ran over budget, would I want to know separately? If not, merge it.

3. Add cost types as a separate layer

Do not create "Framing Labor" and "Framing Material" as two codes. Create one Framing code and attach cost types to it. This keeps the list short and lets you report labor across all codes in one view, which is where most fade starts.

4. Pick a numbering scheme and leave gaps

Use a pattern like division-section (06-100, 06-200) or phase numbers in tens or hundreds. Gaps let you add a code later without renumbering. Keep the number format identical across estimating, project management, and accounting.

5. Add standard codes every job needs

  • General conditions: supervision, temporary facilities, cleanup, dumpsters.
  • Change orders: a code or code suffix so approved change work can be tracked against its own budget.
  • Punch and warranty: so closeout cost is visible instead of buried in the last trade code.
  • Rework: optional, but powerful if you want to measure it.

6. Write a one-page code guide

For each code, one line on what goes there and what does not. "06-100 Rough Framing: walls, floors, roof framing, blocking. Not: trim carpentry (06-200), doors (08-100)." Print it, pin it in every truck, and load it into the timesheet app.

7. Lock it, then review once a year

Only one person can add codes. Changes happen at an annual review, not mid-job. Codes that collected almost no cost all year get merged; codes that hold a huge share of cost with frequent overruns may get split.

Worked example: a residential remodeler's code list

Say a remodeler running kitchens, baths, and additions builds a code list. Each code takes the five cost types (L labor, M material, S subcontract, E equipment, O other). This is an illustration, not a standard.

Example remodeling cost codes
CodeNameTypical cost types used
01-000General conditions and supervisionL, O
01-100Permits and feesO
02-100Demolition and haul-offL, E, O
03-100Foundation and concreteS, M
06-100Rough framingL, M
06-200Finish carpentry and trimL, M
07-100Roofing and exterior envelopeS, M
09-100Drywall and finishS
09-300TileS, M
09-900PaintS
12-100Cabinets and countertopsM, S
22-100PlumbingS
26-100ElectricalS
90-000Change ordersL, M, S, O
95-000Punch and warrantyL, M

Fifteen codes. The carpenter on site uses four of them on a typical day. The estimator prices the same fifteen. The bookkeeper codes every supplier bill to one of them. After a year, the owner can see that tile ran over budget on 7 of 11 bathrooms, which says more about estimating than any single job report could.

Getting the field to code correctly

The best structure fails if crews guess. Put the codes for each job on the timesheet app or paper sheet, filtered to the codes that job actually budgets, so a framer on a bathroom job is not scrolling past sitework. Have the foreman approve hours daily, not weekly. And close the loop: when the PM sees hours on the wrong code, tell the crew lead that day. Within a few weeks, accuracy improves because people see the numbers are being used.

Mistakes to avoid

  1. Too many codes. A 400-line list guarantees miscoding. Detail you cannot trust is worse than less detail you can.
  2. Codes that differ between estimating and accounting. Then no budget-to-actual comparison is possible without manual mapping.
  3. Mixing work and cost type in one list. You lose the ability to see all labor at once.
  4. A catch-all "miscellaneous" code. It becomes the biggest code on every job. If you must have one, review it weekly.
  5. Changing codes mid-year. Comparisons across jobs and years break.
  6. No code guide. Two people code the same cost two different ways, and both are sure they are right.

Templates, terms, and next steps

Load the code list into the construction budget template and the job cost report template so both share one structure. Related terms: work breakdown structure, job cost report, and direct costs. Then follow how to set up job costing for a construction company and how to build an estimating database so estimates and actuals stay on the same codes.

Smart Business Automator uses one cost code list across estimates, budgets, purchase orders, timesheets, and job cost reports, so the handoff from bid to job does not require re-keying. See estimate to project handoff automation.

Frequently asked questions

Should I use CSI MasterFormat for cost codes?

It works well for commercial general contractors because drawings, specs, and subcontract scopes are organized the same way. Trade contractors and residential builders often do better with codes based on their own phases of work.

How many cost codes is too many?

When the field cannot pick the right code quickly, or when many codes collect almost no cost in a year. Many contractors work with 15 to 40 active work codes plus a short list of cost types.

What are cost types in construction?

Cost types split each work code by the kind of cost: usually labor, material, subcontract, equipment, and other. They let you see, for example, all labor across a job in one total.

Can I change my cost codes after setting up job costing?

Yes, but do it between years or between jobs, not in the middle, and map old codes to new ones so historical comparisons still work.

Sources

  1. Construction Specifications Institute: Standards overview
  2. Construction Specifications Institute: MasterFormat 2026
Written and edited by

Maurice Francois writes and edits construction operations guides for Smart Business Automator. More from Maurice on the Scaling Legends podcast.

Get a free assessment