A maintenance company lives and dies by its contracts. Whether you maintain elevator shafts, fire alarm panels, commercial refrigeration units, or automatic gates, the contract defines what you're obligated to do, when you must do it, what you're paid for doing it, and, critically, what you're not responsible for when something goes wrong.
Most service companies start by quoting contracts in a spreadsheet, emailing PDF terms to clients, and tracking renewal dates in a shared calendar. This works at three or four contracts. At thirty, it starts leaking money. At one hundred, it becomes a liability.
This article covers how to structure service contracts across the three main types, what each contract document must contain, how contract data should connect to your dispatch and invoicing systems, and how to know whether a contract is actually making you money before the renewal conversation.
The three contract types: what you're agreeing to
Preventive maintenance contracts (PPM-only)
A preventive maintenance contract covers scheduled visits at defined intervals, quarterly, semi-annual, or annual, and nothing else. If something breaks between visits, the client calls you on an ad-hoc basis and pays a separate callout rate.
PPM-only contracts are straightforward to price because the scope is fixed. You know how many visits per year, how many assets per site, how long each visit takes, and what parts are typically consumed. The risk is yours if an asset requires more time than estimated; the client's risk is the callout cost for reactive work.
Industries where PPM-only contracts dominate: fire alarm systems (where the maintenance obligation under BS 5839-1 or EN 54 is strictly defined and reactive faults are billed separately), automatic gate and access control maintenance (where EN 12453 compliance visits are contractually defined but breakdowns vary unpredictably), and HVAC systems in environments where the building owner accepts repair cost risk.
The minimum PPM contract must define: which assets are covered, the visit frequency per asset type, the scope of work at each visit (checklist reference), the SLA for completing each PPM visit relative to its scheduled date (typically ±7 or ±14 days), and whether travel costs are included or billed separately.
Reactive maintenance contracts (callout-only)
A reactive contract means the client only calls when something breaks. You respond, diagnose, repair, invoice. There is no scheduled maintenance obligation on your part.
These contracts are less common in regulated industries because regulatory obligations (EN 81-28 for elevator two-way communication devices, LOLER thorough examinations, F-Gas leak checks) require scheduled visits regardless of whether the asset has broken down. An elevator owner cannot meet their LOLER obligations with a reactive-only contract; the six-monthly thorough examination must happen on schedule.
Where reactive-only contracts remain valid: assets with low regulatory maintenance requirements, clients who self-perform basic maintenance and call you for specialist repairs, and supplemental cover for assets already maintained by an in-house team.
The reactive contract must define: response time SLAs by priority tier (emergency response within 4 hours, urgent within 8 hours, standard within 24 or 48 hours), labour and travel billing rates, parts markup policy, and the out-of-hours rate if applicable. Without documented response time SLAs, you have no framework to manage client expectations when something goes wrong at 11pm on a Friday.
Full-service (comprehensive) contracts
A full-service contract combines scheduled preventive maintenance with reactive response for breakdowns, and typically includes parts and labour for covered repairs within the contract price. The client pays a fixed monthly or annual fee and receives certainty, your company manages all maintenance and repair work, and the client is not invoiced again until a clearly defined exclusion is triggered.
Full-service contracts carry the highest revenue per contract but also the highest financial risk. If an elevator traction machine requires replacement in year two of a five-year comprehensive contract, and that failure was not caused by a specific exclusion, the cost of repair comes out of contract margin rather than being billed to the client.
Pricing a full-service contract correctly requires historical failure rate data per asset type and age, accurate parts cost tracking, and a realistic view of labour consumption. Companies that underprice comprehensive contracts typically do so because they are working from gut feel on labour time and from optimistic assumptions on parts consumption. The ones that underprice a full-service elevator contract on a 1985 traction installation tend to learn this lesson once.
What every contract document must contain
Regardless of contract type, the written agreement needs to be specific enough that a technician arriving on site for the first time, a client's facilities manager reviewing whether you fulfilled your obligations, and your own service manager reconciling invoices can all independently verify what was agreed.
Covered assets. Each asset covered by the contract must be identified specifically, not "all elevators at Site X" but elevator shaft reference numbers, MR or MRL designation, capacity, drive type, and current certificate status. For fire alarm systems, the covered assets should include panel serial number, zone count, and device types. For HVAC, refrigerant type and charge weight are critical, these determine F-Gas inspection frequency and are part of the legal equipment log.
A contract that covers "all fire panels at the building" is ambiguous when a client adds two new panels mid-contract and expects them covered without a variation. Specific asset schedules prevent this.
Visit schedules and triggers. The contract must define when visits happen: calendar-based (first Tuesday of each quarter), interval-based (every six months from last service date), or trigger-based (within 24 hours of an alarm activation). Where regulatory intervals apply, six-monthly LOLER inspections, annual F-Gas leak checks for units above 3kg CO2-equivalent, quarterly contractor visits for higher-risk fire systems under BS 5839-1, these should reference the specific regulatory obligation so there is no dispute about whether the visit frequency was commercially agreed or legally required.
Response time SLAs. Every contract should define at minimum two response time commitments: time from first contact to technician attending (the response SLA), and time from attending to system restored to normal operation (the resolution SLA). In practice, most contracts define the response SLA explicitly but leave the resolution time vague because resolution depends on parts availability and fault complexity. This is acceptable provided the contract acknowledges this, with a committed update interval if resolution is delayed.
For elevator trapped passenger situations, the response SLA is typically 60–90 minutes from first contact. This should be in the contract, and your dispatch system should be enforcing it from the moment the call is logged.
Exclusions. What is explicitly not covered in the contract price matters as much as what is included. Common exclusions: damage caused by third-party interference, vandalism, or flood; parts that have exceeded manufacturer design life on an asset outside a defined age; work arising from design defects in the original installation; asbestos surveys or removal; and specialist third-party testing (authorised examinations, insurance inspections). If exclusions are vague, disputes arise when costs exceed what the client expected.
Billing terms. When does the contract billing cycle start, how often are invoices issued, what is the payment term, and what happens if payment is late? For full-service contracts with monthly fixed fees, this is straightforward. For PPM contracts that bill per visit, the trigger for invoicing, visit completion, or visit completion plus client sign-off, needs to be defined. A contract that does not specify a billing trigger creates disputes when the client disputes a visit record six months after it occurred.
Renewal dates and notice periods. A contract without a defined end date and a notice period is a liability. If you do not know when your contracts renew or what notice period applies, you cannot plan capacity, manage rate increases, or have timely conversations with clients about scope changes. The minimum is a fixed end date and a defined notice period, typically 30–90 days, within which either party may serve notice of non-renewal.
How contract data should connect to operations
A service contract stored as a PDF in a shared drive is not a service contract your operations team can act on. The contract data needs to live in your FSM system, connected to the asset records and driving operational activity automatically.
Asset linkage. Every asset in the contract schedule should exist as a record in your asset register, with the contract linked to it. When a technician is dispatched to a site, the system should surface whether the visit is within contract scope or ad-hoc, which assets at the site are covered, and which are not. A technician who charges a full callout rate for a contract-covered asset because the dispatch system did not flag the coverage is generating a billing error that will cost you the relationship when the client queries the invoice.
PPM schedule generation. Contract visit frequencies should automatically generate work orders in your scheduling system. If a fire alarm system requires two contractor visits per year, those visit slots should appear in the scheduling queue 6–8 weeks before their due date, not when someone remembers to create them. The work order template attached to the job should pre-populate the inspection checklist relevant to the asset type and standard.
SLA enforcement. When a reactive call arrives on a contract asset, the system needs to apply the correct SLA clock, not the default reactive response time, but the response time defined in that specific contract. A full-service contract may define a 2-hour emergency response; a PPM-only contract may have no reactive SLA at all and the client is paying the standard callout rate. The dispatch system cannot enforce the right SLA if it does not know which contract the calling asset belongs to.
Invoice generation. Completed work orders on contract assets should feed into invoicing automatically, with the billing model applied correctly. For full-service contracts, the monthly fee is a fixed line item and completed PPM visits do not generate additional invoices. For per-visit PPM contracts, each completed visit triggers an invoice. For reactive callouts on a PPM-only contract, the invoice line items should reflect the callout rate, labour hours, parts used, and any applicable surcharges, pulled from the work order record, not re-entered manually.
Manual re-entry between work orders and invoices is the single most common source of billing errors in service companies. The error rate is not negligible: in companies with 50+ technicians completing 200+ work orders per week, manual billing re-entry produces a measurable financial leak, either overbilling that generates client disputes or underbilling that erodes margin.
Contract profitability: knowing which contracts make money
Most maintenance companies know their revenue per contract. Few know their margin per contract with any precision. The gap between the two is where contracts that should be renegotiated or ended continue to consume engineer time and parts budget without returning proportionate profit.
Labour cost per contract. The contract price was built on an estimated number of engineer hours. Track the actual hours consumed against each contract, not just across the company. A single site consuming 40% more engineer hours than quoted over 12 months is a problem you should discover in month three, not at renewal.
Parts cost per contract. For full-service contracts, parts used are a direct cost. Tracking which contracts are consuming disproportionate parts relative to the monthly fee tells you which assets are approaching end-of-life and whether the comprehensive pricing should be revised at renewal. A refrigeration unit that has consumed three compressors in two years under a full-service contract is not a random bad-luck run, it is a pricing signal.
Reactive callout rate on PPM contracts. If a client with a PPM-only contract is generating three or four reactive callouts per month, this should be visible in your reporting. It may mean the PPM scope is insufficient for the age of the assets, it may mean the client is misusing the system, or it may mean a specific asset is failing beyond normal tolerance. Each is a different conversation to have before renewal.
SLA compliance cost. Contracts with tight SLA commitments (2-hour emergency response, 4-hour urgent) require you to maintain on-call capacity. That capacity has a cost. A contract with a 2-hour emergency response SLA that generates frequent out-of-hours callouts is more expensive to service than its headline revenue implies. If your SLA compliance reporting does not connect to on-call costs, you are pricing emergency response work below its true cost.
The starting point for profitability tracking is attaching actual engineer time, actual parts consumption, and actual callout frequency to each contract record in your FSM system. This is not a reporting exercise, it is an operational requirement that has a direct bearing on renewal pricing conversations.
Renewal management: contracts that don't lapse silently
A contract that reaches its end date without a renewal decision is operationally dangerous. You may continue to perform work under the assumption that the contract is renewing; the client may assume coverage has lapsed. The gap creates billing ambiguity, liability questions, and an unpleasant conversation that is harder to have six months after the fact.
Renewal alerts at 90 days. The first renewal prompt should trigger 90 days before contract end. This gives enough time to prepare a renewal proposal that reflects updated pricing, scope changes, and any asset additions or removals. At 90 days, most clients have not yet started evaluating alternatives, starting the conversation at 30 days leaves you negotiating under pressure.
Scope review at renewal. Assets change. A building that had four elevators under contract when you signed three years ago may now have five, or may have decommissioned one. A refrigeration installation that was under the F-Gas annual check threshold when the contract was written may have been expanded and now requires bi-annual checks. Renewal is the natural point to reconcile the asset schedule to current reality.
Rate adjustments. A contract priced in 2022 and renewing in 2025 was written against different labour rates and parts costs. Building a transparent index-linked escalation clause into the original contract is cleaner than renegotiating from a position of explaining why you need a 12% rate increase. BCIS (Building Cost Information Service) or CPI-linked escalation clauses are standard in long-term maintenance agreements.
Lapsed contract protocol. If a contract reaches its end date without renewal, a defined process should kick in: the client receives written notification that the contract has expired, work orders on the relevant assets are flagged as ad-hoc billing, and the account manager is prompted to follow up within five business days. A client who has not renewed and continues to receive service under contract rates, without knowing they are on post-contract cover, is a dispute waiting to happen.
Compliance obligations that contracts must account for
Service contracts in regulated industries carry obligations that neither party can waive by agreement. A comprehensive HVAC maintenance contract that does not include the mandatory F-Gas leak check is not fulfilling the client's regulatory obligations, regardless of what the contract says about inclusions and exclusions.
In practice, this means your contract templates need to be reviewed against the applicable regulatory framework for each asset type. For elevator maintenance, the LOLER thorough examination is a statutory requirement, the contract scope must accommodate it, and the examination must be carried out by a competent examiner at the required interval regardless of whether the machine has been fault-free. For fire alarm systems, the minimum visit frequencies under BS 5839-1 or EN 54 are not negotiable as a commercial matter.
Where a client requests a contract scope that would leave a regulatory obligation unmet, the right response is to document the gap in writing. A client who asks you to visit annually instead of the BS 5839-1 recommended six-monthly interval is asking you to leave them non-compliant. If they proceed against your recommendation, that recommendation, and their decision, should be in writing.
Frequently asked questions
What is the difference between a PPM contract and a full-service contract?
A PPM (planned preventive maintenance) contract covers scheduled visits only. If an asset breaks down between visits, the client pays a separate reactive callout rate. A full-service or comprehensive contract combines scheduled maintenance with reactive response and typically includes parts and labour for covered faults within the fixed contract price. The trade-off is predictability: the client gets a fixed cost; you carry the risk of unexpected repair frequency.
How should I price a full-service contract for aging assets?
Pricing comprehensive contracts for assets more than 15–20 years old requires detailed failure history, not industry averages. For elevators, check the age of the door operator, the governor rope, and the controller type, these are the components most likely to drive significant parts cost in older installations. Build in an exclusion for major drive system components (traction machine, hydraulic pump, controller overhaul) unless you are pricing those risks explicitly. A blanket comprehensive price on a 1990 installation without exclusions is a pricing error waiting to materialise.
When should a service contract reference specific regulatory standards?
Always, for regulated assets. The contract should state which standard governs the maintenance scope (EN 81-28, BS 5839-1, F-Gas Regulation 517/2014, etc.), which specific obligations fall within the contract price, and which obligations are the client's responsibility. This protects both parties: the client knows what they are buying, and you have a documented basis for the visit frequencies and documentation requirements you are fulfilling.
How do I track whether contract SLAs are being met?
SLA compliance requires three data points per reactive work order: the time the fault was first reported (not when the work order was created), the time the technician arrived on site, and the time the system was restored to normal operation. If your FSM system does not capture all three timestamps, you cannot calculate SLA compliance with any accuracy. Most companies track response time; fewer track restoration time. Both matter when a client requests an SLA performance report at contract review.
What notice period should a maintenance contract specify?
For annual contracts, 30–60 days is standard. For multi-year contracts (two to five years), 60–90 days is more appropriate, both parties need time to find alternative arrangements if the contract is not renewing. For contracts covering critical assets where a transition period is operationally necessary (transferring asset records, training a new contractor), 90 days is the safer minimum. Always specify whether notice must be written, and whether email constitutes written notice under the contract terms.
Related reading: SLA Management for Maintenance Companies, managing SLA compliance across multiple contracts and priority tiers. FSM Software Buyer's Guide, evaluating platforms that support contract management for critical infrastructure.
RemoteOps connects contract data directly to dispatch, invoicing, and compliance tracking for: Elevators & Escalators, Fire Safety, Critical HVAC, Access Control & Gates, Emergency Power, Building Management Systems.