HVAC job costing

How to Job Cost an HVAC Service Call

An HVAC service call is usually priced before anyone admits how far away the house was. The flat rate assumes a part, a half hour, and a van that teleports. Job costing the call means writing the hour you spent, the drive you actually did, and the parts at warehouse cost, then reading the margin before that flat rate becomes a habit.

This page walks a no-cool repair and two tune-ups. The install, which is a different animal, is on the HVAC margin page so this one stays a service call. The general steps are the contractor costing guide.

Rates in every table here. Labor is $45 an hour, the truck is $0.65 a mile, and overhead is $12 an hour. That $12 is a $1,920 monthly shop cost spread across 160 hours on the job. Lead cost is $0 unless the table says otherwise. These are the public calculator's starter numbers, so you can rerun every ticket. On the phone, overhead is the monthly shop cost split across hours you actually log that month, and the month stays a draft until it closes.

Who it was for, and which chip

Last name. Then Diagnostic, Repair, Tune-up, Install, Other, or Callback. This no-cool visit is a Repair if you already know you are replacing a capacitor and a contactor. Use Diagnostic if you only sold the visit and the repair is a second decision. Mixing them makes "diagnostics" look profitable when the profit was the repair you hung on the same ticket.

If you waive a diagnostic because they bought the repair, keep one job. Revenue is the repair invoice. Time includes the diagnosing and the replacing. Two jobs, one of them $0 with no hours, teaches you nothing. Two jobs that both include the drive teaches you a lie.

Time on the equipment, time on the road

An hour and 15 minutes at the condenser is 1.25 hours in the calculator and 1 hour 15 minutes on the phone. Drive is 30 minutes and 16 miles, there and back. Start the timer when you are working. Type the drive after, in minutes. The truck does not belong inside "about an hour and a half, all in" or you cannot tell a close house from a far one when you set next season's maintenance radius.

Parts at your cost, including refrigerant

Capacitor and contactor: $64 you paid. If you had added refrigerant, the pounds times your cost per pound join that materials number. The line on the invoice that says refrigerant at a billed rate is already inside what they paid. Type the billed rate again as materials and the ticket looks falsely expensive to perform.

They paid $385 for this repair.

No-cool repair

LineMathAmount
What they paid$385.00
Onsite labor1.25 h × $45.00$56.25
Travel labor0.5 h × $45.00$22.50
Vehicle16 mi × $0.65$10.40
Materials, your cost$64.00
Overhead1.75 h × $12.00$21.00
Lead$0.00
Total job cost$174.15
Net profit$385.00 − $174.15$210.85
Net margin$210.85 ÷ $385.0054.8%
Profit per hour$210.85 ÷ 1.75 h$120.49 / h

Open this ticket in the calculator. Change one number and the margin moves with it.

The verdict is solid — 35%+ net. Do more of this work. This invoice is $117.08 over the 35% price. Gross margin is 60.2%. Overhead on 1.75 hours is $21.00. Profit per hour is $120.49. That is the service call a small HVAC shop is built to repeat. Most profitable HVAC services puts this kind of repair next to maintenance and installs. The costing is what keeps the opinion attached to a ticket.

The tune-up your agreement actually sold

Forty-five minutes, an $8 filter, $129 collected. Version one is a dedicated drive, 30 minutes and 12 miles.

Tune-up, its own drive

LineMathAmount
What they paid$129.00
Onsite labor0.75 h × $45.00$33.75
Travel labor0.5 h × $45.00$22.50
Vehicle12 mi × $0.65$7.80
Materials, your cost$8.00
Overhead1.25 h × $12.00$15.00
Lead$0.00
Total job cost$87.05
Net profit$129.00 − $87.05$41.95
Net margin$41.95 ÷ $129.0032.5%
Profit per hour$41.95 ÷ 1.25 h$33.56 / h

Open this ticket in the calculator. Change one number and the margin moves with it.

The verdict is OK, not a winner. Fine if this is filler between high-margin installs. To hit 35% net with this cost stack, the invoice needed to be $133.92 (you charged $129.00). Version two is the next condenser on the street. Fifteen minutes and 6 miles.

Tune-up, clustered

LineMathAmount
What they paid$129.00
Onsite labor0.75 h × $45.00$33.75
Travel labor0.25 h × $45.00$11.25
Vehicle6 mi × $0.65$3.90
Materials, your cost$8.00
Overhead1 h × $12.00$12.00
Lead$0.00
Total job cost$68.90
Net profit$129.00 − $68.90$60.10
Net margin$60.10 ÷ $129.0046.6%
Profit per hour$60.10 ÷ 1 h$60.10 / h

Open this ticket in the calculator. Change one number and the margin moves with it.

The verdict is solid — 35%+ net. Do more of this work. This invoice is $23.00 over the 35% price. The agreement did not change. The route did. Job costing a maintenance plan without miles will approve a price that only works when the board is dense. In July, when the no-cool calls blow the route apart, the same $129 visit becomes the first table. If you sell the plan in January using July's density, you will spend August driving it back.

Overhead, and why the month is a draft

You do not type $12 on the call. You type a monthly shop cost, and the hours you log share it when the month closes. These examples use $12 because that is $1,920 divided by 160 hours. A brutal August with 200 hours on the job makes overhead per hour smaller. A thin November with 80 hours makes it larger, and every tune-up you already felt unsure about gets worse. The open month shows a draft for that reason. Do not lock a winter price off a summer draft.

What the result is for

Solid means do more of this shape. Thin means the drive, the rate, or the lead is eating a price you meant to be fine. The 35% price is the invoice that would have cleared the solid line with this exact cost stack. For the dedicated-drive tune-up, that invoice is $133.92 against the $129.00 you charged. You might still sell $129 and make it up on density. You should do that with the second table in front of you, not with a hope.

Lead fees belong on the call the ad bought. A no-cool from a repeat customer and a no-cool from a paid placement are different margins at the same repair price. The lead field is how you keep them apart. Default is zero. Type the fee only on the ticket that used it.

Do this on the next five service calls

  1. One repair with parts, like the no-cool.
  2. One tune-up you drove to alone.
  3. One tune-up that was geographically lucky.
  4. One diagnostic you waived into a repair, as a single job.
  5. One callback or warranty visit at $0, so the cost sits on the books.

Then sort by Tune-up versus Repair. If tune-ups are thin unless they are clustered, the plan price or the routing has to move. The software argument is on HVAC job costing software. The five calls matter more than the logo on the tool, as long as the tool has a place for the drive and your cost on the part.

Frequently asked questions

How do you job cost an HVAC service call?

Record the invoice, time at the equipment, drive time and miles, parts and refrigerant at your cost, overhead on the hours, and a lead fee if you paid for the call. Net profit is the invoice minus that stack.

Where does refrigerant go?

In materials, at what you paid per pound times the pounds you used. The price you billed for refrigerant is revenue, already inside what they paid. Putting the billed price in materials double-counts it.

How should a maintenance-plan visit be costed?

As its own tune-up, with the real drive. A $129 visit across town and a $129 visit next door are different jobs. The plan's price is only honest after you see both.

What if the diagnostic fee is waived when they buy the repair?

Cost the visit once, on the repair invoice, and include the full time and drive. A second ticket with the diagnostic at $0 and no costs will not show the waiver. A second ticket that repeats the drive will double it.

Open the no-cool ticket

Change the part cost if your capacitor and contactor were different. The structure stays.

Cost this repair