← All posts

[ Blog ]

How to Calculate Profit on a Construction Job (Step by Step)

September 5, 2026

How to Calculate Profit on a Construction Job (Step by Step)

An electrician newer to running his own work asked a forum full of contractors a question most owners never say out loud: "Do you know if you made money on a job, or just guess?" He knew what he billed. He could only guess what he kept.

Guessing is the industry default. A shop owner on WOODWEB warned newcomers he "broke even every year until the last 2" paying himself $1,000 a week, and only saw it clearly at year end. The math below replaces the guess. It takes one finished job and about thirty minutes the first time. (This post is the calculation itself; the full tracking system lives in our Complete Guide to construction job costing.)

Every dollar figure in the worked example below is demo math for illustration, not a market rate.

Step 1. Pin down what the job really brought in

Revenue is not the contract price. It is the contract plus every signed change order, minus any credits or concessions you gave along the way.

Demo job (a patio and retaining wall): $18,000 contract + one $1,500 signed change order = $19,500 revenue.

If there was extra work with no signed change order, it is not revenue. It is a gift you gave the client, and it belongs in the post-job review in step 6.

Step 2. Cost the labor at what it cost you, not what you paid out

Add up the hours your crew put into this job, then price them at the burdened rate: wage plus employer payroll taxes, workers comp, liability insurance, and the load from paid time that is not billable. Real numbers vary widely by trade and state: in a Reddit thread comparing crew costs, a Hawaii contractor figures 40 to 50 percent for construction while a poster from a large masonry sub reports wage plus 28.5 percent, and an electrician in a Mike Holt thread reports around 25 percent plus payroll tax.

Demo job: 2-man crew, 160 total hours at an average wage of $26/hr. Wages alone: $4,160. At a 40 percent burden the real cost is 160 × $36.40 = $5,824.

Wage-only labor math is one of the biggest reasons jobs look more profitable than they were. If you do not know your burden, work it out once from last year's payroll tax, comp, and insurance bills. The Job Costing Calculator has a burden input that does the loading for you.

Step 3. Round up every material dollar

Every receipt with this job's name on it, plus the stuff that never got a receipt: material pulled from the shop, the extra supply-house run on the way in. If a dollar of material has no job name, it silently becomes company overhead and inflates every future bid instead of landing on the job that used it.

Demo job: pavers, base, and wall block: $5,200.

Step 4. Add subs and equipment

Subcontractor invoices at face value. Rentals at invoice. If you own the iron, charge the job an hourly rate for the machine's fuel, maintenance, and wear so machine cost does not hide in overhead. One WOODWEB owner only realized what his machinery was eating per hour after he finally wrote it down: "it never sank in how much a planer could cost per hour."

Demo job: excavation sub $900, skid steer rental $750: $1,650.

Step 5. Charge the job its share of overhead, then read the true number

The shop, the trucks, the insurance, the office hours, the software: none of it belongs to one job, and all of it must be paid by the jobs collectively. A plumber on Heating Help said the quiet part about owners who skip this step: "The cold hard truth is really hard to digest when you are excited to be going out on your own."

Simplest method for a labor-heavy shop: overhead per crew hour. Take a year of overhead, divide by a year of billable crew hours, and charge every job that rate for every hour it used.

Demo numbers: $72,000 annual overhead ÷ 3,600 billable crew hours (about what a 2-man field operation actually bills in a year) = $20 per crew hour. This 160-hour job carries 160 × $20 = $3,200 of overhead.

Now the whole calculation:

Step Amount
Revenue (contract + signed CO) $19,500
Burdened labor (160 hrs × $36.40) − $5,824
Materials − $5,200
Subcontractor − $900
Equipment rental − $750
Overhead share (160 hrs × $20) − $3,200
True job profit $3,626

True margin: $3,626 ÷ $19,500 = 18.6 percent.

The wage-only version of this job feels like $19,500 − $4,160 − $5,200 − $900 − $750 = $8,490, a 43.5 percent margin. More than half of that felt profit was never real. Nothing went wrong on this job; the felt number was just measuring the wrong thing.

A gauge showing the demo job's true margin of 18.6 percent against the 43.5 percent it felt like

The Profit Margin Calculator runs this exact math on your numbers in about a minute.

Doing this by hand means chasing hours and receipts weeks later. SiteOps collects the inputs as they happen: crews clock in with GPS at the job site so hours land on the right job, receipts get a job name in the field, signed change orders live on the job record, and every job shows a running profit and loss. Start a 14-day free trial.

Step 6. Compare against the estimate, then change one thing

The profit number is the grade. The estimate-vs-actual comparison is the lesson. Put the bid next to the actuals, bucket by bucket:

Budget versus actual bars for the demo job, with labor running $728 over budget

  • Labor over? Either the crew ran long (a production problem you can now see) or the bid used wage instead of burdened cost (a pricing problem you can fix on the next bid).
  • Materials over? Waste, theft, price movement since the bid, or shop material that finally got counted.
  • Margin fine but thin? Check your markup. A markup that "sounds right" often delivers a much thinner margin than intended, because markup and margin are different numbers. The Contractor Markup Calculator shows what markup your target margin actually requires.
  • Unsigned extras in the file? That is next job's rule: no extra work without a signed change order.

A WOODWEB contributor's diagnosis of a busy-but-broke shop fits almost every thin job: "the many small things that we get used to are eating into his profit without noticing it." The point of this whole exercise is to notice while it still counts.

FAQ

How do I calculate profit on a construction job? Revenue (contract plus signed change orders) minus burdened labor, materials, subcontractors, equipment, and the job's share of company overhead. Divide the result by revenue for the margin percentage.

What is the difference between gross profit and true job profit? Gross profit is revenue minus direct costs only. True job profit also subtracts the job's overhead share. Jobs can show healthy gross profit while the company loses money, because overhead was never charged to any job.

Why does my job feel more profitable than it was? Almost always two reasons: labor counted at wages instead of the burdened cost, and no overhead applied to the job. In the demo above those two lines hid $4,864 of cost.

What margin should a construction job make? There is no universal benchmark. When an excavation contractor asked on Heavy Equipment Forums what margin to build into bids, answers ranged from 10 to 45 percent. The usable answer comes from your own numbers: your overhead share plus the profit you decided the company should earn on the work.

Should I calculate profit while the job is still running? Yes. The same math works mid-job with hours and costs to date against percent complete. A job trending over on labor at 40 percent done can still be saved. That is the entire case for tracking hours and receipts by job as they happen instead of reconstructing them afterward.


This article is general information for contractors, not accounting, tax, or legal advice. Rates and percentages shown in the worked example are demonstration numbers. Talk to your accountant about your company's real burden, overhead, and pricing.