Job Cost Codes: How to Set Up Cost Codes for Time Tracking
Quick Answer
Job cost codes are short codes employees select when they clock in or record time, so hours are tied to a specific type of work, such as demolition, framing or service calls. To set them up, list the main types of work you estimate and bill, group them into phases, give each a simple number and name, keep the list short enough for crews to pick quickly and use the same codes in estimates, timesheets and reports so you can compare estimated and actual hours.
Knowing how many hours a crew spent on a job is useful. Knowing how many of those hours went to demolition, rough-in, finish work and cleanup is far more useful. That's what job cost codes do. They break labor down by type of work, so you can see which parts of a job made money, which ran over and how to price the next one.
This guide explains how to set up cost codes for time tracking, how many to use and how to get crews to use them correctly, with a free cost code list template.
What Is a Job Cost Code?
A job cost code is a label for a category of work. When employees clock in or switch tasks, they choose the job and the cost code, so their hours are recorded against both. The same codes can be used for labor, materials, equipment and subcontractors, so all costs for each type of work roll up together.
| Level | Example |
|---|---|
| Job | Smith kitchen remodel |
| Phase | 02 Demolition |
| Cost code | 02-100 Cabinet removal |
| Cost type | Labor, materials, equipment, subcontractor |
Why Use Cost Codes?
- See where labor goes on every job.
- Compare estimates with actuals by type of work.
- Price future jobs using real data.
- Catch overruns early while the job is still running.
- Support change orders with documented hours.
- Spot training needs when one crew is much slower on a task.
Free Cost Code List Template
Cost Code List
Company: __________ | Version: ______ | Effective date: ______ | Owner: __________
| Code | Name | Description (what's included) | Unit of measure | Used for |
|---|---|---|---|---|
| 01-000 | General conditions | Setup, supervision, cleanup, meetings | Hours | Labor |
| 02-000 | Demolition | Removal and disposal | Hours | Labor, equipment |
| 99-000 | Change orders | Approved extra work | Hours | All |
How to Build Your Cost Code List
- Start with how you estimate. Your cost codes should match the line items in your estimates, so actuals can be compared.
- Group work into phases, such as site prep, rough-in, finish and closeout.
- List the main tasks in each phase that take meaningful time.
- Give each a number and short name that crews will recognize.
- Write a one-line description of what's included.
- Add general codes for setup, travel between sites, cleanup and meetings.
- Add a change order code so extra work is tracked separately.
- Review the list with field leads before rolling it out.
Numbering Systems
| Style | Example | Best for |
|---|---|---|
| Phase-task | 03-200 Electrical rough-in | Contractors with multi-phase jobs |
| Short numeric | 310 Drywall hang | Small lists |
| Letter codes | SVC (service call), INS (install) | Service businesses |
| Industry standard divisions | Based on standard construction divisions | Commercial construction |
Pick a system and keep it consistent. Leave gaps in numbering, such as 100, 200, 300, so you can add codes later without renumbering.
How Many Cost Codes Should You Use?
This is where most businesses go wrong. Too few codes and the data isn't useful. Too many and employees pick the wrong one or the same one every time. For most small businesses, 10 to 30 active codes is plenty. Each code should represent work you actually estimate separately and want to compare.
| Too few | About right | Too many |
|---|---|---|
| "Labor" | Demo, framing, electrical, plumbing, drywall, paint, cleanup | Separate codes for every wall, room and fixture |
| No insight into where time goes | Clear comparisons to estimates | Crews guess; data becomes unreliable |
Cost Codes by Industry
| Industry | Example codes |
|---|---|
| Remodeling | Demo, framing, rough plumbing, rough electrical, drywall, finish carpentry, paint, cleanup |
| HVAC | Service call, install, maintenance visit, ductwork, startup and testing, travel |
| Landscaping | Mowing, planting, hardscape, irrigation, cleanup, equipment hauling |
| Cleaning | Routine cleaning, deep clean, floor care, windows, supply restocking |
| Electrical | Rough-in, trim-out, service upgrade, troubleshooting, inspection |
Getting Crews to Pick the Right Code
- Keep the list short and use names crews actually say.
- Show only the codes relevant to each job when possible.
- Train crews with real examples from your jobs.
- Make switching codes during the day quick, from a phone.
- Have leads review codes at the end of each day.
- Explain why it matters: better bids and fewer surprises.
If everyone always picks the first code on the list, the list is too long or the training was too short.
Switching Codes During the Day
Crews often move between tasks. Ask them to switch codes when they change to a different type of work that lasts more than a short time, such as 30 minutes. Constant switching for small tasks creates noise, while never switching makes the data meaningless. Agree on a practical rule with your field leads. See how to track time across multiple job sites.
Travel, Setup and Non-Productive Time
Don't hide travel, setup, waiting and cleanup inside task codes. Give them their own codes so you can see how much time they really take. These hours are often the difference between a profitable job and a break-even one. Travel between job sites during the workday is generally work time for hourly employees, so it should be recorded and paid. See travel time pay.
Materials, Equipment and Subcontractors
Use the same cost codes on purchase orders, material receipts, equipment rentals and subcontractor invoices. When all costs share codes, you can see the full cost of each type of work, not just labor. See the purchase order template.
Estimates vs. Actuals by Cost Code
| Code | Estimated hours | Actual hours | Difference | % of estimate |
|---|---|---|---|---|
| 02-000 Demolition | 24 | 20 | -4 | 83% |
| 04-000 Framing | 40 | 52 | +12 | 130% |
| 06-000 Drywall | 32 | 34 | +2 | 106% |
| 09-000 Cleanup | 8 | 14 | +6 | 175% |
This sample shows placeholder numbers. In this case, framing and cleanup ran well over estimate. Reviewing a report like this mid-job lets you adjust before the job finishes, and reviewing it after the job helps you estimate the next one. See project budget tracking.
Cost Codes and Change Orders
Track approved change order work under its own code, or under a code tied to the change order number. That keeps extra work from making the original scope look over budget and gives you documentation if a client questions the bill. See the change order form.
Cost Codes and Your Work Breakdown Structure
If you plan projects with a work breakdown structure, your cost codes can follow the same structure, so planned work, estimates and actual hours all line up. See work breakdown structure.
Example: A Remodeling Company
A remodeling company tracked hours by job only. Jobs often went over, but the owner couldn't tell why. He created 14 cost codes that matched his estimate sections, added codes for travel and cleanup and asked crews to switch codes on their phones when they changed tasks. After three months, the reports showed that cleanup and punch-list work averaged twice what he estimated. He adjusted his estimates, and margins improved on the next round of jobs.
Common Mistakes
- Too many codes that crews can't keep straight.
- Codes that don't match estimates, so comparisons are impossible.
- No codes for travel, setup and cleanup.
- Changing codes mid-year without mapping old to new.
- Never reviewing the reports.
- No training for crews.
Cost Code Setup Checklist
| Step | Done? |
|---|---|
| Match codes to estimate line items | |
| Group into phases | |
| Number and name each code | |
| Add travel, setup, cleanup and change order codes | |
| Keep the active list short | |
| Train crews and leads | |
| Review estimates vs. actuals each job |
Rolling Out Cost Codes
- Finalize the list with field leads.
- Load the codes into your time tracking system.
- Train crews in a short meeting with real examples.
- Start with a single job or crew for two weeks.
- Review the data daily and fix confusing codes.
- Roll out to all jobs.
Reviewing Cost Code Data Weekly
Pull a weekly report of hours by job and cost code. Look for codes with no hours where you expected some, which may mean crews are using the wrong code, and codes that are running well over estimate. Talk to the crew lead about anything unusual while the job is still in progress, when there's still time to adjust.
Cost Codes for Service Businesses
Cost codes aren't only for construction. A service business can use them to separate installs, repairs, maintenance visits, warranty work and travel. That shows which services are most profitable, how much unbilled warranty work costs and whether maintenance contracts are priced correctly. See maintenance agreements.
Billable vs. Non-Billable Codes
If you bill clients by the hour, mark each code as billable or non-billable. Non-billable time, like shop work, training or warranty callbacks, is still a real cost, and tracking it shows how much of your crews' time actually produces revenue.
| Code | Billable? |
|---|---|
| Install | Yes |
| Service call | Yes |
| Warranty callback | No |
| Shop and loading | No |
| Training | No |
Payroll and Cost Codes
Cost codes don't change how employees are paid: all hours worked count toward pay and overtime, no matter which code is used. But some businesses pay different rates for different types of work. If you do, make sure the codes map correctly to pay rates and that overtime is calculated using the correct regular rate. Ask your payroll provider how to set it up.
Updating Your Cost Code List
Review the list once or twice a year. Retire codes nobody uses, combine codes that are always confused and add codes for new services. When you change codes, keep a map from old to new so year-over-year reports still make sense.
Using Cost Code History to Estimate
After several jobs, average actual hours by cost code for similar work, such as hours of drywall per 1,000 square feet or hours per service call. Those averages become your estimating standards and make bids faster and more accurate. Update them as your crews get faster or your methods change.
Cost Codes and Daily Reports
Many crews already fill out a daily report with work completed, crew size and issues. Adding cost codes to the daily report, or having the time clock fill them in, connects the work done with the hours used. A foreman can see in one place that drywall took 18 hours today and two rooms were finished. See the construction daily report.
Common Questions From Crews
- "What if I'm doing two things at once?" Use the code for the main task.
- "What code do I use for waiting on materials?" Use the waiting or downtime code so it's visible.
- "What if I forget to switch codes?" Tell your lead so the timesheet can be corrected that day.
- "Why does this matter?" It helps price jobs correctly so crews aren't rushed by underbid jobs.
Cost Code Quick Reference
| Item | Recommendation |
|---|---|
| Number of codes | 10 to 30 active codes |
| Match to | Estimate line items |
| Always include | Travel, setup, cleanup, change orders |
| Switch codes | When work changes for more than a short time |
| Review | Weekly by job and code |
Example Cost Code List for a Small Remodeler
| Code | Name |
|---|---|
| 010 | General conditions and setup |
| 020 | Travel between sites |
| 100 | Demolition |
| 200 | Framing |
| 300 | Rough plumbing |
| 310 | Rough electrical |
| 400 | Insulation and drywall |
| 500 | Finish carpentry |
| 600 | Paint |
| 700 | Fixtures and trim-out |
| 900 | Cleanup and punch list |
| 990 | Change orders |
A dozen codes like these cover most residential remodeling work. Gaps between the numbers leave room to add codes later, such as 210 for structural repairs, without renumbering the list.
Cost Codes and Bidding
Cost codes pay off most when you bid the next job. Instead of guessing total hours, build the estimate code by code using your averages from past jobs, then add an allowance for anything unusual. Clients often trust detailed estimates more, and if the job changes, you can show exactly which part of the work changed and why the price moved.
Keep a simple file of averages by code and job type, and update it after each completed job so your estimating gets sharper with every project.
Who Owns the Cost Code List?
Assign one person, often the estimator, operations manager or owner, to own the list. That person approves new codes, retires old ones, keeps the code descriptions current and makes sure estimates, purchase orders and timesheets all use the same version. Without an owner, crews and office staff start inventing codes, and the data falls apart.
The owner should also check new jobs before they start to confirm the right codes are active, so crews only see the codes that apply.
Final Thoughts
Cost codes turn your time clock into a job costing tool. Match codes to how you estimate, keep the list short, include travel and cleanup, train crews and review the reports every week. Within a few jobs, you'll know exactly where labor goes and how to price the next job with confidence.
Track Time by Job and Cost Code With Updoot
Updoot's employee time clock lets employees clock in to a job and task from their phones, project management ties hours to each project and the payroll report breaks hours down so you can compare estimates with actual time.
