Job Costing

How to Calculate Profit on a Construction Job

Published August 7, 2026·10 min read

Profit on a construction job is what's left after you subtract every real cost from what the client paid — and the two numbers most contractors get wrong are labour burden (the hidden cost on top of wages) and the difference between markup and margin. Get those two right and the rest is straightforward subtraction.

Start with revenue

Revenue is the total the client paid for the job, before tax. Simple, but worth stating clearly because it's the number everything else gets subtracted from.

Direct costs: labour (with burden), materials, subs

Direct costs are everything spent specifically on this job:

  • Labour, fully burdened — the wage you pay plus payroll taxes, workers' comp, and any benefits. If you only count the wage, every job looks more profitable on paper than it actually is.
  • Materials — what you actually paid, including delivery and any waste beyond what you priced for.
  • Subcontractors — what you paid them, not what you quoted the client for their portion.

Gross profit vs net profit

Gross profit = revenue minus direct job costs (labour, materials, subs). It tells you whether the job itself made money before considering the cost of running the business.

Net profit = gross profit minus overhead (insurance, vehicles, office, software, admin time) allocated to that job. Net profit is the real answer to "did this job make me money."

Example: a job bills $10,000. Labour (burdened) costs $3,200, materials cost $2,800, and a sub costs $1,000. Gross profit is $10,000 − $7,000 = $3,000. If overhead allocated to the job is $800, net profit is $2,200.

Markup vs margin — the math contractors mix up

This is the single most common pricing mistake in the trades. Markup is a percentage added on top of cost. Margin is the percentage of the final price that is profit. They are not the same number.

CostMarkup appliedPriceResulting margin
$1,00020% markup$1,20016.7% margin
$1,00025% markup$1,25020% margin
$1,00050% markup$1,50033.3% margin

If you're aiming for a 20% margin, applying a 20% markup will fall short — you actually need a 25% markup. The formula: margin = markup ÷ (1 + markup), or to hit a target margin, markup = margin ÷ (1 − margin). Know which one you're actually targeting before you quote a job.

Where profit actually leaks

The single biggest leak on most small jobs isn't a wrong material price — it's the gap between quoted hours and actual hours. A job estimated at 20 labour hours that actually takes 28 has just lost roughly 40% of its labour margin, with nothing on the invoice to show why. Job costing — tracking actual hours and materials against what you quoted, job by job — is the only way to catch this pattern before it repeats across every job you run. See how job costing software ties GPS-tracked hours and material costs back to each quote so you can see, job by job, whether you're actually hitting the margin you priced for.

Try JobWorks365 free for 30 days

No credit card required. Made in Canada. Plans start free.

Related