DEV Community

Cole · Tracking AI Search
Cole · Tracking AI Search

Posted on

A Sanity Check for HVAC Flat-Rate Pricing: Labor, Overhead, and Margin

Flat-rate pricing looks simple from the customer side: one task, one quoted price. Behind that number, however, is a compact cost model. If any part of that model is missing, a price book can look polished while quietly losing money.

I have found that the most useful way to review a flat-rate service price is not to ask whether it looks competitive. The better question is whether every assumption can be traced back to the shop that will perform the work.

This is a practical sanity check for small residential HVAC service teams. It is not a national price guide, and it does not tell a contractor what the market will bear. The shop supplies its own numbers.

1. Start with a real billable labor rate

The hourly wage paid to a technician is not the same as the labor cost that must be recovered through customer work. Payroll taxes, benefits, training, non-billable time, vehicles, supervision, software, insurance, and other operating expenses still have to be funded.

A useful labor-rate calculation starts with annual labor and overhead costs, then divides them by realistic billable hours. The word realistic matters. A technician may be paid for roughly 2,000 hours in a year, but holidays, training, meetings, travel, callbacks, and gaps in the schedule reduce the number of hours that can actually be sold.

If the denominator assumes perfect utilization, every task price inherits that optimism.

2. Estimate task time honestly

For each service task, record the time normally required from arrival through completion. Include the work that belongs to the job but is easy to forget: diagnosis, setup, cleanup, documentation, and a reasonable share of travel or dispatch time when that is part of the shop's model.

Do not use the fastest technician's best day as the standard. A price book has to work across ordinary jobs and ordinary operating conditions.

For a first draft, the labor component can be expressed as:

labor component = billable labor rate × task hours

The formula is simple; the quality comes from the assumptions.

3. Use replacement cost for parts

Parts should be entered at the cost the shop expects to pay to replace them, not an old invoice price that may no longer be available. Freight, consumables, and small materials also need a consistent policy.

Some shops apply a parts multiplier. Others calculate a separate markup or use price bands. Any of those approaches can be workable if the rule is documented and the final result is checked against the intended gross margin.

4. Separate markup from margin

Markup and gross margin are related, but they are not interchangeable.

If a task costs $100 and the shop adds a 40% markup, the selling price is $140. The gross margin is about 28.6%, not 40%.

To solve for a target gross margin, use:

selling price = cost / (1 - target margin)

So a $100 cost at a 40% target gross margin produces a selling price of about $166.67.

This is one of the easiest places for a spreadsheet to create a confident-looking but incorrect result. Label the input clearly: is it a markup percentage or a target margin percentage?

5. Add an explicit service-call policy

Decide how the diagnostic or service-call fee interacts with approved work. Is it always charged, credited when a repair is accepted, or built into selected tasks? There is no universal answer, but the price book and the customer-facing explanation must agree.

The same applies to after-hours work, difficult access, permits, special-order parts, taxes, and other exceptions. A flat-rate book should reduce improvisation, not hide situations where a separate policy is needed.

6. Stress-test the result

Before releasing a task price, run a few checks:

  • What happens if the task takes 25% longer than estimated?
  • Does the price still recover overhead when the schedule is not full?
  • Is the target margin calculated from revenue rather than mistaken for markup?
  • Can a technician explain what the quoted price includes?
  • Is the number based on the shop's costs rather than a competitor's price book?

If the result fails one of these checks, it is cheaper to fix the assumption now than to discover it through a month of underpriced work.

7. Keep the first price book small

A small team does not need hundreds of perfect tasks on day one. Start with the jobs performed most often, document the assumptions, and review actual labor and parts after the work has been completed. Expand the book as the process becomes reliable.

FlatRateKit provides a free HVAC flat-rate pricing calculator and a downloadable HVAC price-book template for organizing those assumptions. The tools are deliberately not a market-price database: the contractor supplies the labor, parts, overhead, and margin inputs.

The point of a good flat-rate price is not that it matches somebody else's number. It is that the shop can explain where it came from, update it when costs change, and deliver the work consistently.

Top comments (0)