Every October, somewhere in Alberta, a contractor submits a rate increase request to a client who hasn't looked at their own rate schedule in twelve months. The request comes in at 9%. The client pushes back on instinct, settles at 6%, and considers that a win. Nobody has benchmarked anything. The negotiation was conducted on one party's spreadsheet and one party's intuition.
The contractor won. They usually do when they move first.
The annual MSA rate review isn't a complicated process. But it requires starting before the contractor submits - not after. This guide covers when to start, what to benchmark, how to structure the conversation, and what to document so the next renewal goes faster.
Why the contractor submits first - and why that matters
In most mid-market Alberta services relationships, the rate review dynamic works like this: the contract has an annual renewal date, usually December 31 or March 31. The contractor is tracking that date more carefully than the operator is. Sometime in October or November, they submit a rate revision package - a new rate schedule with increases justified by a combination of trade wage rates, fuel costs, and equipment replacement values.
The operator receives the package, compares it to the existing rate schedule, notes the increases, and starts a negotiation from the contractor's submitted numbers. There is no benchmark on the table from the operator's side. The conversation is entirely reactive.
This isn't a failure of intent - it's a failure of process. The operator didn't start their own review 60 days out. They didn't pull market data before the meeting. They didn't prepare a position. When the contractor walked in with a number, the operator had nothing to walk in with except a gut feeling about what sounds reasonable.
Many Alberta services MSAs contain no escalation clause - no language that defines how, when, or on what basis rates can be adjusted. If your contract is silent on rate changes, both parties are negotiating from scratch every year. The contractor knows this. They've prepared. If you haven't, the negotiation starts at their number and works backward from there.
The 60-day rate review timeline
The goal is to complete your own internal review and build a position before the contractor submits. Here's the timeline I use. It assumes a December 31 renewal date - adjust forward or back for your contract cycle.
Internal rate audit
Pull the current rate schedule and the contract. Document every labour classification and rate in a comparison table. Flag the categories where you've had billing disputes or discrepancies in the past 12 months - those are the rates most likely to be contested or inflated on the renewal. Check what your contract says about rate changes: is there an escalation clause tied to a specific index? An annual cap? A requirement for written notice before submission? Or is the contract silent? Your starting position is what your contract says, not what the contractor asks for.
Market benchmarking
Three sources matter for Alberta services contract benchmarking. BuildForce Canada publishes annual labour market outlooks by trade and region - the Alberta data is specific enough to be useful. The Canadian Construction Association and your industry associations (CAPP, Energy Services Canada) publish market updates. And your own historical invoices are a dataset nobody else has - what did this contractor actually charge you per classification over the last 12 months, and does it match what the rate schedule says? If a $48/hour rate card produced an effective average of $52/hour in actual invoices, your renewal baseline isn't $48. Find the discrepancy before the meeting, not in it.
Preliminary position
Before the contractor submits anything, document what you'll accept, push back on, and refuse. Accept: trade wage increases that track published market data for the relevant classifications. Push back on: overhead increases without supporting documentation - fuel, insurance, and equipment replacement costs are legitimate drivers but need evidence, not assertions. Refuse: rate increases on classifications where your invoiced actuals already exceed the current rate schedule. The preliminary position is a draft - you may revise it based on what the contractor submits. But having it written before the submission changes the negotiation. You're no longer responding to their document. You're comparing it to yours.
Pre-submission conversation
Before you receive the formal submission, have a brief conversation with the contractor's account manager or operations lead. The goal isn't to negotiate - it's to preview what's coming and share your process. Tell them you've completed your own benchmarking and will be reviewing their submission against market data. Ask if there are specific cost drivers behind this year's request that differ from prior years - equipment replacements, insurance increases, changes in trade classifications. This conversation accomplishes two things: it signals that you're prepared, and it gives the contractor an opportunity to submit a more grounded package rather than an opening position they expect you to discount. Contractors who know the operator has benchmarked tend to submit more conservatively than those who expect a negotiation from zero.
Submission review and response preparation
When the contractor's rate package arrives, compare it line by line to your benchmark table. Document the gap on each classification: what they're asking, what your benchmarks support, and the dollar difference on your projected annual volume. Calculate the total annual cost impact at the submitted rate vs. your benchmark rate. That number - the gap in dollars, not percentages - is what the conversation is about. "We're 3% apart on journeyman welders" is abstract. "That 3% difference is $68,000 per year at our current usage" is concrete.
Renewal meeting and outcome documentation
Run the renewal meeting with your benchmark table on the table - not just in your head. Walk through each classification, share the market reference, and explain your position on each delta. Get to a signed rate schedule before you leave the meeting, or set a specific date for the signed document - don't leave with a verbal agreement that needs to be confirmed in writing later. Immediately after the meeting, document the outcome: what was accepted, what was pushed back, what was refused, and the total cost impact. That file becomes your opening position for the next renewal.
Benchmarking: the three data sources that actually matter
The most common mistake in the rate review is using industry-level data instead of Alberta-specific data. "The CPI went up 2.6% this year" is not a useful benchmark for a journeyman pipefitter wage in Fort Saskatchewan. Here's what actually strengthens your position.
BuildForce Canada - Alberta regional labour market outlooks. BuildForce publishes annual Construction and Maintenance Looking Forward reports with regional breakdowns. The Alberta data covers major trade classifications and projects labour demand and supply over the coming decade. This is the closest thing to a neutral third-party read on how tight trades labour is in the province. Pair it with published wage data (union collective agreements, trade association wage surveys). If a contractor is asking for 9% on journeyman rates and the market data supports something closer to 5.5% for the relevant trade and region, you have a reference point for the gap. Use it.
Your own invoice history. Pull your invoices for the contract year. Calculate the average effective rate per classification - total dollars billed divided by total hours billed in that classification. Compare that to the rate schedule for the same classification. Any classification where the effective invoiced rate is above the rate schedule rate is already running over - the contractor has been billing above the contract rate through some combination of classification creep, overtime, or billing errors. If you accept a 9% increase on a classification that was already running 6% above the rate card, your real increase is 15%. This analysis is essential and almost nobody does it before a renewal meeting.
Your own rate history. Pull the last three years of rate schedules. What rate increases did you accept in each year? For which classifications? This isn't a benchmark for the market - it's a benchmark for this relationship. If you've been accepting 7-8% annually for three years and the current rates are 23% above what you started with, you need to know that before you agree to another 8%.
If your contractor submits a rate request and you're opening the conversation without benchmark data, you're negotiating against their spreadsheet with no spreadsheet of your own. That's a negotiation, not a review.
What to accept, push back on, and refuse
Not every rate increase request is the same. Here's a practical framework for sorting what you're looking at.
Accept: Labour rate increases tied to verifiable trade wage movement
If BuildForce or trade association data supports the requested increase for the relevant classification in the relevant Alberta region, accept it. The contractor has real labour cost pressure. Accepting a well-supported increase preserves the relationship and your credibility for the pushbacks that follow. Don't fight everything - it signals that you're negotiating reflexively rather than from a position. Pick your battles on the gaps that aren't supported.
Push back on: Overhead and equipment increases without documentation
Fuel, insurance, and equipment replacement costs are legitimate cost drivers - and they're also the easiest categories to inflate without evidence. Ask for documentation: fuel cost data, insurance renewal invoices, equipment replacement schedules. If the contractor can produce it, the increase is reasonable. If they can't, the increase is an assertion. "Our costs have gone up" isn't a rate submission. Ask what specifically went up, by how much, and for proof. You won't always get it, but asking changes the conversation.
Refuse: Increases on classifications already billing above the rate card
If your invoice analysis shows that a classification has been billing at an effective rate above the current rate schedule, the renewal increase on that classification starts from zero - not from the rate card. The contractor has already received the increase through effective billing. Accepting a further increase compounds the gap. When you present this finding, be specific: "Your journeyman pipefitter rate card shows $52/hour, but our invoice analysis shows an effective rate of $55.80/hour over the past 12 months. We're not accepting an increase on a classification that's already running above the agreed rate."
Negotiate: Multi-year rate lock in exchange for volume commitment
If the contractor is a strategic relationship and you want rate certainty for two or three years, use the renewal to negotiate a rate lock. Offer a volume commitment - a minimum annual purchase commitment or preferred supplier designation - in exchange for a capped annual escalation rate over the term. A contractor who can count on $2M annually for three years will accept a 4% annual cap more readily than one who sees you as a spot buyer. The rate lock benefits both parties. Propose it from a position of market knowledge, not uncertainty.
Documenting the outcome: the file no one builds
The rate review outcome file is the single most underutilized document in services contract management. Most operators shake hands, issue a PO with the new rates, and move on. The context behind why those rates were accepted - what was pushed back, what documentation was requested, what was refused - disappears. The next person who manages this contract starts from zero.
The outcome file needs five things: the final rate schedule, the rate changes accepted (classification by classification), the market data used to evaluate each change, the items pushed back or refused and the reason, and the projected annual cost impact at the new rates vs. the old rates. That document takes 30 minutes to write immediately after the meeting. It saves hours in the next renewal and years in contract disputes.
One more thing on documentation. If your contract has an annual renewal clause but no signed rate schedule amendment, the renewal may be operating on a verbal understanding of the new rates. Make sure the outcome of every rate review is confirmed in writing - a signed rate schedule amendment, a countersigned PO addendum, or at minimum a written confirmation email that the contractor has acknowledged. "We agreed on the call that rates would go to X" is not a rate schedule.
What this actually costs when you skip it
On a $3M annual services contract, the difference between accepting a contractor's submitted 9% rate increase and completing a benchmarked review that supports a 5.5% increase is $105,000 per year. Over a three-year renewal term, that's $315,000 - before compounding. On a $10M services relationship, the same delta is $1.05M over three years.
The review takes roughly 10–12 hours of preparation and one structured meeting. The return on that investment, even in a single contract cycle, is not marginal. What makes most operators skip it isn't the effort - it's that the process doesn't exist. The renewal date arrives, the contractor submits, and the operator reacts. Building a 60-day process that starts before the submission changes the outcome more reliably than any individual negotiation tactic.
Q4 renewals are coming up now.
If you're heading into a rate review in the next 60 days and want help building the benchmark table, structuring the conversation, or reviewing your current rate schedule against market data - reach out. This is exactly what I do. I'm also happy to take a look at your current MSA and flag whether you have an escalation clause, a silent contract, or something in between before you walk into that meeting.