Case of the Week 02 · AI, without fear

The Contractors Who Became Permanent

A practical case for Canadian and Quebec small businesses: check contractor invoices against what you actually signed and spot drift in 15 minutes, with one prompt and two files you already have.

Juan Manuel Paez Ayala4 min read Leer en español

It started as a stopgap. “Three months, just until we hire someone,” said the general manager of an industrial maintenance company on Montreal’s South Shore.

That was two years ago.

The outside technician is still there. He’s good, nobody complains. But his rate has gone up twice without anyone signing anything new, the monthly hours look nothing like the original agreement, and the contract itself, if anyone went looking, expired fourteen months ago. Nobody did anything wrong on purpose. Nobody was looking, that’s all.

If this sounds familiar, it isn’t a dishonesty problem. It’s an attention problem. Contractor invoices come in, someone approves them because they always get approved, and the contract lives in a folder nobody opens. Opening it feels scary, because it means an awkward conversation with someone you like.

In my years in large mining and energy operations, I saw the same pattern at a much bigger scale: “temporary” contracts that quietly became part of the furniture, and costs that grew without anyone deciding they should. The lesson works just as well for a team of 15: every contract needs one named owner, and every invoice deserves one simple question. Is this what we agreed to?

The real cost (no drama)

Here’s an example to do the math with, not a market statistic. Say six contractors bill you a combined CAD $22,000 a month. If rate creep, hours over the cap and out-of-scope work add up to 10% drift, that’s CAD $2,200 a month, or CAD $26,400 a year. Half a salary, or your whole marketing budget, leaving without anyone choosing to spend it. Swap in your own numbers; the habit is what matters.

What AI does here (and what it doesn’t)

AI won’t negotiate with your contractors or decide who stays. What it does well, and fast:

  1. Match every invoice against the terms you signed (rate, hour cap, end date, scope).
  2. Flag drift with clear rules: rate above the agreed rate, hours over the cap, invoices after the contract ended.
  3. Write you a short summary to act on: what to check, who to talk to, and which contracts to put back on paper.

You decide whether a raise was fair, whether to bring someone on staff, or whether it’s time to renegotiate.

Your first step in 15 minutes

You need two things you probably already have:

  • An export of the last 12 months of contractor invoices (from your accounting software or a spreadsheet): vendor, date, hours, rate, amount, description.
  • A small table of what you signed, one row per contractor: vendor, agreed rate, monthly hour cap, contract end date, scope in one sentence.

Open ChatGPT, Claude, or whatever assistant you already use, and paste this (adjust thresholds and currency):

You are a cost analyst for a small business. I'm giving you two tables:
A) invoices: vendor, date (YYYY-MM-DD), hours, rate, amount, description.
B) contracts: vendor, agreed_rate, monthly_hour_cap, end_date, scope.
Today is 2026-10-20. Do not invent rows.
1) Match each invoice to its contract by vendor. If there's no contract, mark it "no_contract".
2) Flag drift: rate > agreed_rate; monthly hours > monthly_hour_cap; date > end_date; description that doesn't fit the scope (as "review", never as a fact).
3) For each vendor, total the last 12 months and the amount in drift.
4) Return a table: vendor, total_12m, drift_amount, drift_type, suggested_action (renew contract / review rate / talk / ok).
5) End with a 5-line paragraph for the owner: how much money is in drift and the 3 conversations to have this week.

If you’d rather not upload real names, replace them with “Vendor 1, 2, 3.” The exercise works the same way.

What AI doesn’t do

It can misread a description or assume two vendors are the same one. Check every flag before you bring it into a conversation. And don’t ask it to interpret legal clauses; that’s what your contract, and if needed your lawyer, are for. This is a way of looking, not legal or accounting advice.

How you should feel when you’re done

Not “I have to let someone go.” More like: I know which contracts to renew on paper and who to talk to, with numbers in hand and without accusing anyone. The awkward conversation becomes an organized one.

The matching model (coming soon)

“Contractor Control”: an Excel/Sheets template with a contract register, expiry alerts, automatic invoice checks against rates and caps, and a monthly summary ready for leadership. Until then, the exercise above is free and yours.

For the community

If you try it, tell me just one thing: how far did your thermometer drop, from 1 to 10? And if you found an expired contract, you’re not alone. Almost everyone finds one.

Juan Manuel Paez Ayala · Montreal
About Juan Manuel →

Newsletter

One case a week, straight to your inbox

No spam. One email on Tuesdays with a story, a method and a first step. Unsubscribe anytime.

Form in preparation: no data is sent yet.