CALCULATORS · MAINTENANCE AGREEMENTS

HVAC Maintenance Agreement Price Calculator

A maintenance agreement is priced on the hours, parts and trips it will use across the year, plus the margin you need on top. Enter the equipment you service and what each visit costs you, and the calculator returns the annual price, the monthly price, the price per visit and how many extra visits the margin could absorb.

By Chip Alvarez, independent field service software analyst. Reviewed November 4, 2026. This calculator uses only the numbers you enter; it does not estimate market prices. Related: themaintenance contract template, the glossary entry for a maintenance contract and themarkup calculator.

How to use the calculator

  1. List each type of equipment on its own row: how many units, how many visits a year, the hours one unit takes per visit and the materials one unit uses per visit.
  2. Enter what an hour of labor costs you (wages plus burden, not your billing rate), the drive time and the trip cost for one visit.
  3. Add overhead as a percent of direct cost and the margin you want to keep, both as whole percents. A 30% margin is 30, not 0.3.
  4. Read the results under the form. They update as you type, and an empty field asks for a value instead of counting as zero.

Price an agreement

Equipment

Rates and costs

Annual price
$6,012.86
Monthly price
$501.07
Price per visit
$1,503.21
Annual cost to you
$4,209.00
Annual margin
$1,803.86
Margin covers
1 extra visit

This calculator uses only the numbers you enter; it does not estimate market prices.

The formula

  • Labor hours: the sum, over every row, of units × visits × hours per unit per visit
  • Site visits: the largest visits-per-year among rows with at least one unit
  • Labor cost: (labor hours + site visits × drive hours) × labor rate
  • Materials: the sum of units × visits × materials per unit per visit
  • Direct cost: labor cost + materials + site visits × trip cost
  • Total cost: direct cost × (1 + overhead)
  • Annual price: total cost ÷ (1 − margin)
  • Monthly price: annual price ÷ 12
  • Price per visit: annual price ÷ site visits
  • Extra visits: the annual margin (price − total cost) ÷ (total cost ÷ site visits), rounded down

Margin stops short of 100%. At 100% the divisor (1 − margin) is zero, so the calculator reports that no price exists. With no site visits there is no price per visit, and with no cost there is no visit cost for the margin to cover; each case says so instead of showing a zero.

Worked example: five equipment types, 30% margin

A shop services five kinds of equipment at one site. Labor costs $72.00 an hour, each visit has 1 hour of drive time and $35.00 in trip cost, overhead is 15.00% of direct cost and the margin target is 30.00%.

Equipment in the worked example
EquipmentUnitsVisits per yearHours per unit per visitMaterials per unit per visit
Rooftop unit142.5$46.00
Split system241.5$28.00
Fan coil unit321.25$18.00
Exhaust fan420.5$6.00
Boiler113$40.00

The busiest rows need 4 visits a year, so the agreement has 4 trips. Across all rows the work adds up to 36.5 labor hours.

Worked example build-up
Labor (36.5 h + 4 × 1 h drive) × $72.00$2,916.00
Materials$604.00
Trips (4 × $35.00)$140.00
Direct cost$3,660.00
Overhead (15.00%)$549.00
Total cost$4,209.00
Annual price at a 30.00% margin$6,012.86
Monthly price$501.07
Price per visit$1,503.21
Annual margin$1,803.86
Margin covers1 extra visit

Total cost is $4,209.00 and the price is $4,209.00 ÷ (1 − 0.30), or $6,012.86 a year ($501.07 a month). An average visit costs $1,052.25, and the $1,803.86 of margin is worth 1.71of them, so it covers 1 extra visit.

Frequently asked questions

Why does the busiest row set the number of trips?

A technician who drives to a site services every unit due that visit, so drive time and trip cost are charged once per visit rather than once per unit. If the rooftop unit needs four visits a year and the exhaust fans need two, the agreement has four trips, and the fans ride along on two of them. A row with zero units never sends a truck, so it does not count.

What does the extra visits figure tell me?

It divides the margin by what an average visit costs you, then rounds down. In the worked example the margin pays for one visit beyond the four the agreement includes before the job stops making money.

Why must the margin stay below 100%?

The price is cost divided by (1 minus the margin). At a margin of 100% that divisor is zero, which would need an infinite price for the cost to be none of it. The calculator says so and shows no price. A 30% margin means 30 cents of every dollar charged is profit, so the cost is 70 cents of it.