The hidden cost of out-of-scope work, and how MSPs plug the leak
The hidden cost of out-of-scope work, and how MSPs plug the leak
A technician spends forty minutes on a Tuesday afternoon fixing a printer that was never in the contract. Nobody logs it as billable. The client thanks the tech, the ticket closes, and the time disappears. Repeat that across six technicians and forty clients, week after week, and you have a number that would make any MSP owner wince. The problem is that almost nobody adds it up.
That is the nature of out-of-scope work. It does not arrive as a single painful invoice you forgot to send. It leaks out in small increments, each one too small to argue about, until the aggregate is eating a real slice of your margin. The leak is hard to see precisely because every individual instance looks trivial.
This post is about finding that leak and closing it with process, not willpower. Telling your team to "stop doing free work" does not survive contact with a friendly client and a busy Tuesday. What survives is a tight scope document, a change-order habit, and billing that flows from a signed agreement instead of from someone's memory.
Where the leak actually comes from
There is rarely a single cause. Four distinct failures feed the leak, and they tend to compound on each other.
Vague scope language. When a statement of work says the MSP will provide "ongoing support and maintenance," it has said almost nothing enforceable. Does that cover the client's personal laptop? The warehouse Wi-Fi the office manager set up themselves? The new SaaS tool the marketing team adopted last month? When the boundary is undefined, every request lands inside it by default, because the client genuinely believes it is covered, and your tech has no document to point to. Ambiguity always resolves in the client's favor at the help desk.
No change-order discipline. Scope can change. Clients grow, add sites, adopt new systems. That is normal and healthy. The failure is doing the new work first and figuring out the money later, or never. Without a routine that says "this is new, here is what it costs, sign here," every expansion of the relationship becomes a gift. The work scales up. The contract value does not.
Scope drift. This is the slow one. A client onboards with twenty users and a clean asset list. Three years later they have forty users, two new locations, a line-of-business app that needs constant babysitting, and a CEO who texts your lead engineer directly. No single addition triggered a contract review, so the agreement still reflects the company from three years ago. You are now running a forty-user shop on a twenty-user price.
Quick favors. The most human source, and the hardest to police. A tech is already on site, the client asks for "one quick thing," and saying no feels petty. Any one of them is nothing. Stacked up over months they become corrosive, because they train the client to treat your team as an all-you-can-eat resource and they train your team to give time away without recording it. Favors are fine when they are a deliberate goodwill choice. They are a problem when they are the unmanaged default.
Why you cannot fix what you cannot see
Most MSPs underestimate their leakage badly, and the reason is structural. The time spent on out-of-scope work usually never enters the system as out-of-scope. It gets logged against a generic "support" ticket, or against the client's normal contract, or it does not get logged at all because it took eight minutes. The data that would prove the problem is the same data the problem prevents you from collecting.
So before you redesign your contracts, get a rough size on the leak. Pull a representative sample of recent tickets and have someone honestly tag each one: in scope, or out. Look at after-hours requests, on-site "while I'm here" additions, and anything involving hardware or software the contract does not name. You are not aiming for accounting precision. You are aiming to find out whether this is a rounding error or a five-figure annual problem, because that answer changes how hard you push on the fixes below.
If you want a faster gut-check before the manual audit, the scope creep calculator lets you plug in your own numbers (technician count, hourly cost, estimated unbilled hours) and see the annualized figure fall out. The point is not the precise output. The point is watching how fast a few "harmless" weekly hours compound when you multiply them across a year and a team. The instinct to wave it off as small usually does not survive seeing the total.
The operational fixes
Closing the leak is mostly about moving decisions earlier, from the help desk on a busy afternoon back to the contract, where you actually have leverage and time to think.
Start with a scope document that draws hard lines
A statement of work earns its keep by being specific about both sides of the boundary: what is included, and what is explicitly not. The exclusions list does more work than the inclusions list, because it is the thing your technician points to when a request arrives that everyone assumed was covered.
A scope that holds up names the covered users, sites, and assets as countable units rather than vague categories. It lists deliverables in concrete terms. And it carries an explicit out-of-scope clause that calls out the usual suspects: personal devices, hardware the client buys without consulting you, projects versus ongoing support, third-party application support, after-hours work. We go deep on the anatomy of a leak-proof scope document in how to write an MSP SOW that prevents scope creep, and the SOW builder gives you a structured starting point so you are not drafting exclusions from a blank page every time.
The test for any scope line is simple. If a technician and a client read it and could reasonably disagree about whether a given task is covered, it is not specific enough yet.
Make the change order the path of least resistance
A change-order process only works if using it is easier than skipping it. If raising a change order means a Word document, a manager's signature, and a three-day wait, your team will route around it and do the work for free. If it means picking a line item, hitting send, and getting a one-click client approval, they will use it.
Define a clear trigger so nobody has to make a judgment call under pressure: any request outside the named scope generates a change order before the work starts, full stop. Keep the document short, with the new work described in plain language, the price, and a signature field. Bill it from the signed version, not from the conversation that preceded it. The discipline you are building is "new work pauses for a yes," and the only way that becomes habit is if the yes is fast and frictionless.
Put an approval gate between "asked" and "done"
The gate is the single highest-leverage fix, because it attacks the favor problem at the exact moment it happens. The rule is that work outside the contract does not begin until someone with authority approves it: a team lead, a service manager, or the client via a signed change order, depending on size.
This protects your technicians as much as your margin. A tech who has to personally tell a likeable client "no, that costs extra" will usually cave, and they will resent the position you put them in. A tech who can say "I'll get that approved and turned around quickly" has been handed a script that is both kind and firm. The gate moves the awkward conversation off the individual and onto the process, which is exactly where it belongs.
Bill from the signed SOW, not from memory
The last leak is the gap between what was agreed and what gets invoiced. If billing is reconstructed each cycle from tickets, timesheets, and recollection, things fall through. The fix is to make the signed agreement the source of truth for billing. The recurring line items bill automatically from what the client signed. Approved change orders flow into the same place. Nothing bills off a number someone typed from memory.
When the signed document and the invoice are the same artifact, the question "did we charge for that?" stops being a monthly investigation. The charge already exists, generated straight from the line the client put their name to.
What good looks like
You will know the fixes have taken hold when out-of-scope requests start producing change orders instead of silent free work, when a new client site triggers a contract conversation in the same week it appears instead of surfacing during a renewal review years later, and when your technicians stop being the people who have to negotiate price on the spot.
None of this requires being rigid with clients. Plenty of MSPs do small favors on purpose, as a deliberate relationship investment, and that is a fine business choice. The difference is that it becomes a choice. You decide where the goodwill goes, instead of bleeding it out forty minutes at a time because no document ever drew the line.
The cheapest scope dispute is the one you settle in the contract, months before the work, when both sides are calm and nobody is standing next to a broken printer. Draw the line there, give your team a fast way to handle anything outside it, and bill from what was signed. Do that, and the printer your tech fixes next Tuesday turns into a signed forty-dollar change order instead of forty minutes that quietly vanish.
XClause is software for building, signing, and managing MSP agreements. It is not a law firm and does not provide legal advice. For anything jurisdiction-specific in your contracts, talk to a qualified attorney.