Treadstone Associates
Article · 8 min read

Pricing service work versus projects

Charging a project rate for a service call, or a service rate for a fixed-scope project, is one of the more common ways margin disappears before a job even starts.

Treadstone Associates · Updated 2026

Key takeaways

  • • Standard construction contracts already name three distinct pricing structures — stipulated price, cost-plus, and unit price — and each puts the risk of a cost overrun in a different place.
  • • Fixed-scope project work generally fits a stipulated-price model well; open-ended or unpredictable work fits cost-plus or time-and-materials better.
  • • Unit pricing sits between the two — a fixed rate per unit of work, with the total moving with the actual quantity performed.
  • • Service work is particularly exposed to margin fade specifically because there's no single contract total to check billed hours against — the discipline has to come from time tracking, not from a project budget.
  • • The wrong pricing model for the type of work is a structural problem, not a bad-estimate problem — it can produce a loss even when every individual task was priced fairly.

The three models a construction contract already assumes

Standard industry contract forms already name and structure three distinct pricing approaches, which is a useful starting point for thinking about any pricing decision, service work included. A stipulated-price contract sets “a single, pre-determined fixed price, or lump sum, for the project.” — the client knows the total up front, and the contractor carries the risk if costs run over.

A cost-plus contract flips that risk: work is performed “on an actual-cost basis, plus a percentage or fixed fee” — the client carries the cost-overrun risk, and the contractor is paid regardless of how the job actually runs. A unit-price contract sits in between: “a pre-determined, fixed amount for each specified unit of work performed”, with the total determined by the actual, measured quantity — fixed per-unit risk, with the total moving as the actual quantity does.

Matching the model to the type of work

A fixed-scope project — a defined build with a known set of drawings and specifications — is the natural fit for stipulated price: the scope is knowable in advance, so the risk of pricing it wrong is a genuine estimating risk the contractor can manage with good takeoffs and a healthy contingency.

Service work is the opposite case. A service call almost never has a knowable scope before the technician arrives — what's actually wrong, and how long it takes to fix, is discovered on site. Time-and-materials or a cost-plus structure fits that uncertainty far better than a fixed price, because it doesn't force a guess about scope that hasn't been diagnosed yet.

Why service work leaks margin differently than project work

A fixed-price project has a single number to check reality against: the contract total, tracked on a WIP schedule against actual costs to date. Service work doesn't have that same anchor — there's no single project budget to compare a month of scattered service calls against, so the leak has to be caught hour by hour instead of job by job.

That's exactly the pattern behind margin fade on service-heavy operations: travel time, diagnostic time, and minor callbacks are the easiest hours to under-record, precisely because none of them individually looks large enough to chase down.

Where a hybrid actually makes sense

Plenty of real work doesn't sort cleanly into one bucket. A renovation with a firm scope for most of the job but an allowance for an unknown — what's behind an existing wall, say — is routinely priced as a stipulated price with named allowances and a change-order process for anything outside them, which is really a fixed-price structure with a small cost-plus component carved out for the genuinely unknowable part.

The mistake isn't picking a hybrid; it's picking one without being explicit about which parts of the job are fixed and which are open-ended. A quote that blends the two without naming the boundary is where a client's expectations and the contractor's actual cost exposure quietly stop matching.

What the markup actually needs to cover

Whichever model is used, the markup on top of direct cost has to cover more than it usually gets credit for: overhead that isn't tied to any single job — the shop, the office, insurance — plus the target profit margin. A price that only covers direct labour and materials, with a markup calibrated purely on gut feel, is quietly recovering less overhead than the business actually carries, on every job priced that way.

That's the same allocation question job margin versus company margin raises from the margin-fade side: a markup that was accurate when it was set can stop being accurate as overhead costs shift, and it's worth revisiting on a schedule, not just when a job feels thin.

Getting the model wrong is a structural loss, not a bad estimate

A contractor who prices a genuinely open-ended diagnostic job at a fixed price is guaranteeing a loss on any call that turns out more complicated than the average — not because the hourly rate was wrong, but because the pricing model itself doesn't match the actual risk profile of the work. The reverse mistake — pricing a known, fixed-scope project as open-ended time-and-materials — tends to cost a contractor the bid instead, because a client comparing quotes has no way to know the total in advance.

That's the practical reason this decision is worth making deliberately, job type by job type, rather than defaulting to whichever model the business happens to use most often. The two failure modes look completely different — one erodes margin quietly over many small jobs, the other loses jobs outright at the bidding stage — but they trace back to the same root cause.

A worked example

A contractor prices a bathroom renovation two ways for comparison. As a stipulated price based on a firm scope and drawings: $18,500.00 total, direct costs estimated at $14,200.00, built-in margin $4,300.00 (about 23%).

The same job, if it had instead been quoted as time-and-materials at a standard hourly rate plus a markup on materials, would have priced out close to identical on paper — but with the risk sitting in a different place. If the job runs two days over due to an unexpected plumbing issue, the stipulated price absorbs that entirely against the contractor's margin, while the time-and-materials version would have billed the client for the extra time. Neither model is wrong; picking the fixed price for a job with a genuinely firm scope is what makes that risk allocation the contractor's deliberate choice rather than an accident.

Common questions

Is unit pricing common outside of civil or earthworks contracts?

It's most associated with civil work — paving by the square metre, excavation by the cubic yard — but the same logic applies anywhere a job has a repeatable, measurable unit of work with genuine quantity uncertainty, which can include some trade work too.

Should a warranty callback be priced the same way as a new service call?

Generally no — a legitimate warranty callback on the contractor's own prior work is a cost of that original job, not new billable work, and pricing it as a fresh service call risks double-charging the client for work already paid for once.

How often should hourly service rates actually be reviewed?

At least annually, and sooner if a major input — fuel, a key material, insurance — moves meaningfully. A rate that was calibrated to cover overhead two years ago is a rate that's been quietly under-recovering ever since, in the same way an unreviewed markup on project work does.

Does the choice of pricing model affect GST/HST treatment?

The pricing structure itself doesn't change the underlying tax rules — the place-of-supply rule for real property still governs which province's rules apply, regardless of whether the job is billed as a lump sum, time-and-materials, or by the unit.

See where AI pays off first in your business.

A 30-minute call is enough to tell you whether AI pays for itself here.