Construction Job Costing Guide for Contractors (2026)
A $340,000 kitchen remodel should not lose money. But that is exactly what happened to a remodeling contractor in Arizona who shared his story last year. He bid the job with healthy margins, started strong, and felt good about it the whole way through. Then he ran the numbers after closeout. He had lost $18,000.
The problem was not his crew. It was not bad luck. It was bad tracking. He ran his job costing in a spreadsheet that nobody updated until the job was nearly done. By then, material overages and unbilled change orders had eaten his profit and then some.
That story is not unusual. It is happening on jobsites right now. And it is fixable.
This guide covers everything you need to know about construction job costing: what it is, how to set it up step by step, the most common mistakes that drain profits, and the software that makes it automatic. Whether you run three jobs a year or thirty, the fundamentals are the same.
What Is Construction Job Costing?
Construction job costing is the process of tracking every dollar spent on a specific project and comparing it against what you estimated. Simple concept. But the execution is where most contractors fall apart.
Unlike general accounting, which tracks money flowing in and out of your business as a whole, job costing ties every expense to a specific job. Every load of lumber, every hour your crew works, every sub invoice, every equipment rental. All of it gets assigned to the project it belongs to.
Your P&L might say you are profitable. But individual jobs could be bleeding money. A contractor can show $200K in annual profit while losing money on 40 percent of their jobs. The profitable projects mask the losers. Without job-level data, you keep bidding the same unprofitable work because you never identified the problem.
Job costing answers three questions:
- Are we on budget right now, or are we already over?
- Where exactly is the money going?
- Did we actually make what we thought we would make when the job is done?
If you cannot answer those for every active project, you are guessing. And guessing is how contractors go broke while staying busy.
Why Job Costing Matters More Than Your P&L
Here is what job costing actually gives you:
- Profit per project. Not a guess. A number you can trust.
- Bid accuracy. Real cost data from past jobs makes future estimates tighter.
- Early warning on overruns. You see a problem at week two, not after closeout.
- Better decisions on job types. You learn which work makes money and which work you should walk away from.
- Cash flow protection. When you know where a project stands financially, you bill at the right time and predict cash needs accurately.
The math is simple. If a $500,000 project has a 15 percent profit margin, your target profit is $75,000. A 5 percent cost overrun you catch early and correct saves $25,000. That same overrun discovered after closeout is just a $25,000 loss.
Contractors using Projul’s job costing features report catching budget overruns an average of 3 weeks earlier than they did with manual tracking. That is the difference between fixing a problem and absorbing a loss.
The Four Cost Categories Every Job Needs
Every construction project breaks down into four buckets. Miss any one of them and your profit numbers are wrong.
1. Labor
Labor is usually your biggest cost, running 40 to 60 percent of total project expenses depending on your trade. But “labor” is more than just wages. You need to track the fully loaded cost:
- Base hourly wages
- Payroll taxes (FICA, FUTA, state unemployment)
- Workers comp insurance
- Health insurance and benefits
- Paid time off
Most contractors undercount labor by 25 to 40 percent because they only track base wages. If you pay a carpenter $35/hour, the real cost to your business is closer to $47 to $50/hour after burden. Use the loaded rate in your job costing or you will think every job is more profitable than it really is.
Pro tip: Track labor hours by project daily, not weekly. Asking a crew member on Friday what they did on Tuesday is a recipe for bad data.
2. Materials
Materials are straightforward to track but easy to miss on the small stuff. Lumber, concrete, and roofing materials all get logged. But what about the box of screws from the hardware store, the extra tube of caulk, or the replacement drill bit? Those $15 and $30 purchases add up to hundreds per job.
Track materials by:
- Logging every purchase receipt against a job number the same day
- Including delivery charges and sales tax in the material cost
- Tracking waste and returns separately so you know your true consumption rate
Watch for these material cost killers:
- Waste and overages. You budgeted 12 percent waste on tile. Actual waste was 22 percent. That is real money.
- Price increases between estimate and purchase. Lumber alone can swing 15 to 20 percent in a few months.
- Theft and loss. Unfortunate but real. If materials keep disappearing, your job costs will reflect it.
3. Equipment
Equipment costs break into two categories:
Rented equipment is simple. The rental invoice goes to the job that used it.
Owned equipment requires you to calculate an internal hourly or daily rate. Take the purchase price, expected lifespan, annual maintenance costs, and operating expenses (fuel, consumables). Divide by estimated annual usage hours. That gives you a rate you can charge to each job.
Example: A $60,000 skid steer with a 7-year life, $4,000/year in maintenance, and 1,200 hours of annual use costs roughly $11.50/hour to operate. If it sits on one job for 40 hours, that job owes $460 in equipment costs.
Skip this step and you are giving away equipment use for free on your books.
4. Overhead
Overhead is where most contractors lose the plot. These are real business costs that touch every project but do not belong to any single one:
- Office rent and utilities
- Administrative staff salaries
- Vehicle costs (trucks, fuel, insurance)
- General liability and umbrella insurance
- Software subscriptions
- Accounting and legal fees
To allocate overhead, take your total annual overhead and divide it by your total annual direct costs (or direct labor hours). That gives you an overhead rate you apply to each job.
If your annual overhead is $180,000 and your total direct costs are $1,200,000, your overhead rate is 15 percent. A job with $80,000 in direct costs gets $12,000 in allocated overhead. Your true project cost is $92,000, not $80,000.
Contractors who skip overhead allocation think they are making 20 percent margins when they are really making 5 percent.
Job Costing Formulas Every Contractor Should Know
You do not need a finance degree to run job costing. But knowing a few key formulas helps you make sense of the numbers.
Total Job Cost: Direct Labor + Direct Materials + Equipment + Subcontractors + Allocated Overhead = Total Job Cost
Overhead Rate: Total Annual Overhead / Total Annual Direct Costs = Overhead Rate
Burdened Labor Rate: Base Wage + Payroll Taxes + Workers Comp + Benefits = Burdened Rate per Hour
Job Profit Margin: (Revenue - Total Job Cost) / Revenue x 100 = Profit Margin Percentage
Cost Variance: Actual Cost - Budgeted Cost = Variance (negative is under budget, positive is over)
Percent Complete vs. Percent Spent: If you are 40 percent through the work but 60 percent through the budget, you have a problem. This ratio is the fastest way to spot trouble on an active job.
How to Set Up Job Costing Step by Step
Step 1: Build Your Cost Code Structure
Cost codes are the backbone of job costing. They are the categories you assign every expense to. Without them, your cost data is just a pile of receipts.
A typical cost code structure:
| Code | Category |
|---|---|
| 01 | General Conditions (permits, insurance, dumpsters) |
| 02 | Site Work (excavation, grading) |
| 03 | Concrete (footings, slabs) |
| 04 | Framing (lumber, hardware, labor) |
| 05 | Electrical |
| 06 | Plumbing |
| 07 | HVAC |
| 08 | Roofing |
| 09 | Drywall and Finishes |
| 10 | Painting |
You can use the CSI MasterFormat system or build your own. What matters is consistency. Use the same codes across every job so you can compare framing costs this month against framing costs last month and actually learn something.
Pro tip: Start with 10 to 20 codes. Too many codes and your crew will not use them, which defeats the entire purpose.
Step 2: Estimate With Your Cost Codes in Mind
Your estimate needs to match your cost code structure. If your estimate breaks costs down differently than your job costing system, you cannot compare the two. And that comparison is the whole point.
When you build your estimate, assign every line item to a cost code. Every material, every labor hour, every sub bid. This creates your budget baseline.
Here is what a budget baseline looks like for a single cost code:
| Cost Code | Description | Estimated Labor | Estimated Material | Estimated Sub | Total Budget |
|---|---|---|---|---|---|
| 04 | Framing | $32,000 | $28,500 | $0 | $60,500 |
Now when framing starts, every cost that hits code 04 gets compared against that $60,500 budget. You will know if you are on track or headed for trouble. If you need help building better estimates, our guide to estimating a construction job walks through the whole process.
Step 3: Track Labor Costs Daily
Labor is the biggest variable in construction. Material prices are mostly locked in at purchase. But labor hours can swing based on weather, rework, crew experience, and a dozen other factors.
To track labor accurately, you need three things:
- Daily time entries by cost code. Not just “John worked 8 hours.” You need “John worked 5 hours on framing (04) and 3 hours on drywall (09).”
- Burdened labor rates. Your carpenter might earn $35/hour, but his actual cost is more like $52/hour when you add payroll taxes, workers comp, health insurance, and benefits. Use the burdened rate, not the wage rate.
- Overtime tracking. OT at time-and-a-half burns through budgets fast. If your job cost report shows labor running hot, overtime is often the culprit.
Paper timesheets collected weekly are a week old by the time you see them. Digital time tracking where your crew clocks in from their phones and assigns hours to cost codes gives you same-day visibility. That is the difference between catching a budget overrun on day 3 and catching it on day 30.
With cloud-based construction software designed specifically for the trades, these challenges become much more manageable.
Step 4: Track Material Costs at Purchase
Every material purchase needs three pieces of information: what was bought, how much it cost, and which job and cost code it belongs to.
The most common mistake is letting receipts pile up in a truck console for two weeks. By then, nobody remembers which job that extra box of fasteners was for, and it either gets coded to the wrong job or not coded at all.
Get receipts into your system the same day. Take a photo, assign it to the job and cost code, done.
Step 5: Log Equipment and Subcontractor Costs
For owned equipment, calculate an internal rate and charge it to every job based on usage. For rented equipment, code the rental invoice to the right job.
Subs are usually the easiest costs to track because they send invoices with clear amounts. The key is matching those invoices against the original sub bids in your estimate. Watch for change orders from subs that were not captured in your job cost, back charges, and retainage.
Step 6: Run Job Cost Reports Weekly
All this tracking means nothing if you do not review it regularly. A weekly review takes 15 to 20 minutes per job. Look for:
- Cost codes running over budget. Why? Can you course-correct?
- Cost codes significantly under budget. Good news, or did someone forget to log costs?
- Percent complete vs. percent spent. If the numbers do not match, dig deeper.
- Change order impact. Have approved changes been added to the budget?
This weekly habit separates contractors who control their margins from contractors who find out they lost money after the fact.
10 Job Costing Mistakes That Kill Contractor Profits
Most contractors lose money not because they do bad work, but because they make the same tracking mistakes over and over. Here are the most expensive ones.
1. Not Tracking Indirect Costs
Direct costs like lumber, concrete, and subcontractor invoices are easy to assign. But what about fuel to get to the jobsite? Dump fees? Permit costs? Small tool replacements? These indirect costs eat into margins on every project. Most contractors either ignore them or lump them into a vague “overhead” category. The result: your job profit reports look better than reality.
The fix: Create cost codes for common indirect expenses and assign them to jobs just like you would a material purchase.
2. Guessing at Labor Hours
Here is what “tracking labor” looks like at a lot of companies: the foreman fills out a timesheet at the end of the week from memory, rounds to the nearest half hour, and does not break hours down by cost code. That is not tracking. That is guessing. When labor hours are not captured accurately, every number built on them is wrong.
The fix: Capture labor at the point of work with digital time tracking, not days later from memory.
3. Waiting Until the Job Is Done to Review Costs
If the first time you compare your estimate to actuals is after the client has paid and the crew has moved on, you have missed every opportunity to course-correct. Job costing is most powerful in real time.
The fix: Build a weekly review habit. Every Monday, pull up active jobs and compare estimated costs to actual costs by category. Flag anything trending more than 10 percent over.
4. Ignoring Change Order Costs
The client wants to swap countertops. The architect revises a wall layout. Every one of those changes has a cost. If you are not capturing that cost and billing for it, you are doing free work.
Even when contractors handle the billing side, many never update the job cost budget. So the cost report shows the original budget while extra labor and materials float around unassigned.
The fix: Every change order should update two things: the contract value (what the client owes) and the job cost budget (what you expect to spend). Projul’s change order tracking ties scope changes directly to job costs so nothing falls through the cracks.
5. Using One Big Budget Instead of Phases
Tracking costs at the job level only hides phase-level problems. You might be way over budget on site work but under budget on framing, and the totals still look okay. Meanwhile, you keep underbidding site work on every future project.
The fix: Break jobs into phases or cost categories and track costs at that level.
6. Not Reconciling Invoices to Job Costs
Invoices get paid out of a general account, and the job cost system only reflects what was estimated or what someone remembered to log. The gap between what you paid and what your job cost report shows can be significant.
The fix: Match every supplier and subcontractor invoice to a specific job and cost code before it gets paid.
7. Failing to Track Equipment Costs Per Job
If you own equipment, the fuel, maintenance, and depreciation should not all sit in a general equipment line on the P&L. Every job that uses owned equipment looks more profitable than it actually is when those costs are not assigned.
The fix: Establish an internal equipment rate and apply it to jobs based on usage.
8. Copying Last Year’s Estimates Without Updating
Material prices change. Labor rates change. A surprising number of contractors start every new estimate by duplicating a previous one with minor adjustments. That does not work when lumber swings 20 percent in six months.
The fix: Start every estimate with current numbers from your actual job cost data on recent projects.
9. Not Accounting for Your Own Time
The owner spends 10 hours a week managing a project, handling client calls, running to the supply house. None of that time gets logged against the job. Your job costs are understated and your margins are inflated.
The fix: Set an hourly rate for your management time and log it against jobs the same way you log crew labor.
10. No Feedback Loop Between Completed Jobs and Future Bids
You finish a job, maybe do a quick review, and move on. The lessons from that job never make it back into your estimating process. Without a feedback loop, you are doomed to repeat the same pricing mistakes.
The fix: After every job, spend 30 minutes comparing your estimate to your actuals line by line. Adjust your estimating templates based on what you find.
How Much Do These Mistakes Actually Cost?
The impact varies by company size, but the numbers show up consistently:
- Labor tracking errors typically account for 5 to 15 percent of total labor costs. On a $500,000 job with $200,000 in labor, that is $10,000 to $30,000 in untracked costs.
- Untracked indirect costs usually run 3 to 8 percent of total project costs. Across a year of projects, that can easily be $50,000 or more.
- Change order leakage (work performed but not billed) averages around 10 percent of change order value for contractors without a formal tracking process.
- Estimate drift from not using actual cost data compounds over time. Margins shrink by 1 to 2 percentage points per year as costs rise faster than bids.
A contractor running $2 million in annual revenue with a combined 5 percent tracking error is leaving $100,000 on the table. That is a truck, a new hire, or the difference between a good year and a stressful one.
Best Construction Job Costing Software
Spreadsheets can work for job costing. Plenty of contractors have made them work for years. But there is a ceiling. Most growing contractors hit it somewhere between 3 and 10 active projects.
Here is when spreadsheets start falling apart:
- Nobody updates them consistently. When your PM is juggling five projects, the spreadsheet drops to the bottom of the priority list.
- No real-time visibility. A spreadsheet on someone’s desktop does not help you on a jobsite making decisions.
- Version control problems. Which version is current? One wrong version and you are making decisions on bad data.
- No connection to other systems. Time tracking, invoicing, estimates - all in different places with manual bridges.
- Error-prone formulas. One deleted row and your job cost report says you are $14,000 under budget when you are actually over.
Projul
Projul is built specifically for contractors who want job management and job costing tied to their estimating, scheduling, time tracking, and invoicing in one platform.
What sets it apart:
- Crews clock in and out by project on their phones with GPS verification
- Material purchases get logged with photos of receipts
- Estimates automatically become job cost budgets - no re-entry
- Change orders update both contract value and cost budget instantly
- Budget vs. actual reports update in real time
- Everything syncs to QuickBooks so your books stay clean
- WIP (work-in-progress) reports generate automatically from live project data
- No per-user fees - your whole team uses it at one flat rate
Construction Financials, Job Costing, and Budgeting features are included in the Core+ plan and above. Time tracking, change orders, and QuickBooks Online integration are also included at Core+. The Pro plan adds purchase orders, geolocation, and QuickBooks Desktop integration.
Over 5,000 contractors trust Projul with their job costing. See what they have to say.
QuickBooks Online
QuickBooks Online has basic job costing features. You can assign expenses to “projects” and run reports showing cost by job. But the limitations matter for contractors:
- Time tracking is not built for field crews
- You cannot easily compare estimated vs. actual costs by cost code
- Reports are designed for accountants, not project managers
- No mobile-friendly field data entry for materials or daily logs
QuickBooks works as your accounting backbone. It is not built to be your job costing system. Many contractors pair it with a construction-specific tool that handles the field side and syncs back to QuickBooks for the books.
Sage 100 Contractor
Sage 100 is a heavier option designed for mid-size to large contractors. It handles detailed job costing and accounting in one system. The trade-off is complexity: Sage requires training and is not built for quick field use by small crews.
What to Look For
When choosing job costing software, prioritize:
- Mobile time tracking that crews will actually use on site
- Estimate-to-budget conversion so you do not re-enter numbers
- Real-time budget vs. actual reports by cost code
- Change order integration that updates both revenue and cost budgets
- Accounting sync (QuickBooks or your preferred platform)
- Pricing that scales - per-user fees punish growth
Using Cost Data to Improve Future Estimates
Tracking costs on current projects is valuable. Using that data to build better estimates on future projects is where the real payoff happens.
Every completed project is a data point. When you can look back and see that your bathroom remodel projects consistently run 12 percent over budget on labor, you know to add 12 percent to your labor estimates next time. When your deck builds consistently come in under budget on materials, you can tighten that estimate and win more bids with a lower price while still protecting your margin.
This feedback loop between cost tracking and estimating is what separates companies that keep getting more profitable from companies that keep making the same mistakes.
Projul makes this loop automatic. Your historical cost data is right there when you build a new estimate. You can pull up similar past projects, see what they actually cost, and use those real numbers as the foundation for your new bid. For a detailed look at estimating best practices, check out our estimating resources.
Key Metrics Every Contractor Should Track
Once your job costing system is running, these are the numbers to watch:
- Budget vs. Actual (by cost code). The core metric. Are you over or under on each category?
- Percent complete vs. percent spent. Tells you if you are burning through budget too fast relative to progress.
- Labor productivity rate. Revenue per labor hour. Track it across jobs to spot trends.
- Material waste percentage. Budget waste vs. actual waste. Helps you estimate more accurately over time.
- Change order margin. Are your change orders profitable, or are you doing extra work at cost?
- Gross margin by job type. Are kitchen remodels more profitable than bathrooms? Data tells you where to focus.
- Cost variance trends. Are you consistently over on electrical? Maybe your estimating needs adjustment, or maybe your sub needs replacing.
Track these over time and you will start seeing patterns. Those patterns are worth more than any business consultant could charge you, because they are based on your actual numbers from your actual jobs.
Getting Your Team to Actually Use Job Costing
The best system in the world does not help if your team does not use it. Here is what makes the difference between a system that gets adopted and one that gets abandoned:
Keep it simple for the field. Your crew leads and field workers do not need complex budget reports. They need to clock in, mark tasks complete, upload photos, and log material usage. Projul’s mobile app is designed for exactly this: fast, simple, and built for people wearing gloves.
Show the “why” to your team. When your crew knows that accurate time tracking helps the company bid better, which leads to better projects and steadier work, they are more likely to do it right.
Make it part of the daily routine. Cost tracking should not be an extra task at the end of the week. Clocking in and out on the app, logging material deliveries, marking tasks complete - these take seconds and keep your data accurate.
Review the data regularly. If nobody ever looks at the cost reports, the team figures out quickly that it does not matter. Hold a weekly 10-minute review of active projects. When the team sees the data gets used for real decisions, they take the data entry seriously.
Getting Started This Week
You do not need to overhaul your entire business to start job costing. Pick one active project and do this:
- Set up your cost codes. Start with the basics: Labor, Materials, Equipment, Subs, Overhead. Add detail later.
- Track every expense for that job starting today. Every receipt, every hour, every sub invoice.
- Compare actuals to your estimate at the end of each week. Flag anything trending over 10 percent.
- Write down what you learn. Where were you off? What did you miss?
- Feed those lessons back into your next estimate.
One project. Four weeks. You will learn more about your business in that month than you did in the last year of looking at P&L statements.
Ready to stop guessing and start knowing? Schedule a demo and see how Projul makes job costing automatic for your whole team. Or check out our pricing to see what flat-rate construction software looks like when nobody is hiding anything.