Job costing

Job costing for contractors: see each job's real margin

A plain job costing method for 4–15 person crews: track labour, materials, subs and receipts per job, and see margin while the crew is still on site.

Overhead view of a wooden table at night with a closed laptop, a mug of coffee, a phone, a pencil and a spread of crumpled receipts
AI-generated illustration

You know what the job sold for. Do you know what it made? If that answer comes from your accountant months later, as one profit number for the whole year, you can't tell which jobs carried the season and which ones lost money.

Job costing fixes that. For a contractor it isn't complicated, and you can start this winter with last season's paperwork, a spreadsheet and a few evenings at the kitchen table. This guide covers the method, the labour and HST traps, a worked example, and when to check the numbers so you can still act on them.

What is job costing for contractors?

Job costing means tying every cost to the job it belongs to: loaded labour, materials, equipment and rentals, subcontractors, and delivery and disposal. Job revenue minus those costs is the job's gross profit. Gross profit divided by revenue is the margin. Office rent, insurance, trucks and your own admin time are overhead, tracked separately, and your margin is what pays for them.

The split matters. If you load overhead into one job and not the next, comparing them stops meaning anything. Keep job costs to what the job itself caused, and judge overhead against your total gross profit for the year.

The five cost buckets on every job

Almost every cost on a contracting job fits one of five buckets. Use the same five on every job, so you can compare a fence to a patio to a basement. Permit and drawing fees for a specific job are job costs too: give them their own line or put them under Subcontractors, the same way every time.

Labour
Every paid hour your crew spends on the job, at the loaded hourly cost (next section), not just the wage. Include paid time loading at the yard and driving from the yard to site. Whether a given stretch of travel counts as working time is an Employment Standards Act question, so check with your payroll provider if you're unsure.
Materials
Pavers, base, lumber, posts, concrete, fasteners, and the second trip to the supplier when the first order came up short.
Equipment and rentals
The plate compactor, the mini excavator, the saw you rented for two days. If you own the machine, charge the job a fair day rate for it, so owned equipment isn't free on paper.
Subcontractors
Excavation, electrical, the concrete pump: anyone you pay to do part of the work.
Delivery and disposal
Supplier delivery charges, bins, dump fees and haul-away.

What stays out: the office, the shop, insurance, truck payments, phones, software and the evenings you spend quoting. That is overhead. Your gross profit across all jobs has to cover it before the business makes any money.

How to work out true labour cost

Labour is the easiest bucket to cost too low, because the wage on the pay stub isn't what an hour of work costs you. The extra on top of the wage is often called labour burden. The formula:

Loaded hourly cost = hourly wage + employer CPP + employer EI + WSIB premium + vacation pay + public holiday pay

Each piece comes from an official rule, so take the figures from the source rather than from a rule of thumb.

Employer CPP and EI

For CPP, the CRA says the employer must contribute an amount equal to the CPP contributions deducted from the employee's pay (CRA: CPP contributions). For EI, the employer normally contributes 1.4 times the EI premiums deducted, or less if you're in the EI Premium Reduction Program (CRA: EI premiums). To get real numbers, run one typical week's pay through the CRA's payroll deductions online calculator. It shows the employee's CPP and EI, and your share follows from those.

WSIB premium

WSIB's method is to multiply your insurable earnings by your premium rate and divide by 100 (WSIB: how to calculate your premium). Your rate depends on your classification, and WSIB has published its 2027 premium rates. Use the rate on your own rate statement, not an average: your 2026 rate when you cost this year's jobs, and your 2027 rate when you price next season.

Vacation pay

Ontario's Employment Standards Act sets vacation pay at no less than 4% of gross wages (not counting vacation pay itself) for employees with under five years of employment, and at least 6% once they reach five years (Ontario: vacation under the ESA).

Public holiday pay

Ontario has nine public holidays under the Employment Standards Act (Ontario: public holidays under the ESA). Most employees are paid for those days without working them, so that pay is part of what an hour of work costs you. Two exceptions matter for contractors. A construction employee who is paid at least 7.7% of wages as vacation or holiday pay (9.7% after five years of employment) is exempt from the public holiday rules, so that one percentage covers both lines (Ontario: special rules for construction). Landscape gardeners are exempt from public holiday pay in any week when aesthetic landscaping is more than half their work; structural jobs such as retaining walls don't count toward that (Ontario: special rules for landscaping). Check which rules cover each person on your crew.

Add the pieces per hour and you have the loaded cost. Example numbers, not industry averages: if the wage is $29 an hour and employer CPP, EI, WSIB, vacation pay and public holiday pay add about $6 an hour, the loaded cost is $35. That $35 is the number every job should carry, not the $29.

Decide once where paid non-productive time goes: rain days at the yard, a morning loading the trailer, a callback to fix a settled paver. Spread it across jobs on a fair basis or carry it as overhead, but do it the same way every time, or your job-to-job comparisons drift.

Payroll rules have earnings limits, maximums and exceptions that this summary leaves out. Check your loaded rate with your accountant or payroll provider before you price from it.

Where HST goes (and doesn't)

In Ontario, HST is 13% (CRA: GST/HST rates). It passes through your books in both directions, and it skews margin if you mix it into job costs.

If your business is registered for GST/HST, the CRA lets you recover the GST/HST you paid on purchases and expenses for your commercial activities by claiming input tax credits (CRA: input tax credits). HST you get back isn't a cost of the job, so record materials, rentals and subcontractor invoices before the recoverable HST. Do the same on the revenue side: the HST you charge the customer isn't yours, so job revenue is the price before tax.

If you aren't registered, if you use the CRA's quick method (which generally doesn't allow input tax credits on operating expenses), or if a purchase doesn't qualify for an input tax credit, the HST you paid is a real cost and it stays in the job.

How much does it matter? In the example below, leaving HST in the materials line alone would take about 4 points off the margin. Pick one rule and keep to it on every job.

Input tax credit rules have conditions and exceptions. Confirm how they apply to your business with your accountant.

A worked example: one interlock patio

A backyard patio sold for $20,000 before HST. A four-person crew for four 10-hour days is 160 hours, at the $35 loaded rate from above.

Example interlock patio, costs before recoverable HST (example numbers, not industry averages)
LineAmount
Price, before HST$20,000
Labour: 160 hours at $35 loaded$5,600
Materials: pavers, base, sand, edging$6,000
Equipment and rentals$800
Subcontractor: excavation$1,500
Delivery and disposal$700
Total job cost$14,600
Gross profit$5,400
Margin (gross profit ÷ price)27%

Now say the base needed more digging than planned and the job ran six days instead of four. That is 240 hours, so labour becomes $8,400, total cost $17,400, gross profit $2,600 and margin 13%. Same price, same customer, less than half the profit, and the only line that moved was crew hours.

Markup vs margin in one minute

Margin is profit divided by price. Markup is profit divided by cost. They are different numbers, and pricing with one while aiming for the other costs you on every job.

Example numbers, not industry averages: a job costs you $14,000. Add a 30% markup and the price is $18,200. Profit is $4,200, and $4,200 ÷ $18,200 is a margin of about 23%, not 30%.

If you want a 30% margin, divide the cost by 0.70 instead: $14,000 ÷ 0.70 = $20,000. Set your target as a margin, then price from it.

When to check: at the quote, mid-job and at closeout

At the quote

Build the price from the five buckets and look at the margin before the quote goes out. A thin margin on paper leaves no room for a wet week or a short delivery.

Mid-job

Compare crew hours and materials so far against what the quote assumed. This is the check that pays, because the crew is still on site and you can still do something: tighten the schedule, raise a change order for the extra excavation, or catch the duplicate supplier run.

At closeout

Get the final number and write one line on why it differed from the quote. Over a season, those lines tell you more about your pricing than any formula.

If closeout is the only check you do, and it happens months later, you find out what went wrong when it's too late to fix it on that job.

Winter exercise: cost last season's 10 jobs

The slower months are a good time to do this once by hand. Pick 10 jobs from the 2026 season, a mix of job types and sizes, and work through them:

  • Pull the final invoice for each job and write down the price before HST.
  • Total the crew hours per job from timesheets, the crew group chat or your calendar, and multiply by your loaded hourly cost.
  • Match supplier statements and receipts to jobs, net of recoverable HST if you claim input tax credits.
  • Add rentals, subcontractor invoices, delivery, bins and dump fees.
  • Work out gross profit and margin for each job.
  • Rank the 10 jobs from best margin to worst.
  • Look for the pattern: a job type, a crew, a customer type or a job size that keeps landing near the bottom.
  • Write down what you'd change on next year's price sheet.

The ranking is the useful part. Carry what you learn into your 2027 prices; if you do hardscape, how to price interlock and hardscape jobs for 2027 picks up from here. You'll have the invoices and receipts out anyway, so work through the Ontario contractor year-end checklist at the same sitting.

Spreadsheet or software: what changes when it's live

A spreadsheet works. One tab per job, the five buckets as columns, a margin formula at the bottom. The catch is that someone has to keep it current every day from timesheets, receipts and supplier bills, or it turns back into a closeout-only number.

Here's how NexusCRM by NexusAI GTA handles it. On the Pro plan, each job has a live P&L. Labour and receipts land on the job, and receipt capture uses AI to turn a photo of a receipt into itemized expenses on that job's P&L, which you can check against the receipt. NexusCRM is HST-native, and you see the job's margin while the crew is still on site, not at year-end. The features page lists the rest.

Pro is $425/mo CAD plus a $5,500 one-time implementation, with unlimited users, on a 12-month initial term, then month-to-month (pricing). AI is built into every plan. Voice-to-quote, Bid Advisor and receipt capture start on Pro. AI Caller is a separate add-on, billed by talk minute. It is in early access, and job costing doesn't need it.

Checked against the linked CRA, WSIB and Government of Ontario pages on November 11, 2026. This is general information, not legal or tax advice; confirm with your accountant or lawyer.

Want to see a job's margin while the crew is still on site? Book a 25-minute demo at crm.nexusaigta.ca/contact.html or call (437) 241-6287. Bring a job you quoted this season (leave out the customer's name and address; the scope and numbers are enough). We'll map your lead-to-invoice flow, walk it through live and give you a straight answer on fit.

Questions, answered

What is job costing for contractors?

Job costing means tying every cost to the job it belongs to: loaded labour, materials, equipment and rentals, subcontractors, and delivery and disposal. Job revenue minus those costs is the job's gross profit, and gross profit divided by revenue is its margin. Office, insurance, trucks and other overhead are tracked separately.

How do I calculate a loaded labour rate?

Use the loaded hourly cost, not just the wage: the wage plus the employer's CPP contribution (equal to the employee's), the employer's EI premium (normally 1.4 times the employee's), the WSIB premium, vacation pay (at least 4% of gross wages in Ontario, 6% after five years) and public holiday pay. Construction employees paid at least 7.7% of wages as vacation or holiday pay (9.7% after five years) are exempt from the public holiday rules, so that percentage covers both. The CRA, WSIB and the Ontario Employment Standards Act guide have the current rules; check your figures with your accountant or payroll provider.

Should HST be included in job costs?

If your business is registered for GST/HST and recovers the tax through input tax credits, record job costs before the recoverable HST, and record job revenue before the HST you charge. Otherwise tax you get back makes jobs look less profitable than they are. If you are not registered, or you use the quick method, the HST you pay on job costs is generally a real cost. Ask your accountant how this applies to you.

How often should I check a job's margin?

Three times: when you price it, partway through while you can still change something, and at closeout. Checking only at year-end tells you what went wrong but leaves no chance to fix it on that job.

Can I do job costing in a spreadsheet?

Yes. Use one tab per job, the five cost buckets as columns and a margin formula at the bottom. It works as long as someone updates it from timesheets, receipts and supplier bills while the job is running. If it only gets filled in at closeout, you learn the margin too late to change anything on that job.

What is the difference between markup and margin?

Markup is profit as a share of cost; margin is profit as a share of the selling price. Adding 30% to your cost gives a margin of about 23%, not 30%. To hit a 30% margin, divide your cost by 0.70. Set your target as a margin and price from that.

Live in about two weeks for most businesses.

See your next job run on NexusCRM

Book a 25-minute demo. Bring a job you quoted this season and we'll walk it through NexusCRM, from the quote to acceptance to the job's margin, then give you a straight answer on fit.

Book a 25-minute demo at crm.nexusaigta.ca/contact.html or call (437) 241-6287 · info@nexusaigta.ca · Toronto, ON