Skip to main content

How to Track Job Costs in Construction (Without Spreadsheets) | Projul

Construction manager tracking job costs on a spreadsheet

A $340,000 kitchen remodel shouldn’t lose money. But that’s exactly what happened to a remodeling contractor in Arizona who told us 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’d lost $18,000.

The problem wasn’t his crew. It wasn’t bad luck. It was bad tracking. He was running his construction 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 isn’t unusual. It’s happening on jobsites right now. And it’s fixable.

This guide walks you through exactly how construction job costing works, what you need to track, and when spreadsheets stop cutting it.

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. That’s it. 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.

Why does this matter? Because your P&L might say you’re profitable, but individual jobs could be bleeding money. You won’t know which ones until you track costs at the job level.

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’d make when the job is done?

If you can’t answer those questions for every active project, you’re guessing. And guessing is how contractors go broke while staying busy. (And if you’re also dealing with surprise software fees eating into those margins, our breakdown of the real cost of construction software is worth a read.)

The Real Cost of Bad Job Costing

Let’s talk numbers. According to industry surveys, the average contractor’s profit margin sits between 5% and 10%. On a $500,000 project at 8% margin, your profit is $40,000. That sounds decent until you realize a few missed cost entries can wipe it out completely.

Here’s how it happens:

Scenario: You’re running a commercial tenant improvement. Your estimate says $85,000 in labor. But you’re not tracking daily labor hours by cost code. Your lead carpenter pulls two guys from another job to help for three days, and nobody logs it to the right project. That’s roughly $4,500 in labor that just vanished from your job cost report. Do that a few times across a few cost categories, and your 8% margin becomes 0%. Or worse.

The contractors who consistently hit their margins aren’t smarter or luckier. They just know where their money is going in real time, not 60 days after the job wraps.

Step-by-Step: How to Set Up Job Costing That Actually Works

Step 1: Build Your Cost Code Structure

Cost codes are the backbone of construction job costing. They’re the categories you assign every expense to. Without them, your cost data is just a pile of receipts.

A typical cost code structure looks something like this:

  • 01 - General Conditions (permits, insurance, dumpsters, temporary facilities)
  • 02 - Site Work (excavation, grading, backfill)
  • 03 - Concrete (footings, slabs, flatwork)
  • 04 - Framing (lumber, hardware, labor)
  • 05 - Electrical
  • 06 - Plumbing
  • 07 - HVAC
  • 08 - Roofing
  • 09 - Drywall & Finishes
  • 10 - Painting

You can use the CSI MasterFormat system or build your own. What matters is consistency. Pick a structure and use the same codes across every job. That way you can compare framing costs on this month’s project against framing costs on last month’s project and actually learn something.

Pro tip: Don’t go overboard with sub-codes on your first pass. Start with 10 to 20 codes. You can always add more granularity later. Too many codes and your crew won’t 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 you need help building better estimates in the first place, our guide to estimating a construction job walks through the whole process. If your estimate breaks down costs differently than your job costing system, you can’t 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, which is the number you’ll measure actual costs against.

Here’s what a budget baseline looks like for a single cost code:

Cost CodeDescriptionEstimated LaborEstimated MaterialEstimated SubTotal Budget
04Framing$32,000$28,500$0$60,500

Thousands of contractors have made the switch. See what they have to say.

Now when framing starts, every cost that hits code 04 gets compared against that $60,500 budget. You’ll know if you’re on track or headed for trouble.

Step 3: Track Labor Costs Daily

Labor is usually the biggest variable in construction. Material prices are mostly locked in at purchase. But labor hours can swing wildly based on weather, rework, crew experience, and a dozen other factors.

To track labor accurately, you need three things:

  1. 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).”
  2. Burdened labor rates. Your carpenter might earn $35/hour, but his actual cost to you is more like $52/hour when you add payroll taxes, workers’ comp, health insurance, and benefits. Use the burdened rate in your job costing, not the wage rate.
  3. 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.

The old-school approach is paper timesheets collected weekly. The problem is obvious: data is a week old by the time you see it, handwriting is unreadable half the time, and nobody wants to do the data entry.

Digital time tracking where your crew clocks in from their phones and assigns hours to cost codes gives you same-day visibility. That’s the difference between catching a budget overrun on day 3 and catching it on day 30.

Step 4: Track Material Costs at Purchase

Every material purchase needs three pieces of information:

  • What was bought
  • How much it cost
  • Which job and cost code it belongs to

The most common mistake here 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. If you’re running multiple jobs (and who isn’t), keeping materials straight is the difference between knowing your actual costs and making educated guesses.

Watch for these material cost killers:

  • Waste and overages. You budgeted 12% waste on tile. Actual waste was 22%. That’s real money.
  • Price increases between estimate and purchase. Lumber alone can swing 15 to 20% in a few months.
  • Theft and loss. Unfortunate but real. If materials keep disappearing, your job costs will reflect it.

Step 5: Log Equipment Costs

Equipment costs get overlooked in job costing more than almost any other category. Whether you own your equipment or rent it, those costs need to hit the right job.

For owned equipment, calculate an internal hourly or daily rate based on the purchase price, expected life, maintenance costs, and fuel. Then charge that rate to every job that uses it. If your skid steer costs you $85/day fully loaded and it sits on a jobsite for 14 days, that’s $1,190 that needs to show up in your job cost report.

For rented equipment, it’s simpler. The rental invoice tells you the cost. Just make sure it gets coded to the right job and cost code.

Step 6: Track Subcontractor Costs

Subs are usually the easiest costs to track because they send you 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 weren’t captured in your job cost. If your electrician adds $3,200 for extra circuits, that needs to hit your cost report immediately, not when you get around to it.
  • Back charges. If your framing crew damages plumbing and the plumber bills you to fix it, that cost needs to land on the right cost code.
  • Retainage. Track what you’re holding and what’s been released. Retainage is still a committed cost even though you haven’t paid it yet.

Step 7: Allocate Overhead

This is where a lot of contractors get tripped up. Your direct job costs (labor, materials, subs, equipment) don’t tell the full story. You’ve also got overhead: office rent, insurance, your truck payment, admin salaries, software subscriptions, and everything else that keeps the lights on.

There are two common approaches:

  1. Percentage markup. Add a flat percentage to your direct costs (10-15% is common). Simple but imprecise.
  2. Cost-per-labor-hour. Divide your total annual overhead by total billable labor hours. This gives you an overhead rate per hour that you apply to each job based on labor hours used.

Neither method is perfect. But some overhead allocation is better than none. Without it, your job cost reports will show profit that doesn’t actually exist because overhead ate it.

Step 8: Run Job Cost Reports Weekly

All this tracking means nothing if you don’t review it regularly. A job cost report compares your budgeted costs against actual costs, by cost code, for each active project.

A good 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 of budget spent. If you’re 40% through the work but 60% through the budget, you’ve got a problem.
  • Change order impact. Have approved changes been added to the budget?

This weekly habit is what separates contractors who control their margins from contractors who find out they lost money after the fact.

When Spreadsheets Stop Working

Let’s be honest. Spreadsheets can work for construction job costing. Plenty of contractors have made them work for years. A well-built Excel template with cost codes, formulas, and conditional formatting can do the job.

But there’s a ceiling. And most growing contractors hit it somewhere between 3 and 10 active projects.

Here’s when spreadsheets start falling apart:

Nobody updates them consistently. Your spreadsheet is only as good as the data in it. When your PM is juggling five projects, updating a cost tracking spreadsheet drops to the bottom of the priority list. Then it becomes a catch-up exercise, and catch-up data is inaccurate data.

No real-time visibility. A spreadsheet sitting on someone’s desktop doesn’t help you when you’re on a jobsite trying to decide whether to approve an extra pour. You need current numbers, not last week’s numbers.

Version control nightmares. Which version is current? The one Dave emailed on Tuesday or the one Sarah updated on Thursday? One wrong version and you’re making decisions on bad data.

No connection to your other systems. Your time tracking, your invoicing, your purchase orders, your estimates. In a spreadsheet world, all of that data lives in different places. Someone has to manually bridge the gaps, and that someone is usually you at 9 PM.

Error-prone formulas. One deleted row, one mistyped number, one broken formula reference. And suddenly your job cost report says you’re $14,000 under budget when you’re actually over.

If any of this sounds familiar, you’ve probably outgrown spreadsheets. The next step is software that connects your estimates, time tracking, purchasing, and job costing in one place so the data flows automatically. (If your estimates are the problem, not just the tracking, check out our best construction estimating software guide.)

Tools like Projul are built specifically for this. The budgeting feature ties directly into your estimates, time tracking, and invoicing so everything stays connected. You create an estimate, it becomes your job cost budget. Your crew logs time on their phones, and it hits the job cost report automatically with burdened labor rates. Material costs, sub invoices, and change orders all feed into the same report. No manual data entry, no version control issues, no 9 PM spreadsheet sessions.

That’s not a sales pitch. It’s just what happens when your tools actually talk to each other.

5 Job Costing Mistakes That Kill Your Margins

1. Tracking Costs After the Job Instead of During

If you’re doing job costing as a post-mortem exercise, you’re doing an autopsy, not a checkup. The whole point is to catch overruns while you can still do something about them. Weekly (or better yet, daily) cost tracking turns job costing from a history lesson into a management tool.

2. Ignoring Labor Burden

Charging your carpenter’s wage rate ($35/hour) instead of the burdened rate ($50+/hour) to jobs means your labor costs look 30 to 40% lower than they actually are. Your job cost report shows profit, but your bank account tells a different story. Always use fully burdened rates.

3. Not Tracking Change Orders Against the Budget

You approved a $6,000 change order and billed the customer for it. Great. But did you add the associated costs to your job cost budget? If not, your report still shows the original budget, and you have no idea whether that change order was profitable or not.

4. Sloppy Cost Code Discipline

When your crew codes everything to “General” or “Miscellaneous,” your cost data becomes useless. You can’t improve what you can’t measure. Make cost coding easy (mobile apps help), train your people, and review coding accuracy regularly.

5. Forgetting Overhead Allocation

A job that shows 20% gross margin might actually net 5% after overhead. Or less. If you’re not allocating overhead to jobs, you’re consistently overestimating your profitability. And that leads to underbidding future work because you think your costs are lower than they really are.

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’re 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. After direct costs. Compare against your target margin.
  • 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 is too expensive.

Track these over time and you’ll start seeing patterns. Those patterns are worth more than any business consultant could charge you, because they’re based on your actual numbers from your actual jobs.

Want to stop finding out you lost money after the job is done? Schedule a free demo and see how Projul connects your estimates, time tracking, and invoicing into one real-time job cost report. Or check out our pricing to see what flat-rate construction software costs when nobody’s hiding anything.

FAQ

What is construction job costing? Construction job costing is tracking all costs (labor, materials, equipment, subcontractors, and overhead) for each individual project and comparing those costs against the original estimate. It tells you whether each job is profitable and where the money is going.

How is job costing different from regular accounting? Regular accounting tracks overall business income and expenses. Job costing breaks those numbers down by individual project so you can see which jobs make money and which ones lose money. You need both, but job costing gives you the project-level visibility that general accounting can’t.

What are cost codes in construction? Cost codes are categories used to organize job expenses. Examples include framing, electrical, plumbing, and concrete. They allow you to track spending by trade or work type, compare actual costs against estimates, and spot patterns across projects.

How often should I review job cost reports? At minimum, weekly. For larger or more complex projects, daily reviews of key metrics like labor hours can help you catch problems before they compound. The sooner you spot a cost overrun, the more options you have to fix it.

Can I do job costing in a spreadsheet? Yes, but it gets difficult as you grow. Spreadsheets work for one or two simple projects. Once you’re running multiple jobs with multiple cost categories, the manual data entry, version control issues, and lack of real-time visibility make spreadsheets more of a liability than a tool. Most contractors switch to dedicated software somewhere between 3 and 10 active projects.

What is a burdened labor rate? A burdened labor rate is an employee’s total cost per hour, including wages, payroll taxes, workers’ compensation insurance, health benefits, and any other employment costs. It’s typically 30 to 50% higher than the base wage. Using the burdened rate in your job costing gives you an accurate picture of your true labor costs.

What’s a good profit margin in construction? Most contractors target gross margins between 25% and 50% depending on the trade and project type, with net margins (after overhead) typically falling between 5% and 15%. Specialty contractors and remodelers often hit higher margins than general contractors on commercial work. The key is knowing YOUR actual margins through accurate job costing, not guessing based on industry averages.


Tired of finding out you lost money after the job is done? Projul connects your estimates, time tracking, and invoicing so you see real-time job costs without the spreadsheet headaches. Book a demo and see how it works for your operation.

Frequently Asked Questions

What is construction job costing?
Construction job costing is the process of tracking every dollar spent on a specific project and comparing it against your estimate. You assign all costs (labor, materials, equipment, subs) to individual jobs so you can see which projects are profitable and which ones are losing money. Your overall P&L might look healthy, but job costing shows you the truth at the project level.
How do you track job costs in construction?
Break every job into cost categories: labor, materials, equipment, subcontractors, and overhead. Track labor with time cards or time tracking software tied to specific jobs. Log material purchases and sub invoices against the job they belong to. Compare actual costs to your estimate weekly, not just at the end. Software like Projul automates most of this.
When should a contractor stop using spreadsheets for job costing?
Once you're running more than 3 to 5 jobs at the same time, spreadsheets become a liability. They rely on someone manually updating them, they don't connect to your time tracking or invoicing, and formula errors are easy to miss. Most contractors who switch to job costing software say they should have done it a year earlier.
What is the best job costing software for contractors?
Projul, QuickBooks Online (with job costing features), and Sage 100 Contractor are popular options. Projul is the best fit for contractors who want job costing built into the same tool they use for [estimating](/blog/best-construction-estimating-software/), [scheduling](/features/scheduling/), and invoicing. QuickBooks handles basic job costing but isn't designed for construction workflows.
How often should you review job costs during a project?
Weekly at minimum. The whole point of job costing is catching problems early, not finding out you lost money after the job is done. Review labor hours, material spend, and sub invoices against your budget every week. If something is trending over budget, you can adjust before it gets worse.
No pushy sales reps Risk free No credit card needed