Service Agreement Profitability
The cross-trade company-level bottom decile is about -30% SA gross margin and the top decile about +70% (n=259). Individual agreements and markets differ. The 100-point cross-company spread makes agreement margin worth investigating, so test pricing, scope, customer mix and pull-through against your own market before attributing the gap to process.
100 pts
spread between company-level SA margin deciles (-30% to +70%), cross-trade n=259
8.7%
median annual pull-through ratio, n=386 (top quartile: 30%)
47%
retained expired-SA reference with no recorded follow-up; verify renewal and delivery (sample and period unverified)
The 100-point spread that nobody talks about
Across 259 eligible contractors with at least $10K annual SA revenue, company-level service-agreement gross margin ranges from -30% (bottom decile, losing 30 cents on every SA dollar) to +70% (top decile). The median sits at 37.9%. This is a cross-trade company distribution, not matched companies in the same market or the margin on every agreement.
That 100-point cross-company spread makes a line-by-line check in your own P&L useful, even when service agreements are not the largest revenue line. It does not measure what any one company can improve.
Four practical levers are worth testing: pricing discipline, scope control, customer mix and pull-through. Cost-to-serve visibility supports the first three. The benchmark does not measure how much of the spread each one explains.
The takeaway: A 30% gross margin still contributes before overhead. Check overhead and the individual agreement's cost-to-serve before treating it as a loss leader. The agreement fee is supposed to be the entry point, not the loss leader.
Lever 1: pricing discipline
A common risk is fees based on an old price plus a small bump rather than current fulfillment costs. Check labor hours, parts, vehicle and dispatch costs, and when the fee was last rebuilt.
A practical repricing review prices direct cost-to-serve to a gross-margin target, then checks allocated overhead separately to establish net contribution. Reprice annually when wages, fuel or parts costs move, and decline agreements that cannot cover their required costs and contribution.
Test the attrition risk before repricing. A 20% increase holds revenue if attrition stays below about 16.7%; contribution still depends on retained scope and delivery costs. Test a scenario of a 20% price increase and 10% attrition: 90% of the original agreements x 120% of the old fee = 108% of original revenue. Attrition is an assumption, not a measured outcome; profit depends on retained work, costs and scope.
Lever 2: scope control (where SAs quietly bleed)
An SA covers a defined scope, typically scheduled maintenance plus minor adjustments. The bleeding happens when techs treat the SA as 'whatever the customer asks for.' Add-on tasks that should be billed separately get rolled in. Diagnostic time on issues outside the SA gets eaten. Free callbacks compound.
Start by testing process controls before repricing. Every SA visit needs a defined checklist (what's covered) and a quote-on-site mechanism for anything outside it. Techs need to be trained that 'I'm covered for the maintenance, but this repair is separate' is the customer expectation, not an upsell trick.
Use a 10-15-point improvement within 90 days as a planning test, not a measured customer promise. Compare the same agreements and supported direct costs before and after scope controls.
Go deeper
Get the next one
Get next week's benchmark by email
Level research covers 2,242 contractors. Each benchmark uses its own eligible sample, shown with the metric. One email a week.
Lever 3: customer mix and the high-maintenance trap
Not all SA customers are equal. The retained 10-15% of customers / 50%+ of callouts reference is an unverified historical observation, not a measured typical distribution of callouts, complaints or scope creep. Test the concentration in your own book. Check whether high-callout customers also received discounts or regularly request work outside scope; this pattern is a practical hypothesis, not a measured outcome.
One option to test is repricing high-usage customers at renewal rather than terminating them. Quote renewal against actual cost-to-serve and the required margin, and explain the usage basis. In a planning scenario where 30% renew at a cost-covering price, verify their actual delivery cost and contribution; renewal and profitability are not guaranteed.
The signal to watch: SA customers whose unscheduled callout rate is more than 2x the book average. Those are the first customers to check for actual cost-to-serve and contribution; high usage can hide below-target margin in the average.
Lever 4: pull-through, a separate revenue opportunity
Service agreements aren't supposed to be the profit center. The agreement fee gets you in the door. The pull-through revenue, replacements, repairs, accessory upgrades surfaced during PM visits, adds billed revenue; its contribution depends on the labor, materials and other costs of that work.
Across 386 contractors, the median annual pull-through ratio is 8.7% (every $1 of SA revenue generates $0.09 of additional work). Top quartile: 29.6% (about 30%). At an illustrative $500K annual SA-revenue base, the median-to-P75 difference is $104.5K/year (about $105K) of billed add-on revenue, before delivery costs. This cross-company comparison is not a forecast for your company.
Retained trade references are mechanical 46%, HVAC 30%, plumbing 5.5% and electrical 18%; their per-trade eligible samples are unverified. They do not establish which process caused the difference. Test on-site recommendations and a 48-hour follow-up cadence against your own completed and billed work.
Go deeper
The service agreement power law
Why a small slice of agreements carries most listed annual contract value.
Pull-through revenue from expired agreements
Historical $43K-$148K/year pull-through illustrations; verify the eligible agreements and assumptions in your own book.
SA renewal rates: what the data shows
Retained 47% no-recorded-follow-up reference (sample and period unverified); check your own renewal queue.
Why maintenance revenue is worth more than install
Recurring revenue and PE valuation multiples.
A 90-day test plan
- Pull SA-level P&L for the last 12 months. Allocate every PM visit's labor and parts cost to the agreement. Compute gross margin per SA. The bottom 20% is your reprice list.
- Build a checklist for every SA visit type. What's covered, what's not, what triggers an on-site quote. Train techs once and audit weekly.
- Set a 48-hour rule for follow-up on any tech-flagged opportunity. Every visit that surfaces a potential repair or replacement gets called within 2 business days. Compare technician-flagged opportunities with quoted and won work to check where follow-up is lost.
- Review the highest-callout 20% as a planning queue. Test renewal pricing against their actual cost-to-serve and required margin. Cost plus 30% is a 23.1% margin (30 / 130), not 30% margin. Communicate the usage basis and track actual renewals; departure rates are not measured here.
- Track SA gross margin, annual pull-through ratio and eligible-agreement renewal rate monthly. Review flagged follow-ups and visit-checklist exceptions weekly; these cadences are practical tests, not measured explanations of the decile spread.
The takeaway: We view service agreements as a high-leverage operating line. Test their cost and contribution alongside the rest of the business before assuming a company-wide improvement.
Use the data yourself
Frequently asked
What gross margin should service agreements run at?
Use 40% as a planning floor and 50%+ as a target to test, not a measured attainable standard for every shop. The cross-trade company-level median is 37.9%, P75 53.5% (n=259). Calculate complete direct costs, then allocated overhead and net contribution. A positive 30% gross margin is not automatically a loss leader; measure add-on contribution separately instead of assuming it covers overhead.
How often should I reprice service agreements?
Annually at minimum. The historical 3-5-year unchanged-fee / 20-30% cost-gap observation has unverified population: check whether unchanged fees trail your current cost-to-serve. If your prices have not moved in several years, compare actual current cost-to-serve with the fee. The mechanic: track your fully-loaded cost-to-serve per agreement (labor hours × burdened rate, plus parts, plus allocated overhead), recompute every January, and reprice on each customer's renewal anniversary. A 5-10% annual price escalator built into the agreement language makes this less painful for both sides.
What's a good SA renewal rate?
The historical 35-50% range and below-30% review reference disagree with the older 85-90% strong, 75% typical and below-70% warning references. Their source populations, eligible cohorts and periods are unverified, so none establishes a healthy renewal target. Keep them as review prompts until reconciled. For one stated window, count renewal is agreements renewed / eligible agreements; dollar renewal is listed annual contract value renewed / listed annual contract value eligible to renew. If renewal falls, review pricing, delivered value and expiration follow-up; customer moves, scope changes and eligibility definitions also matter. The retained 47% reference has no verified sample or period and concerns expired agreements with no recorded follow-up, which is a renewal queue to verify, not confirmed lost revenue.
Should I segment SA tiers (silver, gold, platinum)?
Only if the tiers correspond to materially different cost-to-serve and customer value. Our practical view is that three-tier programs can confuse pricing and a simpler residential/light-commercial model can be easier to sell and fulfill. Test that view using your own sell-through, delivery costs and contribution by tier; comparative performance is not measured here. The exception is large commercial accounts where service-level differentiation justifies different price points.