Trades · Edmonton

Job costing for contractors: know which jobs actually pay.

Your P&L says the year was fine. Job costing tells you which jobs carried it and which ones quietly lost money. Here's how Edmonton contractors set it up.

  • By the Plum team
  • Updated Oct 2026
  • 7 min read
The short version
  1. Job costing tracks revenue and direct costs for each job, so you see profit per project, not just per year.
  2. Track four cost buckets: labour (burdened), materials, subcontractors and equipment.
  3. Compare estimate to actual on every job, and feed what you learn into the next quote.
  4. QuickBooks Online Plus has Projects built in. The discipline is tagging every cost to a job.

Most contractors know whether the year was good. Far fewer know which jobs made the money. A basement in Summerside might have earned 30% while a kitchen in Glenora lost money because of two extra trips and a change order nobody billed. Job costing for contractors fixes that by tracking every job's revenue and costs separately, so you can see the profit on each one and quote the next one better.

This guide is for general contractors, renovators and trades around Edmonton, Sherwood Park, Spruce Grove and Leduc. It covers what to track, a worked example, Alberta-specific wrinkles like holdbacks, and how to set it up in QuickBooks Online.

1The four cost buckets

Every direct job cost fits one of four buckets. Set them up as separate cost of goods sold accounts so your profit and loss shows gross margin properly.

  • Labour: your crew's hours on the job at a burdened rate. That's the wage plus employer CPP, EI, vacation pay and WCB premiums.
  • Materials: lumber, drywall, fixtures, fasteners. Before GST, because you'll claim the GST back as input tax credits.
  • Subcontractors: electricians, plumbers, tapers, flooring installers. If you pay subs for construction services, you'll likely need to report them on T5018 slips.
  • Equipment and job-specific costs: bin rentals, permits, equipment rental, disposal fees.

Overhead (your truck payment, office software, insurance, the shop) stays out of individual jobs. You cover it with the gross profit each job earns, which is why knowing that gross profit matters so much.

A busy year and a profitable year aren't the same thing. Job costing tells you which you had.

2Job costing for contractors: a worked example

Say you're a small general contractor finishing a basement in Summerside. Your crew is paid $35 an hour; after adding employer CPP, EI, vacation pay and WCB, the burdened cost in this example is $42 an hour. The contract is $48,000 before GST. All numbers are hypothetical.

LineEstimateActualDifference
Contract revenue$48,000$48,000$0
Change order (added bathroom fan and outlet)$0$1,200+$1,200
Total revenue$48,000$49,200+$1,200
Labour (burdened, $42/hr)$12,600 (300 hrs)$15,120 (360 hrs)−$2,520
Materials$11,000$11,800−$800
Subcontractors (electrical, plumbing, taping)$9,500$10,100−$600
Permits, bins, rentals$1,400$1,400$0
Total job costs$34,500$38,420−$3,920
Gross profit$13,500 (28%)$10,780 (22%)−$2,720

The job still made money, but $2,720 less than planned. And now you know exactly why: 60 extra crew hours. That's the conversation worth having. Was it the drywall schedule? A design change that should have been a change order? An optimistic estimate? Whatever the answer, it goes into the next quote.

Without job costing, those extra hours just disappear into "wages" for the year.

Bill every change orderThe most common profit leak on renovation jobs is extra work done on a handshake and never invoiced. Write it up, get it approved, and add it to the job as soon as it happens, not at the end.

3Alberta wrinkles: holdbacks, GST and WCB

Holdbacks

On many Alberta construction projects, the owner or general contractor holds back a percentage of each payment under the province's prompt payment and lien legislation, and releases it later. For job costing, record the full contract value as revenue on the job and track the holdback as a separate receivable. That keeps the job's profit right, and the receivable reminds you to chase the release. Confirm which holdback rules apply to your contracts with your lawyer or accountant.

GST

If you're GST-registered, job revenue and job costs should both be before GST. The GST you charge goes to GST payable; the GST you pay on materials and subs comes back as input tax credits. Mixing GST into job costs makes every job look 5% more expensive than it is.

WCB

Alberta WCB premiums are calculated on payroll, so they belong in your burdened labour rate. Our WCB Alberta guide covers how premiums work and what to report.

4Setting up job costing in QuickBooks Online

QuickBooks Online Plus and Advanced include Projects, which is the simplest way for small contractors to job cost.

0 of 8

The software is the easy part. The hard part is the habit: every receipt from the building supply store needs to be tagged to a job. If your crew picks up materials for two jobs on one receipt, split it. A shared supply run that's never allocated is how job costs go missing.

5Deposits and progress billing

Bigger jobs are rarely paid in one invoice. A typical renovation might take a deposit up front, progress draws at milestones like framing and drywall, and a final invoice at completion. Job costing works best when every one of those is invoiced against the job.

Deposits need care. Money a customer pays before you've done the work isn't really earned yet; it's a liability until you deliver. Many small contractors simply record deposits as income on the job, which can be fine for a short job that starts and finishes in the same month. For longer jobs, or jobs that cross your year-end, ask your accountant how they want deposits handled so revenue lands in the right year.

6Common job costing mistakes

  • Using the bare wage for labour. Every job looks better than it is.
  • Untagged receipts. Materials end up in a general account and the job's costs are understated.
  • Owner time left out. If you're on the tools, track your hours at a realistic rate, even if you don't pay yourself by the hour.
  • Holdbacks left off the job. The job looks unprofitable until the release, then wildly profitable.
  • Only checking at the end. Review open jobs monthly so you can catch overruns while there's still time to fix them.

Behind all of this sits plain good bookkeeping: reconciled accounts, receipts matched, payroll recorded properly. Our guide to contractor bookkeeping in Edmonton covers the basics.

Plum sets up job costing in QuickBooks Online for contractors in Edmonton, Sherwood Park, Spruce Grove, Leduc and Beaumont, then keeps every bill and hour tagged to the right job. Book a call and we'll show you what your last few jobs really earned.

7Questions people ask

What is job costing for contractors?

It's tracking revenue and direct costs (labour, materials, subcontractors and equipment) for each job separately, so you can see the profit on every project and compare it to your estimate.

How do I do job costing in QuickBooks Online?

QuickBooks Online Plus and Advanced include Projects. You create a project under each customer, then tag invoices, bills, expenses and time to it. The project view shows income, costs and profit for that job.

Should labour in job costing include more than the hourly wage?

Yes. Use a burdened rate that adds employer CPP, EI, vacation pay and WCB premiums to the wage. Using the bare wage makes every job look more profitable than it is.

Do I include GST in job costs?

Not if you're GST-registered. The GST you pay on materials and subs comes back as input tax credits, so job costs should be the amount before GST.

How should I handle holdbacks in job costing?

Record the full contract revenue on the job and track the holdback as a separate receivable. That way the job's profit is right, and you can still see what's owed and when it's due for release.

Want this off your plate?

Flat-fee bookkeeping for trades. Month to month, no surprises.

Book a free 15-min call

This article is general information for Alberta businesses and isn't tax or legal advice. Rules and thresholds change, so confirm your situation with your accountant or CRA.

Book a Free 15-Min Call

We'll call you. Quick, no obligation.

  • 15-minute call
  • No contract, cancel anytime
  • Pick a time that works for you

15-minute call · No contract, cancel anytime · Pick a time that works for you

Or call now ·

Talk to Joey or StephFree 15-minute callBook