Maintenance contract margin

Maintenance contract margin is the profit left on a service or maintenance agreement after the labor, parts, and subcontractor cost of serving it — measured over the agreement's term, because the price is set up front while the cost of serving accumulates all year.

Glossary3 inputsRelated: 10 links
01

The inputs.

  • Agreement revenueContract revenue over its term, before the cost to service it.
  • Cost to serveLabor, parts, and subcontractor cost accumulated against the agreement as work happens.
  • Read withAgreement renewal rate — a contract that loses money is a repricing or lapse conversation, not a renewal.
02

What to know.

How to calculate maintenance contract margin

Maintenance contract margin equals agreement revenue over its term minus the cost to serve — the labor, parts, and subcontractor cost accumulated against the agreement as visits happen — divided by revenue. Because revenue is fixed at signing and cost accrues with every visit, margin is a running number that only gets more accurate as the year progresses. It degrades quietly if visits run long or parts go uncaptured, which is why it has to be tracked during the term, not reconstructed at renewal.

Why maintenance contract margin matters for commercial contractors

Agreement books trade margin predictability for stability — you've already agreed the price, so cost control is the only lever left. A contract that's thin at signing usually ends underwater, and renewing a loss-making agreement is a liability dressed up as a renewal win. Margin per agreement is what makes the renewal conversation honest: the number that decides whether an expiring contract is worth repricing, restructuring, or letting lapse.

What erodes maintenance contract margin

The usual culprits are labor under-estimated at quote time, parts cost that never gets captured against the agreement, unbilled extras absorbed as "included," and inefficient visits on fixed-price work. Each one is a data gap more than a pricing failure — if the cost to serve isn't tracked per agreement as the work happens, the erosion is invisible until renewal, when it's too late to do anything about it.

How Thermal tracks maintenance contract margin automatically

Job costing in Thermal attaches labor, parts, and subcontractor cost to the work order and to the agreement that generated it, so margin rolls up over the full visit cadence as the term runs — not as a post-mortem at renewal. The agreement margin rollup report surfaces the same cost data the pricing decision needs, so repricing and renewal conversations happen against current numbers.

03

Questions attached to this term.

What's a good maintenance contract margin?

There's no universal figure — it varies by market and service mix. The point is knowing your own number and the trend, since most agreements are priced with assumptions about labor that only get tested as visits run.

How is maintenance contract margin different from gross margin per job?

Gross margin per job is one job's revenue against its cost. Maintenance contract margin rolls all the visits under an agreement against the fixed contract price over its whole term — it's the agreement-level view.

Should maintenance contracts be priced on hours or margin?

Margin. Pricing on hours quietly converts the agreement into time-and-materials — if a visit runs over, it's the contractor who absorbs it, and the margin erodes without a pricing lever.

How do unbilled extras affect the number?

If included work isn't captured as cost, margin looks better than it is — which misprices the renewal. Tracking cost to serve per agreement during the term is what keeps the margin number real.

05

These numbers, on your own book.

If you want to see them calculated from real work orders and agreements rather than a spreadsheet, that's a demo.