This site works best with JavaScript enabled. Core content is still viewable without it.
Skip to content
Clock showing overtime hours with Canadian flag and collective agreement document
complianceCanada··7 min read

Overtime in Canadian collective agreements: why payroll systems get it wrong

Overtime under a collective agreement isn't just the Canada Labour Code or an ESA. It's a layered set of rules that most payroll configurations only partially implement.

Overtime under a Canadian collective agreement is not a single rule. It's a stack — and the complexity compounds at every layer. Most payroll configurations only capture the base, and the rest quietly goes unvalidated.

The layered structure

Start with the legislative floor. The Canada Labour Code sets a 40-hour weekly overtime threshold for federally regulated industries. Ontario's Employment Standards Act sets 44 hours. BC sets 40 hours daily or weekly with different daily thresholds. Alberta and Quebec add their own variations.

These are minimums. A collective agreement can only improve on them — it cannot go below. But "improve" takes dozens of forms in practice:

  • A lower weekly threshold (38 hours in many healthcare and transit agreements)
  • Daily overtime triggers (any hours beyond 7.5 or 8 in a single shift)
  • Overtime stacking (daily overtime doesn't get swallowed into the weekly calculation)
  • Scheduled day off premiums (different from standard overtime)
  • Overtime on holidays (often double-time or more, not covered by the statutory holiday pay provision)
  • Averaging agreements (which can defer when overtime kicks in — but only within the limits the agreement allows)

Most payroll systems are configured at one level of this stack. The rest is assumed to be handled somewhere else, or assumed to be edge cases. It's neither.

What gets missed

The single most common missed rule class is daily overtime stacking. A worker does 9 hours on Monday and 6 hours on Tuesday. Did they work overtime on Monday? Under the agreement, yes — the 9th hour might trigger a 1.5× premium. But their weekly total is still under 40 hours.

A payroll system configured only to the provincial weekly threshold never sees the Monday premium. The employee is systematically underpaid on every day they exceed the daily threshold.

At scale — say, 3,000 healthcare workers on rotating 12-hour shifts — this isn't an occasional edge case. It's a structural underpayment built into every pay cycle.

The configuration gap

The people who negotiate collective agreements are labour relations professionals. The people who configure payroll systems are payroll analysts or HR technology specialists. These are often different teams, working months apart, with no structured handoff.

The labour relations team tables the agreement, gets it ratified, and files it. The payroll team receives a PDF and a deadline. They configure what they can interpret in the time they have, test against a sample of scenarios, and move on.

No one audits the delta between what the agreement says and what the payroll configuration does. That delta is where the liability lives.

Why it compounds

Unlike a single incorrect paycheque, a misconfigured overtime rule errors on every qualifying instance. If the rule applies 18 times per month per affected employee, and you have 500 employees on the relevant agreement, that's 9,000 instances per month. Each one is a potential underpayment.

Over two years between bargaining cycles, the number of instances is roughly 216,000. Each is potentially a violation of the agreement and the applicable provincial standard.

When this comes to light — through a grievance, an audit, or a regulatory complaint — the remediation isn't just the back pay. It's interest, administration, and the legal cost of responding. The Canada Labour Program and provincial labour standards offices can and do pursue back-payment orders.

What validation against the agreement actually looks like

The correct approach is to validate your payroll data against a structured version of the agreement rules — not just against the statutory floor.

For overtime, that means:

  1. Daily overtime rules — identify the threshold for each classification in the agreement
  2. Weekly overtime rules — identify the agreement threshold (which may differ from the ESA threshold)
  3. Stacking rules — determine whether daily overtime hours are included in or excluded from the weekly calculation
  4. Premium rates — 1.25×, 1.5×, 2× — and which apply at which stage
  5. Scheduled days off — different premium rates than standard overtime in most agreements
  6. Holiday overtime — the interaction between the holiday provisions and the overtime provisions

Each of these needs to be verified against your actual shift and hours records, not just tested against a sample scenario.

The output isn't a pass/fail on each employee. It's a finding log: which employees, which pay periods, which rule, what the agreement says, and what the data shows. That's what lets you prioritize remediation and document your response if a grievance is filed.


Contract-as-Code extracts structured rules from collective agreement PDFs and validates employee payroll data against them. The overtime rules above — daily thresholds, stacking rules, premium rates — are exactly the rule families the platform extracts and validates. Not legal advice. Always review findings with qualified HR or legal counsel.

ShareLinkedInX / Twitter

Validate your collective agreements today

Upload a PDF. AI extracts rules. You review and approve. Then validate your payroll data. Start with a free pilot — no credit card required.

Start free pilot →

Not legal advice. All data processed in Canada (GCP northamerica-northeast1).

Enjoyed this article?

Get practical HR and payroll compliance guidance delivered to your inbox. No fluff.

No spam. Unsubscribe any time. Data handled under our Privacy Policy.