Skip to main content
Skip to main content

🏷️ Cost Coding Guide

Cost codes are the foundation of job costing. Without them, you can't know if you're making or losing money on each part of a project.

Key Principle

You can't manage what you don't measure. Cost codes let you track actual costs against budget—by phase, by trade, by activity.

What Are Cost Codes?

Cost codes are a standardized numbering system that categorizes costs by:

  • Division (CSI or custom)
  • Phase (foundation, framing, finish, etc.)
  • Cost type (labor, material, equipment, sub)

Example Cost Code Structure

03-1100-L
│ │ │
│ │ └── Cost Type: L=Labor, M=Material, E=Equipment, S=Sub
│ │
│ └── Activity: 1100 = Formwork

└── Division: 03 = Concrete

Standard Cost Code Systems

Industry standard used by most GCs:

DivisionDescription
01General Requirements
02Existing Conditions
03Concrete
04Masonry
05Metals
06Wood, Plastics, Composites
07Thermal & Moisture Protection
08Openings
09Finishes
10Specialties
11Equipment
12Furnishings
13Special Construction
14Conveying Equipment
21Fire Suppression
22Plumbing
23HVAC
26Electrical
27Communications
28Electronic Safety & Security
31Earthwork
32Exterior Improvements
33Utilities

Custom Systems

Some contractors create their own systems:

  • Simpler than CSI
  • Matched to their work type
  • Easier for field to use
  • May not translate to other projects

Setting Up Cost Codes

Start with Your Estimate

Your cost codes should match how you estimate:

  1. Review your estimate categories
  2. Map each line item to a cost code
  3. Add subcategories as needed
  4. Keep it consistent across projects

Level of Detail

Too few codes:

  • Can't identify problem areas
  • "Concrete" is one line item

Too many codes:

  • Hard for field to use
  • Too much administrative burden
  • Data becomes meaningless

Right level:

  • 20-50 codes for typical project
  • Matches how you manage work
  • Field can easily code time and materials

Example: Electrical Contractor

26-0000 - General Electrical
26-0100 - Temporary Power
26-0500 - Underground
26-1000 - Rough-in (residential)
26-1100 - Rough-in (commercial)
26-2000 - Wire & Cable
26-3000 - Devices & Trim
26-4000 - Panel & Switchgear
26-5000 - Lighting Fixtures
26-6000 - Fire Alarm
26-9000 - Punch List & Warranty

Cost Type Suffixes

Add suffix to identify cost type:

SuffixCost Type
-LLabor
-MMaterial
-EEquipment
-SSubcontractor
-OOther

Full code: 26-2000-L = Wire & Cable Labor

Using Cost Codes

Time Tracking

Employees code their time to:

  • Show what they worked on
  • Track hours by activity
  • Compare actual vs. budget

Best practices:

  • Train crews on codes
  • Provide code sheets
  • Review coded time daily
  • Correct errors immediately

Material Coding

Code materials when:

  • Placing purchase orders
  • Receiving deliveries
  • Issuing to field
  • Entering invoices

Match:

  • Material to activity
  • Tracks consumption by phase
  • Reveals over/under purchasing

Subcontractor Coding

Code by:

  • Trade/scope
  • Phase of work
  • Change orders separately

Equipment Coding

Track:

  • Rental equipment by phase
  • Owned equipment usage
  • Repairs and maintenance

Budget vs. Actual Comparison

Job Cost Report

CodeDescriptionBudgetActualVariance
03-1100-LFormwork Labor$12,000$14,500($2,500)
03-1100-MFormwork Material$8,000$7,200$800
03-2000-LRebar Labor$6,000$5,800$200
03-2000-MRebar Material$15,000$16,200($1,200)
03-3000-LPlacement Labor$8,000$7,500$500
03-3000-MConcrete Material$22,000$23,100($1,100)

This tells you:

  • Formwork labor is over budget (problem!)
  • Rebar material was more expensive than estimated
  • Overall concrete is trending over budget

What to Do With the Data

When over budget:

  1. Investigate the cause
  2. Identify if it's a one-time issue or trend
  3. Adjust approach if ongoing
  4. Update forecast
  5. Look for recovery elsewhere

When under budget:

  1. Verify coding is correct
  2. Confirm quality isn't suffering
  3. Document what worked
  4. Apply learnings to future projects

Common Mistakes

1. Inconsistent Coding

Problem: Different people code same work differently Solution: Training, code sheets, regular reviews

2. Too General

Problem: Everything goes to "Misc" or one code Solution: Require specific coding, reject generic entries

3. Not Reviewing

Problem: Reports generated but not analyzed Solution: Weekly cost review meetings, action items

4. Coding After the Fact

Problem: Time coded weeks later from memory Solution: Daily time entry, same-day coding

5. Estimate Doesn't Match Codes

Problem: Can't compare budget to actual Solution: Build estimate using standard cost codes

Implementation Tips

Rolling Out Cost Codes

  1. Design the system - Match your work, keep it simple
  2. Create documentation - Code descriptions, examples
  3. Train the team - Everyone who codes time or costs
  4. Start with new project - Don't change mid-project
  5. Review regularly - Catch errors early
  6. Refine as needed - Add/modify codes based on use

Getting Field Buy-In

Make it easy:

  • Provide code cards
  • Use intuitive codes
  • Don't require too much detail
  • Give feedback on results

Explain the why:

  • "This tells us if we're making money"
  • "Helps us bid better next time"
  • "Identifies problems early"

Software Integration

Time tracking apps:

  • Digital time entry
  • Dropdown code selection
  • GPS verification
  • Real-time reporting

Accounting integration:

  • Codes match accounting system
  • Automatic cost allocation
  • Real-time job costing
  • Budget variance alerts