Your Real Hourly Rate: Why Busy Ontario Trades Businesses Still Run Out of Money
- Jul 30
- 7 min read
Updated: 6 days ago

Last reviewed: July 2026
Most trades businesses that get into trouble are not short of work. They are busy, booked weeks out, and still short of cash. The reason is almost always the same: the hourly rate was set by looking at what competitors charge rather than by working out what an hour actually costs to deliver. This post shows how to calculate a real charge-out rate from your own numbers, and why the honest answer is usually higher than what you are charging now.
No tax rules here. This is the arithmetic underneath every quote you write.
The four numbers you need
Number | What it is |
Truly billable hours | Hours you can actually invoice in a year, after everything that is not billable |
Fully loaded labour cost | What an hour of a person's time costs you including burden, not their wage |
Overhead per billable hour | Fixed costs divided across the billable hours that must carry them |
Target margin | What the business keeps after all of the above |
Get these four right and pricing becomes arithmetic. Get them wrong and pricing becomes hope.
Step one: how many hours can you actually bill?
Start with 2,080 hours, a 40-hour week for 52 weeks. Now take out everything you cannot invoice.
A realistic year for a working owner-operator in the trades:
Vacation, statutory holidays and sick days: roughly 200 hours
Quoting and site visits that do not convert: 200 to 400 hours
Driving between jobs and to suppliers: 250 to 400 hours
Admin, invoicing, chasing payment, licensing, training: 200 to 300 hours
Weather, cancellations and gaps between jobs: 100 to 300 hours depending on trade
That lands most owner-operators somewhere between 1,000 and 1,400 truly billable hours a year. Not 2,080.
This is the single biggest error in trades pricing. If you set your rate assuming 2,000 billable hours and you actually bill 1,200, you have under-recovered by about 40% on every fixed cost in the business, all year, and no amount of extra volume fixes it.
For employees the picture is better but not by as much as owners expect, because their driving, loading, cleanup and shop time still is not billable unless you bill for it.
Do this once with your own invoices. Take last year's total invoiced labour hours from your job records and divide by the hours you and your crew were actually paid for. That ratio is your utilization, and it is more useful than any industry benchmark.
Step two: what does an hour of labour really cost?
Not the wage. The wage is maybe 70% of it.
For an employee paid $35 an hour in Ontario, the burden stacks up roughly like this:
CPP, employer share at 5.95% on pensionable earnings
EI, employer share at 1.4 times the employee rate
WSIB, at your class rate. For a G4 trade in 2026 that is $1.54 per $100 of insurable earnings. For a G3 trade including roofing it is $3.55
Vacation pay, at least 4% under Ontario employment standards
Statutory holidays
Non-billable paid time, the driving and loading from step one
Training, certification renewals, and licensing where you cover it
Phone, tablet, uniform, safety gear, tool replacement
Add it up honestly and a $35 wage is commonly $46 to $52 of real cost per paid hour. Then divide by utilization to get cost per billable hour, which pushes it higher again.
That second division is the step almost everyone skips. If a worker costs you $48 per paid hour and only 70% of their paid hours are billable, each billable hour costs you about $69 before a dollar of overhead or profit.
Step three: overhead per billable hour
List your annual fixed costs. For a small trades corporation this is typically:
Trucks, insurance, fuel, maintenance
Shop or yard rent, utilities, storage
General liability insurance
Licensing and regulatory fees. An electrical contractor licence runs $448 a year, a master electrician licence $91, and a TSSA fuels contractor registration for a small shop about $506
Software, phones, accounting, bookkeeping
Advertising and vehicle lettering
Bad debt, and it is not zero
Divide the total by your billable hours from step one. On $90,000 of annual overhead and 1,200 billable hours, that is $75 per billable hour of overhead alone.
This is where the 2,080-hour error does its real damage. The same $90,000 spread over an imagined 2,000 hours looks like $45 an hour. Same business, $30 an hour of invisible loss.
Step four: the rate
Charge-out rate equals fully loaded labour cost per billable hour, plus overhead per billable hour, divided by one minus your target margin.
Worked through, using the numbers above and a 15% target margin:
Labour per billable hour: $69
Overhead per billable hour: $75
Subtotal: $144
Divided by 0.85: $169 per hour
If you are currently charging $110 because that is what the guy down the road charges, you now know why volume is not turning into money.
Two things to say about that number. First, it is illustrative, your own figures will differ substantially by trade, overhead and utilization. A one-truck operation working out of a garage looks very different from a five-truck shop with a leased yard. Second, if the number comes out above what your market will bear, the answer is not to ignore it. The answer is to reduce overhead, raise utilization, or change what you sell. Pricing below cost is a decision to lose money slowly.
Where the money leaks on individual jobs
Rate is only half of it. Even at the right rate, specific jobs bleed:
Change orders done on a handshake. The single largest source of unbilled labour in residential trades. If it is not written and signed, it does not get paid
Materials at cost. Materials carry handling, delivery, returns, waste and financing. A markup is not a favour to yourself, it is cost recovery
Call-outs quoted flat. A flat $150 diagnostic that takes two hours plus travel is a subsidy
The last 10% of the job. Punch lists, callbacks and cleanup are almost never in the quote
Deposits not taken. Funding your customer's material purchase with your own working capital, at your borrowing cost
Track actual hours against quoted hours by job for one quarter. The pattern will be obvious, and it will usually be one or two job types doing all the damage.
The reporting that makes this visible
You cannot manage this from a bank balance. What a trades business needs is:
Job costing: actual labour hours and materials against quoted, per job, closed monthly
Gross margin by job type. Service calls, small renovations and large contracts behave completely differently and should be priced differently
Utilization by person, monthly. Billable hours divided by paid hours
WIP and holdbacks, so revenue earned but unbilled is visible rather than a surprise
In QuickBooks Online this is projects plus a disciplined chart of accounts, not a spreadsheet someone rebuilds each quarter. Set up once, it produces the numbers above automatically.
Frequently asked questions
How many hours a year can a contractor actually bill?
Most owner-operators bill between 1,000 and 1,400 hours a year, not 2,080. Quoting, driving, admin, weather and gaps between jobs consume the difference. Pricing off 2,000 hours when you bill 1,200 under-recovers fixed costs by roughly 40%.
How do I calculate my true hourly cost for an employee?
Start with the wage, add employer CPP and EI, WSIB at your class rate, vacation pay of at least 4%, statutory holidays, non-billable paid time, training and equipment. A $35 wage commonly costs $46 to $52 per paid hour, then divide by your utilization rate to get cost per billable hour.
What is a reasonable markup on materials for a trades business?
There is no single correct figure, but charging materials at cost is a loss. Materials carry handling, delivery, returns, waste and the cost of financing them until you are paid, and a markup recovers those costs rather than creating profit.
Why is my trades business busy but out of cash?
Usually because the charge-out rate was set from competitor pricing rather than from cost, and because fixed costs are spread across more billable hours than actually exist. Volume then multiplies the loss instead of covering it.
Should I charge for travel time between jobs?
Someone pays for it either way. Either it is billed directly, built into your hourly rate, or absorbed as a loss. For a service trade with many short calls, travel is a large share of paid hours and needs to be in the rate explicitly.
How do I stop losing money on change orders?
Write them down and get them signed before the work happens, including the price. Unwritten change orders are the largest single source of unbilled labour in residential trades.
What reporting should a trades business have monthly?
Job costing with actual hours and materials against quoted, gross margin by job type, utilization by person, and a WIP and holdback schedule. All four are achievable in QuickBooks Online with projects set up properly.
Key takeaways
Billable hours, not paid hours, are what your fixed costs have to be recovered across
Most owner-operators bill 1,000 to 1,400 hours a year, not 2,080
Fully loaded labour cost is typically 30% to 50% above the wage, before dividing by utilization
Charge-out rate is labour plus overhead per billable hour, divided by one minus target margin
Unwritten change orders, materials at cost, and flat-rate call-outs are where good rates still leak
If the honest number is above your market, fix overhead or utilization. Do not price below cost
Talk to an accountant who works with trades
Our team sets up job costing and margin reporting in QuickBooks Online for trades and construction corporations across Mississauga, Oakville, Vaughan, Markham, King City, Caledon and Burlington, so you can see which job types actually make money. Knowing your true hourly cost is the difference between a busy year and a profitable one. That is the planning side of our accounting for Ontario contractors.
Fixed fees quoted up front. Straight answers, no lecture.
Rates referenced: 2026 WSIB class rates, Ontario employment standards vacation entitlement, and published ESA and TSSA licensing fees as at July 2026. Illustrative calculations only, your own figures will differ. General information, not advice on your pricing.



Comments