HomeContractor GuidesJob Costing For Contractors
Financial Management · Keep More

Job Costing for Contractors

Most contractors know whether the business is profitable overall. Very few know whether each individual job is profitable. That distinction matters more than almost anything else in your business, because it is entirely possible to complete 20 profitable jobs and 5 money-losers and think everything is fine—when those 5 losers are eating 30% of your total profit.

Updated March 2026|16 min read
Quote Smarter Close Faster Keep More

Job Costing Quick Facts

  • What it is: Tracking actual costs per job vs. your estimate
  • Why it matters: 60% of contractors do not know per-job profit
  • Three cost categories: Direct materials, direct labor, allocated overhead
  • Biggest blind spot: Overhead never gets allocated to jobs
  • Review frequency: Every completed job + monthly trends
  • Goal: Know exactly where your money goes and why
By the BuildFolio Team Last updated March 2026 Fact-checked

TL;DR — Job Costing for Construction

Job costing tracks the actual costs of each project against your original estimate. Without it, you can complete 20 profitable jobs and 5 money-losers and think everything is fine—when those 5 losers might eat 30% of your profit. The process is straightforward: create a detailed estimate, track costs in real time, allocate overhead, calculate actual profit, and compare to estimate. The comparison step is where the learning happens. Every contractor who does this consistently discovers at least one job type or cost category where they have been losing money for years without knowing it. BuildFolio automates per-job profit tracking for $39/month so you see the truth on every job.

What Is Job Costing in Construction?

Job costing is the process of tracking every dollar that goes into a specific project—materials, labor, equipment, subcontractors, permits, and allocated overhead—and comparing those actual costs to what you originally estimated. The goal is simple: know whether each individual job made money, lost money, and by how much.

This is fundamentally different from general bookkeeping. Your bookkeeper or accountant can tell you that the business generated $600,000 in revenue and had $510,000 in expenses, leaving $90,000 in profit. That is useful information, but it does not tell you which of your 80 completed jobs contributed to that profit and which ones ate into it. Job costing does.

Think of it this way: your profit and loss statement is like knowing your batting average. Job costing is like knowing your performance against each pitcher. The average might look fine, but if you are striking out every time you face left-handed pitching, you have a problem that the average hides.

The Three Cost Categories

Every job cost falls into one of three categories. Understanding these categories is the foundation of accurate job costing in construction.

Direct Materials

Physical materials purchased for the specific job: shingles, lumber, pipe, wire, paint, concrete, fasteners, and supplies. Also includes delivery charges, sales tax, and restocking fees. These are the easiest costs to track because you buy them per project.

Direct Labor

Hours worked by employees or yourself on the specific job, calculated at the fully burdened rate—not the hourly wage. The burdened rate includes payroll taxes, workers comp, health insurance, PTO, and unemployment insurance. A $28/hr worker actually costs $40-$47/hr.

Allocated Overhead

Your share of business-wide costs that keep the company running: insurance, vehicles, office, tools, marketing, software, and admin wages. Each job must carry its fair share. This is the category most contractors completely ignore in their job costing, which is why their margins are wrong.

The Overhead Blind Spot

If your overhead is $15,000/month and you complete 12 jobs per month, each job must carry approximately $1,250 in overhead just to break even on business expenses. If you are not allocating this, every job looks $1,250 more profitable than it actually is. Across 144 jobs per year, that is $180,000 in phantom profit.

The 5-Step Job Costing Process

Job costing is not complicated, but it requires discipline. Most contractors already do step one (estimating) reasonably well. Where the process breaks down is steps two through five, which is where the actual value lives. Here is the complete process for job costing in construction.

1

Create a Detailed Estimate

Break every estimate into specific cost categories: materials by line item, labor hours by role and task, subcontractor quotes, equipment rental, permits, and dumpster or disposal fees. Include your overhead allocation as a line item even if you do not show it to the customer. Finally, add your markup. The estimate is your benchmark. If it is vague, the comparison in step five will be meaningless.

A common mistake is estimating in lump sums: “$4,500 for materials.” That tells you nothing when actual costs come in at $5,200. Instead, break materials into categories: shingles $2,800, underlayment $400, flashing $180, nails and fasteners $120, plywood/OSB $600, drip edge $200, vents $200. When the job runs over, you can see exactly which category caused the variance.

2

Track Costs in Real Time

Do not wait until the job is done to add up costs. Track material purchases as they happen (photograph receipts or use a receipt scanning app). Record labor hours daily, assigned to the specific job. Log subcontractor invoices when they come in. Real-time tracking catches overruns while you can still do something about them, like adjusting scope or flagging a change order.

The biggest resistance to real-time tracking comes from field crews. They see it as paperwork. The reality is that it takes about 5 minutes per day to log hours and receipts to a job. Compare that to the 5 hours you will spend at the end of the quarter trying to reconstruct costs from memory and bank statements. The choice is discipline now or guesswork later.

Time Tracking Tip

Have each crew member text their start time, end time, and job address to a dedicated phone number or group chat at the end of each day. It takes 30 seconds, costs nothing, and gives you a timestamped record. You can enter the data into your tracking system once a week. Imperfect daily tracking beats perfect monthly reconstruction every time.

3

Allocate Overhead to the Job

Take your total monthly overhead and divide it across your jobs. The simplest approach: monthly overhead divided by number of jobs completed that month. A more precise approach: calculate your overhead rate (annual overhead / annual revenue) and apply that percentage to each job’s direct costs. If your overhead rate is 28% and a job has $8,000 in direct costs, allocate $2,240 in overhead.

What counts as overhead? Everything that runs whether you complete one job or fifty: general liability and commercial auto insurance, vehicle payments and fuel, tool purchases and maintenance, office rent or home office costs, phone and internet, software subscriptions, marketing spend, administrative wages (including your own time doing estimates, admin, and sales), and professional services like accounting and legal.

Overhead Allocation Formula

Overhead Per Job = Monthly Overhead / Jobs Completed

A typical small contractor with $600,000 in annual revenue runs $12,000-$18,000/month in overhead, or roughly 24-36% of revenue. If you are not allocating this to individual jobs, you are overstating your per-job profit by that same percentage—which means you think you are making 35% margin when you are actually making 10%.

4

Calculate Actual Profit

Once the job is complete and all costs are recorded, the calculation is straightforward: Total Revenue (what the customer paid, including change orders) minus Direct Costs (materials + labor + subs + equipment + permits) minus Allocated Overhead equals Actual Net Profit.

Actual Job Profit Formula

Actual Profit = Revenue – Direct Costs – Allocated Overhead

Express this as both a dollar amount and a percentage. A job that generates $1,500 profit on a $12,000 contract is a 12.5% net margin. Knowing the percentage lets you compare profitability across jobs of different sizes. A $2,000 profit on a $25,000 job (8%) is worse than a $1,200 profit on a $8,000 job (15%), even though the dollar amount is higher.

5

Compare Actual to Estimate

This is where the real value of job costing lives. Go line by line: where did actual costs exceed your estimate, and where did they come in under? A 5% overall variance might hide a 30% overrun on labor offset by a 20% savings on materials. You need to see both to improve your estimating.

Build a simple variance report for each job. It does not need to be fancy. Three columns: Estimated, Actual, and Variance (positive means you spent more than planned). After 10-20 jobs, patterns emerge that are impossible to see on a single job. Maybe you consistently underestimate labor on tear-offs by 20%. Maybe your dumpster costs always run $150 over. Maybe your plywood estimates are accurate for newer homes but miss by 40% on homes built before 1980 because of additional decking damage. These patterns become pricing corrections that compound over time.

The Feedback Loop That Pays for Itself

A contractor who does 100 jobs per year and improves estimating accuracy by 5% through job cost analysis adds approximately $25,000-$50,000 to annual profit (assuming $500K-$1M revenue). That is the difference between a decent year and a great year, and it comes from information you already have—you just need to organize it.

Job Costing Example: A Real Roofing Project

Theory is useful. Numbers are better. Here is a complete job costing walkthrough for a 2,200 sq ft residential roof replacement in the Dallas-Fort Worth metro, showing the estimate, the actual costs, and the lessons learned.

The Estimate

Original Estimate: Roof Replacement

Shingles (22 squares, architectural grade)$2,640
Underlayment, ice/water shield$480
Flashing, drip edge, vents$380
Nails, fasteners, caulk$140
Plywood/OSB (estimated 4 sheets for decking repair)$160
Materials subtotal$3,800
Labor: 3 crew x 2 days x 8 hrs x $35/hr burdened$1,680
Permit$250
Dumpster rental$400
Delivery fee$0 (included by supplier)
Total estimated direct cost$6,130

The contractor applied a 45% markup to the direct cost estimate: $6,130 x 1.45 = $8,889. Rounded to a clean number, the contract price was $8,900. At a 45% markup, the expected gross margin was approximately 31%.

The Actual Costs

Actual Costs: What Really Happened

Shingles (22 squares)$2,640
Underlayment, ice/water shield$480
Flashing, drip edge, vents$420
Nails, fasteners, caulk$155
Plywood/OSB (12 sheets needed, not 4)$480
Materials subtotal$4,175
Labor: 3 crew x 2.5 days x 8 hrs x $35/hr (rain delay)$2,100
Permit$250
Dumpster rental$400
Delivery fee (emergency plywood run)$75
Total actual direct cost$7,000

The Job Cost Analysis

Now add the overhead allocation. This contractor runs $14,400/month in overhead and completes an average of 12 jobs per month. Overhead per job: $1,200.

Profit Analysis

Contract price (revenue)$8,900
Actual direct costs-$7,000
Overhead allocation-$1,200
Actual net profit$700 (7.9%)

The expected net margin after overhead was around 18%. The actual net margin came in at 7.9%. That is a $900 shortfall on a single job. Across 12 similar jobs per month, that estimating error costs over $10,000 per month.

Where the Estimate Went Wrong

Plywood: +$320 Over Estimate

The estimate assumed 4 sheets of replacement decking. The actual tear-off revealed 12 sheets of rotted or damaged OSB. On a home built in 1992, this is common. The lesson: for homes older than 25 years, estimate 10-15 sheets minimum as a contingency, or add a per-sheet allowance to the contract.

Labor: +$420 Over Estimate

A rain day pushed the job from 2 days to 2.5 days. The crew could not start until noon after tarping and drying. Lesson: in spring and summer, build a half-day rain contingency into roofing estimates. It costs less to overestimate labor than to absorb a full unplanned day.

The Compounding Problem

If this contractor prices 10 roof jobs per month with the same underestimates ($870 average overrun per job), they lose $8,700 per month or $104,400 per year in expected profit. Job costing reveals this pattern after 3-5 jobs. Without job costing, the contractor might run this way for years and wonder why the business never has cash.

Job Costing Methods Compared

There is no single right way to do job costing. The best method depends on your volume, your technical comfort level, and how much you are willing to spend. What matters is that you do it consistently. An imperfect system used on every job beats a perfect system used on none.

Method Cost Best For Breaks At Automation
Spreadsheet (Excel / Google Sheets) Free Solo operators, under 10 jobs/month 10+ concurrent jobs; manual entry errors compound None — fully manual
QuickBooks + Job Codes $30-80/mo Small crews with a bookkeeper Requires discipline to assign every expense to a job code; reports are clunky Low — bank feeds help, but allocation is manual
Construction Management Software $99-399+/mo Mid-size firms, 15+ active jobs Overkill and expensive for small operations; ServiceTitan runs $245+/tech/mo, Buildertrend $99-399/mo High — time tracking, PO management, cost coding
BuildFolio $39/mo Residential contractors wanting per-job profit tracking + AI estimating Designed for residential contractors doing 5-40 jobs/month Medium-High — per-job profit dashboard, photo-to-quote AI, estimated vs. actual comparison

If you are currently doing zero job costing, start with a spreadsheet. Build the habit first, then upgrade to software once you have proven the value to yourself. A spreadsheet that you actually use is infinitely better than a $400/month platform that sits unused because the learning curve was too steep.

The Spreadsheet Starter Method

Create one spreadsheet per job with three tabs: Estimate (your original bid broken into categories), Actual (costs entered as they happen), and Comparison (formulas that show variance by category). Duplicate the template for each new job. Review the Comparison tab within one week of job completion. After 30 days of this, you will know whether you need software or whether the spreadsheet is enough.

What to Track on Every Job

The power of job costing depends on what you track. Miss a category and your profit numbers are wrong. Track everything and the data tells you exactly where your money goes. Here is the complete job costing checklist for construction projects.

Direct Cost Tracking

  • Materials with receipts and PO numbers — Every material purchase, including tax and delivery. Link receipts to the specific job. Photograph paper receipts the same day or they will be illegible in a week.
  • Labor hours by employee and role — Track who worked on the job, for how many hours, and at what burdened rate. A journeyman electrician at $55/hr burdened and an apprentice at $28/hr burdened have very different cost impacts. Logging “24 labor hours” without attribution hides this.
  • Subcontractor invoices — Actual invoiced amounts from every sub on the job. If you use subs for electrical, plumbing, or HVAC rough-ins on remodeling projects, these can be 20-40% of your total job cost.
  • Equipment rental — Scaffolding, scissor lifts, ditch witches, concrete saws, and any rented or owned equipment with a per-use cost. For owned equipment, calculate a depreciation charge per use.
  • Permit fees — The permit itself plus the labor time to pull the permit and attend inspections. A two-hour round trip to the permit office at $50/hr owner time is $100 that most contractors never track.
  • Travel and fuel — Distance to the job site, number of trips, and fuel cost. A job 45 minutes away costs significantly more in crew travel time and fuel than one 10 minutes from your shop.

Often-Missed Costs

  • Warranty callbacks — If you return to a completed job to fix a leak, repaint a section, or adjust a door that sticks, that labor and material cost belongs to the original job. Most contractors treat callbacks as a separate expense, which makes the original job look more profitable than it was. A $200 callback on a job with $1,500 profit reduces that job’s margin from 15% to 13%.
  • Change orders (billed and unbilled) — Billed change orders add revenue and cost to the job. Unbilled change orders—the “while you are here, can you also…” requests that you do for free—add cost without revenue. Track both. If you are consistently doing $200-$500 in unbilled extras per job, that is a pricing and sales process problem, not a production problem.
  • Estimating time — The 2-4 hours you spend measuring, writing the estimate, and presenting it to the customer is a real cost. If you close 1 in 3 estimates, each won job carries the estimating cost of three jobs. At $60/hr owner time and 3 hours per estimate, that is $540 per won job.
  • Punch list and final cleanup — The last 5% of a job often takes 20% of the labor budget. Touch-up paint, final grading, debris removal, and walk-through time all count. If you do not budget for this, every job will run over on labor.

The 80/20 Rule of Job Cost Tracking

If tracking everything feels overwhelming, start with the three categories that account for 80% of most contractors’ costs: materials, labor hours, and subcontractor invoices. Get those right first. Add overhead allocation, equipment, and incidentals once the basic tracking is a habit. Something is always better than nothing.

The Top 5 Job Costing Mistakes

Most contractors who attempt job costing make the same mistakes. These errors do not just reduce the usefulness of your data—they can lead you to wrong conclusions that make your pricing worse instead of better.

1. Not Tracking Labor Hours by Job

This is the single most common job costing failure. The contractor tracks total payroll—they know they spent $14,000 on labor this week—but they do not know how those hours split across the 4 jobs that were active. If three of those jobs were profitable and one was a disaster, the payroll total hides it completely.

The fix is daily time tracking assigned to specific jobs. It does not need to be sophisticated. A text message, a simple app, or even a paper timesheet with the job address on it. The data needs to answer one question: how many hours did each person spend on each job today?

Without per-job labor tracking, your “job costing” is actually just material tracking with a labor guess added on top. And labor is typically 30-50% of your direct costs. You are guessing on the biggest single cost category.

2. Forgetting to Allocate Overhead

A contractor looks at a completed job: $8,000 contract, $5,200 in materials and labor. “That is $2,800 profit, a 35% margin. Great job.” Except the business runs $15,000/month in overhead across 10 jobs, so each job carries $1,500 in overhead. Actual profit: $1,300. Actual margin: 16.3%. Still profitable, but half of what the contractor thinks.

The danger is not that overhead makes jobs unprofitable—though it sometimes does. The danger is that it makes you overconfident in your pricing. You think 35% margin gives you room to offer discounts, absorb change orders, and compete on price. In reality, you are operating at 16% with almost no cushion.

3. Not Tracking Change Orders Separately

Change orders are the most misunderstood line item in construction job costing. There are two types that must be tracked differently:

  • Billed change orders: Additional work that the customer approved and paid for. These add both revenue and cost to the job. Track them as a separate line so you can see the base contract margin and the change order margin independently. Change orders should carry at least the same margin as the base contract—ideally higher, because the disruption to your schedule has value.
  • Unbilled change orders (scope creep): The “while you are here” requests that add cost without adding revenue. These are profit killers that look invisible in your books because they are absorbed into labor and materials. A job with $600 in unbilled extras turns a 20% margin into a 14% margin, and you never see it unless you track it.

The Scope Creep Tax

If you average $400 in unbilled change orders per job across 120 jobs per year, that is $48,000 in free work. At a 10% net margin on $600,000 revenue, your profit is $60,000. You are giving away 80% of an additional profit stream. Even billing half of that scope creep adds $24,000 to your bottom line.

4. Waiting Until the Job Is Done to Reconcile

If you only look at job costs after the project is complete, you miss the window to do anything about overruns. By the time you realize labor is running 25% over estimate on day four of a five-day job, you cannot undo days one through three. Real-time tracking gives you the chance to adjust: add crew to finish faster, flag a change order for the scope addition that caused the overrun, or cut scope elsewhere to stay on budget.

Review costs against estimate at the midpoint of every job. For multi-week projects, review weekly. You are looking for categories trending more than 10% over estimate. If materials are already at 90% of the estimated budget and the job is only 60% complete, you have a problem you can still address—negotiate with the supplier, substitute materials, or communicate with the customer about a potential change order.

5. Ignoring Warranty Callback Costs

A roof job that looks like it made $3,000 profit drops to $2,200 profit when you send a crew back six months later to fix a leak. That callback costs labor ($300+), materials ($50-200), and travel time ($100+), but almost no contractor tracks it against the original job.

Over time, callback data reveals which job types, which materials, and which installation practices generate the most warranty work. A contractor who discovers that a specific flashing technique causes 40% of their leak callbacks can change the technique and eliminate thousands of dollars in annual warranty costs. But only if they are tracking callbacks by original job.

Callback Tracking Shortcut

When dispatching a warranty callback, require the crew to log the original job number or address on their time sheet. At month end, subtract callback costs from the original job’s recorded profit. After 6 months, you will have enough data to see patterns in which job types or conditions generate the most warranty work.

How BuildFolio Makes Job Costing Automatic

The reason most contractors do not do job costing consistently is not that they do not see the value. It is that the process is tedious. Entering receipts, tracking hours, calculating overhead allocations, and building comparison reports takes time that could be spent on billable work. BuildFolio reduces that friction to near zero.

Per-Job Profit Dashboard

Every completed job shows actual revenue, actual costs by category, overhead allocation, and true net profit. One screen, no spreadsheet formulas, no manual reconciliation. You can see margin trends over time, filter by job type, and identify which service categories consistently underperform your targets. When your bathroom remodels average 22% net margin but your kitchen remodels average 8%, you know exactly where to focus your pricing corrections.

Estimated vs. Actual Comparison

BuildFolio automatically compares what you estimated to what you actually spent in each cost category. After 20-30 jobs, the patterns become impossible to ignore: you consistently underestimate labor on tear-offs, your dumpster costs always run over, or your material estimates are tight on new construction but loose on remodels. These insights compound into pricing accuracy that saves thousands per year.

AI Photo-to-Quote

Inconsistent estimates are a major source of job costing variance. BuildFolio uses satellite imagery and AI to generate measurements and material quantities based on actual property data. The same roof measured the same way every time means your estimates start from accurate data instead of field guesses. When your estimate is accurate, the comparison to actual costs tells you about execution, not measurement error.

Stop Guessing Your Margins

BuildFolio is $39/month. If it helps you identify even one underpriced job type and fix the estimate, it pays for itself in the first week. Most users find $2,000-$5,000 in monthly profit leaks within the first 30 days of tracking per-job costs.

Frequently Asked Questions

What is job costing in construction?

Job costing is the process of tracking all actual costs—materials, labor, subcontractors, equipment, permits, and allocated overhead—for each individual project, then comparing those actual costs to your original estimate. Unlike general bookkeeping, which tells you whether the business is profitable overall, job costing tells you whether each specific job made or lost money. This per-job visibility is what separates contractors who grow profitably from contractors who stay busy but never build wealth. It answers the question your P&L cannot: which jobs are making you money, and which ones are quietly draining it?

How is job costing different from process costing?

Job costing tracks costs per individual project—a specific roof replacement, a particular kitchen remodel. Process costing tracks costs across a continuous production process where individual units are identical, like a manufacturing line producing thousands of identical widgets. Construction and contracting work almost always uses job costing because every project is unique: different materials, different labor hours, different site conditions, different customer requirements. Even if you install the same water heater model fifty times, each installation has different travel time, access difficulty, plumbing configurations, and code requirements that affect your actual cost. Job costing captures these per-project differences. Process costing averages them away.

What software do contractors use for job costing?

Options range from free spreadsheets to enterprise construction management platforms. QuickBooks with job codes ($30-80/month) works for many small contractors who already use it for bookkeeping. Dedicated construction platforms like Buildertrend ($99-399/month) and ServiceTitan ($245+ per technician per month) offer deeper job costing features including time tracking, purchase order management, and automated cost coding, but they carry significant cost and learning curve. BuildFolio ($39/month) provides per-job profit tracking with AI-powered estimating specifically built for residential contractors. The right choice depends on your volume: under 10 active jobs, a disciplined spreadsheet works. At 10-30 concurrent jobs, you need dedicated software. Above 30 concurrent jobs, you need a full construction management platform with integrated accounting.

How do I allocate overhead to individual jobs?

The simplest method is dividing your total monthly overhead by the number of jobs you complete that month. If your overhead is $12,000 per month and you complete 10 jobs, each job carries $1,200 in overhead. A more precise method allocates overhead as a percentage of direct costs or revenue. Calculate your overhead rate (annual overhead divided by annual revenue), then apply that percentage to each job. If your overhead rate is 30% and a job has $8,000 in direct costs, you allocate $2,400 in overhead to that job. For businesses with very different job sizes, the percentage method is more fair—a $25,000 remodel should carry more overhead than a $3,000 repair. Either method is dramatically better than ignoring overhead entirely, which is what most small contractors do.

How often should I review job cost reports?

Review individual job costs as soon as each job is completed—within one week at most, while the details are still fresh and you can follow up on any questionable expenses. Review job costing trends monthly: look at average margins by job type, identify which cost categories consistently run over estimate, and flag any jobs where actual costs exceeded the estimate by more than 15%. Quarterly, do a deeper analysis: which job types are most profitable, which customers or project sizes deliver the best margins, and where do your estimates consistently miss? The contractors who review job costs weekly build pricing accuracy that compounds over time. The ones who review annually are always reacting to problems instead of preventing them.

Free Job Costing Spreadsheet Template

Pre-built template with Estimate, Actual, and Variance tabs. Tracks materials, labor, subs, overhead, and change orders per job. Works for any trade.

Template sent! Check your inbox for a copy from reports@build-folio.com.
Free download No credit card Works in Excel & Google Sheets

Know Your Real Profit on Every Job

Most contractors think they know their margins. BuildFolio shows the truth on every job. Try it free for 14 days.

Start Free Trial

Stop Guessing Your Margins

BuildFolio tracks actual costs and margins on every job so you know exactly whether your pricing works. $39/month. No contracts. Cancel anytime.

Get BuildFolio Pro — $39/mo