- A cost code says what was built; a cost type (L, M, S, E, O) says what kind of cost it was.
- Base codes on CSI MasterFormat so they compare across jobs and specs.
- A code over on most jobs is an estimating problem; over on one job is a site or coding problem.
- Give change orders their own codes so base-scope variance stays clean.
How cost codes are structured
Most contractors combine two things: a cost code for what was built and a cost type for what kind of cost it was.
| Part | Example | Meaning |
|---|---|---|
| Division | 06 | Wood, plastics and composites (CSI MasterFormat) |
| Code | 06-110 | Wood framing |
| Cost type | L · M · S · E · O | Labor, material, subcontract, equipment, other |
CSI MasterFormat organises work into 50 divisions (00–49) — 03 Concrete, 06 Wood, 09 Finishes, 22 Plumbing, 23 HVAC, 26 Electrical and so on. Using it, even loosely, makes codes comparable across jobs and with specifications.
How many cost codes should you use?
Enough to separate costs that behave differently, few enough that the field codes them correctly. For a self-performing contractor that is usually a few dozen to a couple of hundred active codes per job, depending on how much work is self-performed. Signs you have too many: large amounts in catch-all codes, and the same work coded differently on different jobs. Too few: variance you can see but cannot explain.
Reading cost codes across jobs
A single job’s cost-code report tells you which codes are over. Comparing the same code across every job tells you why:
- Over on most jobs — for example, 01-100 supervision over on five of eight jobs and on past jobs too — is an estimating problem. The rate in the estimate is low; fix the next bid, not the crew.
- Over on one job only, far outside the usual spread, is a site or coding problem. Check for miscoded cost first: labor for one scope booked to another is common and easy to fix.
- Under on most jobs is room to sharpen the bid.
A statistical outlier test (how many standard deviations a job sits from the code’s average) separates the two automatically. The cost-codes view in the demo shows a code-by-job heatmap and these reads on sample data.
For more inputs, a second forecast and a shareable link: the markup vs margin calculator →
Keeping codes consistent
- Publish one standard code list and lock job setup to it.
- Map legacy or per-job codes to the standard in reporting rather than re-coding history.
- Give change orders their own codes so base-scope variance stays clean.
- Review the top unexplained variances weekly — miscoding is cheapest to fix in the week it happens.
Changing the structure without breaking history
Cost code lists grow until nobody trusts them. Fixing one is worth doing, but a new structure on day one of a new year orphans every past job's cost unless it comes with a crosswalk:
- Map every old code to a new code and cost type, with a written rule for codes that split or merge.
- Start the new list on new jobs; leave open jobs on the old codes unless they are being migrated anyway.
- Report history through the crosswalk so estimate-versus-actual still compares like with like.
The same crosswalk discipline is the core of a system change — see construction data migration.

A cost code list: division, code, description, cost types used and unit of measure.
6 columns: 6 you fill in. In the Excel version, the header row stays frozen with filters on it, and the workbook opens on an Instructions sheet that lists every column below.
Every column, and how it is captured
| Column | Type | What goes in it |
|---|---|---|
| Division | Text | Free text. |
| Cost code | Text | Cost code from your cost code list, matching the estimate and the ERP. |
| Description | Text | What the line is, in words the other party will recognise. |
| Cost types used | Text | Free text. |
| Unit of measure | Text | Free text. |
| Notes | Text | Anything that explains the row; free text. |
See it on real-looking numbers
Constructelligence is a construction intelligence platform: it reads your ERP, project and field systems read-only and does this arithmetic every week, for every job. The demo runs it on a sample eight-job portfolio.
Try the demoJoin the private betaFrequently asked questions
What are cost codes in construction?
Cost codes are the categories every cost on a job is recorded against — usually a code for the scope of work, often based on CSI MasterFormat divisions, combined with a cost type such as labor, material, subcontract or equipment.
What is CSI MasterFormat?
MasterFormat is the Construction Specifications Institute's standard for organising construction work into 50 numbered divisions, such as 03 Concrete, 09 Finishes and 26 Electrical. Many contractors base their cost codes on it.
How many cost codes should a construction company have?
Enough to separate costs that behave differently and few enough to be coded correctly in the field — for a self-performing contractor, usually a few dozen to a couple of hundred active codes per job.
How do you analyse cost code variance?
Compare each code with its budget on a job, and then compare the same code across every job. A code over on most jobs points to an estimating assumption; a code over on one job only points to a site or miscoding problem.
How many cost codes should a contractor have?
As few as the decisions they support. Every code should be one an estimator prices and a PM manages; codes that are never budgeted or never reviewed add coding errors without adding information.
Should construction cost codes follow CSI MasterFormat?
It is a common and useful starting point, especially for trades that bid from specifications, but use only the divisions and sections you actually price, and add cost types (labor, material, subcontract, equipment) rather than more codes.
Related guides
More in Forecasting & cost
- Committed cost in construction: track buyout and the exposure still to buy
- Earned value management for construction, explained with one job
Free tools for this topic: Construction cost overrun calculator · Construction labor burden calculator · Construction markup vs margin calculator
All forecasting & cost resources →