Start with the number underneath both models
Before choosing a pricing model, work out what an hour of billable technician time actually costs you. Not the wage: the wage plus employment costs, vehicle, fuel, tools, insurance, training, phone, and a share of everything in the office, divided by the hours that genuinely end up on an invoice.
That last part is where most calculations go wrong. A technician paid for forty hours a week does not produce forty billable hours. Travel, waiting, stock collection, training and admin all consume paid time. A company billing 60% of paid hours has a cost per billable hour substantially higher than its wage bill suggests, and pricing built on the wage is pricing built on a fiction.
What flat rate is really for
Flat-rate pricing gives the customer a number before the work starts and removes any argument about how long it took. It rewards efficiency: a technician who fits a capacitor in twenty minutes earns the same as one who takes an hour.
It works where the work is repeatable enough to price with confidence, which means standard replacements, standard services, standard installations. It fails where the job is genuinely unknown, because you are pricing a distribution rather than a task, and the only safe way to do that is to price for the bad end, which makes you expensive on every normal job.
What time and materials is really for
Diagnostic and breakdown work, where neither party knows what is wrong yet. Charging for the time taken is the honest model when the task cannot be defined in advance.
Its failure mode is that the customer carries all the uncertainty, which they will resent unless you manage it. The controls that make it work: a stated hourly rate, a diagnostic charge agreed up front, a ceiling beyond which you stop and call, and a report at the end explaining what the time went on.
Most companies should use both
Use time and materials for diagnosis, then flat rate for the repair. The customer pays a known amount to find out what is wrong, then gets a fixed price to fix it, and can decide. It is the structure customers find easiest to accept because it mirrors how they think about the problem.
The requirement is a price book that is maintained. A flat-rate list built two years ago and never revisited is a slow margin leak as parts and labour costs rise, and it is nearly always discovered during a bad year rather than a good one.
Raising prices without losing customers
Most HVAC companies leave price increases too long and then have to make a large one, which is the version customers notice and resist. Smaller, regular adjustments attract far less attention and keep margin from eroding silently as costs rise.
When you do raise, give notice, give a reason that is true, and give it in writing before the next invoice rather than on it. Customers who are told in advance generally accept it; customers who discover it on a bill experience it as something done quietly, and they remember that longer than the amount.
Discounting is a decision, not a reflex
A discount given to close a job is a permanent reduction in that customer's expectations, and it is almost never recovered. If the price was right, defending it costs one uncomfortable conversation; if the price was wrong, the answer is to fix the price rather than to vary it under pressure.
Where a concession genuinely makes sense, give something other than money: a longer warranty, a scheduled visit included, a payment term. All of those cost less than the equivalent discount and none of them resets what the customer believes your work is worth.
Out-of-hours and emergency work
Whatever model you use, out-of-hours work needs its own rate that reflects what it actually costs: overtime, fatigue the following day, and the value of the response itself. Companies that apply weekday rates to a two o'clock call-out are subsidising emergencies with planned work.
State it in advance, in writing, including when the premium applies. A customer who discovers an emergency rate on an invoice feels taken advantage of; the same customer told at the time of the call usually accepts it without comment.
