
Guides
Janitorial Facility Contracts: Pricing Labor Costs
Janitorial facility contracts depend on wages, overtime, payroll burden, productive hours, and margin. Learn to build a burdened hourly rate and protect it.
What to take away
- Direct wages run 60 to 70 percent of a janitorial contract's cost, so the statutory wage floor sets your minimum price.
- Overtime starts after 44 hours in Ontario and Alberta, after 40 in Quebec, Saskatchewan and Manitoba, and BC allows written averaging agreements.
- CPP, EI, vacation accrual, statutory holiday pay, workers' compensation and provincial health tax all attach to every hour you sell.
- A three-year bid will absorb at least one minimum wage increase, so the pass-through clause matters more than the base rate.
- Termination pay on a lost contract with long-tenured staff is the largest single cost most estimators leave out.
Why the wage floor, not the market, sets your minimum price
For janitorial facility contracts, cleaning is labor. Direct wages usually run 60 to 70 percent of a contract's cost, which means the floor under your price is written in statute, not in what the company down the road will accept.
Each province sets its own minimum wage, overtime trigger, holiday pay and termination entitlements. A bid built on the wrong province's rules loses money quietly for the length of the contract.
An Ontario cleaner scheduled 46 hours is owed overtime after 44. A BC crew on a signed averaging agreement is not. A Montreal contract carries Quebec break rules and CNESST reporting. The same square footage can carry three different labour costs.
Start every quote at the statutory floor, add the burden, then add margin. Starting from a competitor's rate means you are guessing at their burden, and most of them are guessing too.
For the full cost-to-profit walkthrough, see commercial cleaning pricing.
The floor is not the market
Minimum wage is the lowest lawful rate, not a hiring target. Commercial contracts usually pay above it to hold staff. But the floor still anchors overtime, holiday pay and termination calculations, so when it rises, every derived cost rises with it.
Federal work is priced separately
Cleaning in federally regulated workplaces such as airports, ports and federal buildings falls under the Canada Labour Code, not the provincial act. Public Services and Procurement Canada tenders usually require proof of compliance, so price that work on its own model.
Ontario ESA: overtime after 44 hours and termination pay by tenure
Ontario's Employment Standards Act sets the wage floor, the overtime threshold and termination entitlements for most cleaning staff in the province. The Ontario ESA guide covers minimum wage, hours of work, overtime and termination in one place, and it is worth reading before you build any Ontario bid.
Ontario termination pay by tenure
- Under 1 year1 week
- 1 to 3 years2 weeks
- 3 to 4 years3 weeks
- 4 to 5 years4 weeks
- 5 to 6 years5 weeks
- 6 to 7 years6 weeks
- 7 to 8 years7 weeks
- 8 years or more8 weeks
Overtime starts after 44 hours in a work week, paid at 1.5 times the regular rate. A five-person crew covering a 46-hour week adds two premium hours per person, ten premium hours a week, every week of the contract.
Termination pay is the exposure most estimators skip. Ontario requires notice or pay in lieu based on length of service, plus severance in some cases. Lose a contract and you may owe termination pay to staff you cannot redeploy.
Ontario termination pay by tenure
| Service length | Ontario notice or pay in lieu |
|---|---|
| Under 1 year | 1 week |
| 1 to 3 years | 2 weeks |
| 3 to 4 years | 3 weeks |
| 4 to 5 years | 4 weeks |
| 5 to 6 years | 5 weeks |
| 6 to 7 years | 6 weeks |
| 7 to 8 years | 7 weeks |
| 8 years or more | 8 weeks |
A cleaner with eight years on a lost account can cost two months of payroll in one payment. Price a termination reserve into every multi-year bid rather than absorbing it in a bad month.
Scheduling is a pricing decision
A 44-hour threshold rewards tight scheduling. Split a 46-hour route into two 40-hour routes and the overtime disappears. That single change can cut labour cost on a contract by several points without reducing anyone's take-home pay.
For pay benchmarks that sit above the floor, see commercial cleaning pay.
BC Employment Standards Act: averaging agreements and daily overtime
British Columbia's Employment Standards Act permits averaging agreements, which let you average hours over one to four weeks instead of paying overtime after each week. For a cleaning company that is both a scheduling tool and a pricing tool.
BC averaging agreement checklist
- Written agreement signed before period starts
- Averaging period set at one to four weeks
- Schedule showing averaged hours issued in advance
- Agreement expiry date tracked and renewed
- Payroll configured to average, not weekly overtime
A four-week agreement can smooth a month with two heavy weeks and two light weeks. Without it, the heavy weeks trigger overtime. With it, the average may stay under the threshold. The agreement must be in writing, signed by the employee, and reviewed when it expires. Get that wrong and the overtime returns with penalties attached.
BC also applies daily overtime in some situations, so a single long shift can trigger premiums even under an averaging agreement. Two cleaners on a six-hour shift usually cost less than one cleaner on a twelve-hour shift.
Statutory holiday pay in BC is calculated from the average daily wage over the previous 30 days, and cleaners who work the holiday earn premium pay. Both costs belong in your estimate as a percentage of straight-time wages.
Averaging agreement checklist
- Written agreement signed by the employee before the averaging period starts
- Averaging period set at one to four weeks
- Schedule showing the averaged hours issued in advance
- Agreement expiry date tracked and renewed or ended on time
- Payroll system configured to average, not to pay weekly overtime
When averaging does not help
If a contract runs the same hours every week, averaging adds paperwork and saves nothing. Keep it for seasonal or project work with uneven demand.
Quebec labour standards: overtime after 40 hours and CNESST records
Quebec sets overtime after 40 hours in a week, four hours earlier than Ontario. A Montreal office contract running 42 hours carries two premium hours per cleaner per week that an Ontario bid would not.
Weekly overtime thresholds by province
Province
- Ontario
- 44 hours
- British Columbia
- 40 hours, or averaged
- Quebec
- 40 hours
- Alberta
- 44 hours
- Saskatchewan
- 40 hours
- Manitoba
- 40 hours
Overtime starts after
- Ontario
- British Columbia
- Quebec
- Alberta
- Saskatchewan
- Manitoba
The Quebec hiring and managing staff guidance sets out the hiring and employment rules that apply to cleaning operations in the province.
Quebec also requires a 30-minute unpaid meal break after five consecutive hours, plus a 20-minute paid break in some schedules. Breaks reduce productive hours per shift. Price an eight-hour shift as eight productive hours and you have overstated output before the first invoice.
CNESST enforces the rules and handles complaints. One complaint can trigger a review of payroll records for the whole crew, and fines and retroactive pay land on the employer, not the client. That risk belongs in overhead.
Montreal contracts often require bilingual supervision and written instructions in French. That is a labour cost, not a translation footnote.
Overtime thresholds across provinces
| Province | Weekly overtime starts after |
|---|---|
| Ontario | 44 hours |
| British Columbia | 40 hours, or averaged |
| Quebec | 40 hours |
| Alberta | 44 hours |
| Saskatchewan | 40 hours |
| Manitoba | 40 hours |
The record-keeping burden
Quebec requires detailed records of hours, breaks and wages, produced on demand. If your payroll system cannot produce them, you are carrying an administrative cost you have not priced.
Provincial differences to check before bidding
A multi-province contract needs one pricing model per province, not one national average. Wage floors, overtime thresholds and holiday rules differ enough to swing a bid by several points.
Build a province-by-province rate card
- List every province where the contract has staff
- Enter minimum wage and overtime threshold
- Add holiday pay and vacation percentage
- Add workers' compensation premium rate
- Add payroll tax or health tax
- Convert to fully burdened hourly cost
- Quote blended rate only after costing
Alberta sets overtime after 44 hours and applies its own general holiday pay rules. Saskatchewan's standards, covered by the Saskatchewan employment standards guidance, set overtime after 40 hours along with specific rules on wages, hours and leave. Manitoba also uses a 40-hour threshold.
Atlantic provinces vary. Nova Scotia and Newfoundland and Labrador each set their own minimum wage and overtime rules, and none of them match Ontario or Quebec exactly. A national bid built on one province's numbers loses money somewhere.
Build a province-by-province rate card
- List every province where the contract has staff.
- Enter the current minimum wage and overtime threshold for each.
- Add the provincial holiday pay and vacation percentage.
- Add the workers' compensation premium rate for cleaning.
- Add the applicable payroll tax or health tax.
- Convert each province to a fully burdened hourly cost.
- Quote the blended rate only after every province is costed.
Small jurisdictions are not automatically cheaper
Smaller provinces often carry higher workers' compensation rates for cleaning and fewer scheduling flexibilities. Do not assume a smaller market costs less to serve.
Turning a wage floor into a billable hourly rate
A wage floor is not a cost. The cost is the wage plus every statutory and insurance add-on, and that total is the burden rate you mark up.
Burden build-up on a $17.00 wage
- $17.00base wage
- 18%statutory percentage
- $20.06wage after statutory burden
- $21.00+true cost after WSIB and health tax
The components are vacation pay, statutory holiday accrual, Canada Pension Plan and Employment Insurance contributions, workers' compensation premiums, and any provincial health tax. The Ontario Workplace Safety and Insurance Act shows how premium costs arise and are administered in that province; WorkSafeBC replaces WSIB in British Columbia.
Health tax and workers' compensation are easy to forget because they never appear in the hourly wage. They still attach to every hour you sell, so build them into the burden rate rather than into overhead.
For a structured way to assemble these numbers, see the commercial cleaning quote template.
A burden formula you can substitute into
Burdened hourly cost = base wage x (1 + statutory percentage) + workers' compensation rate + health tax allocation.
At a statutory percentage of 18 percent, a $17.00 wage becomes about $20.06 before workers' compensation and health tax. Add those and the true cost can pass $21.00. Substitute your own provincial figures.
Do not bury burden in overhead
Burden scales with hours; overhead does not. Bury burden in a fixed overhead line and a contract running more hours than planned loses money on every extra hour.
Contract clauses that protect margin when statutory rates rise mid-term
Minimum wages rise on government schedules, not on your contract calendar. A three-year bid signed today will absorb at least one increase and probably two. Without a clause, you eat them.
Contract clause checklist
- Wage floor pass-through tied to minimum wage
- Workers' compensation rate adjustment clause
- Termination cost sharing on early termination
- Supplies and fuel adjustment at intervals
- Notice period for rate changes, both ways
- Annual review meeting written into contract
A pass-through clause ties your rate to the published minimum wage or a named index. When the floor rises, the rate rises by the same percentage from a stated date. Clients accept this more readily than a mid-term renegotiation because the trigger is public and objective.
A termination cost clause is harder to sell and worth asking for. It shares the cost of termination pay if the client ends the contract early, and even a partial recovery helps.
A supplies and fuel clause handles the other volatile input. Cleaning chemicals and vehicle fuel move with markets you do not control.
Clause checklist
- Wage floor pass-through tied to the provincial minimum wage
- Workers' compensation rate adjustment if the rate group changes
- Termination cost sharing on early client termination
- Supplies and fuel adjustment at stated intervals
- Notice period for rate changes, both ways
- Annual review meeting written into the contract
Make the trigger automatic
A clause that requires the client to agree to an increase is not protection. The strongest version adjusts automatically on a published date and needs only a note on the invoice.
Worked example: a five-night Ontario office contract from floor to quoted rate
This example prices a five-night-a-week office cleaning contract in Ontario. It uses round numbers to show the method, not a market rate.
Ontario office contract: floor to rate
- $17.00 wage + 18% burden = $20.06
- Add WSIB $1.50 and health tax $0.45 = $22.01
- Divide by 0.875 productive time = $25.15
- Add 12% supervision and supplies = $28.17
- Add 10% overhead = $30.99
- Apply 15% margin = $35.64 quoted rate
Start at the wage floor. Assume the Ontario minimum wage is $17.00 an hour. Add statutory holiday and vacation accrual at 10 percent, then CPP and EI at 8 percent. The statutory burden is 18 percent, so the wage becomes $20.06.
Add WSIB at $1.50 per hour and an Employer Health Tax allocation at $0.45 per hour. The burdened hourly cost is $22.01.
Now add non-productive time. A cleaner paid for eight hours may clean for seven after breaks, travel between floors and setup. Divide the burdened cost by 0.875 and the productive hourly cost is about $25.15.
Add supervision, supplies and equipment at 12 percent of productive cost, or $3.02. Direct cost is $28.17. Add overhead at 10 percent, or $2.82, giving $30.99. Apply a 15 percent margin of $4.65 and the quoted hourly rate is $35.64.
That rate is the floor for this contract, not a target. If the market will not bear it, change the schedule rather than cut the margin.
For a fuller treatment of margin setting, see how to price commercial cleaning.
What moves the answer
A 40-hour schedule instead of 44 cuts overtime risk. A building with an elevator cuts travel time. A bilingual requirement in Montreal adds supervisory cost. Each variable moves the rate.
Check compliance before the first invoice
Confirm payroll registration, workers' compensation coverage and WHMIS 2015 training records before you bill. A compliance checklist for new owners covers the registrations and postings that apply.
The one number to remember
Your burdened hourly cost, not the wage, is the number that must be covered. Every quote below it is a loss you have chosen to take.
Common questions
Does the Canada Labour Code apply to my cleaning contracts?
Only in federally regulated workplaces such as airports, ports and federal buildings. Everything else falls under the employment standards act of the province where the work is performed. Confirm the classification with the federal Labour Program or the provincial ministry before you bid.
How often do provincial minimum wages change?
Most provinces adjust annually, usually in the fall, and some tie the increase to inflation. Check the provincial government source before each bid cycle rather than carrying last year's figure into a three-year quote.
Can I use an averaging agreement in every province?
No. British Columbia permits them explicitly, and other provinces have different rules or none at all. Confirm with the provincial employment standards authority before you build a schedule around one.
What is the biggest hidden cost in a cleaning bid?
Termination pay on a lost contract with long-tenured staff. It arrives as a lump sum that can wipe out a year of margin on that account, which is why a termination reserve belongs in the bid from the start.







