Trades industry news, updated weekly
Guides

Your Flat-Rate Price Book Is Wrong (Here's How to Fix It)

Maria ChenMaria Chen··12 min read

Your Flat-Rate Price Book Is Wrong (Here's How to Fix It)

The P&L I pulled in 2019 looked fine at the top line. Fourteen trucks, residential HVAC, mid-Atlantic market. Revenue was growing. The owner had been in business eleven years. He had a price book — a real one, from one of the major industry vendors — and he used it consistently, which puts him ahead of roughly half the shops I've seen.

He had been losing money on every install for three years. He didn't know.

That is not a mindset problem. That is not a confidence problem. It is what happens when the numbers inside your pricing calculation belong to someone else's shop.


The Book Was Never Built for Your Shop

The major flat-rate pricing books, and the software platforms that have replaced them, are built on national cost averages — national average technician wages, national average burden rates, national average vehicle operating cost.

Those averages are real numbers. They are just not your numbers.

The vendors who sell these books will tell you the averages are close enough, that you can adjust for your market, that the structure is sound. The structure usually is sound. The failure is that the books are calibrated to produce predictable revenue per ticket. Your margin per ticket is a different number, and the book has no opinion about it.

I came up through psychrometrics and load calculations before I went back for the MBA. In HVAC, using someone else's Manual J on your customer's house is malpractice. You do a real load calc because the inputs are specific to that building — its envelope, its orientation, its actual infiltration. Nobody hands you a regional average and calls it a design. But contractors take a regional average on their single most important financial calculation and call it a price book. The logic error is the same. The financial consequences are worse.


The 14-Truck Shop That Didn't Know It Was Losing Money

When I was at Atlantic Comfort Partners doing ops analysis on acquisition targets, I pulled a lot of P&Ls. Most had problems. The 2019 shop was different because the problem was invisible at the aggregate level — mediocre numbers, not alarming ones. The issue only surfaced when I broke out gross margin specifically on installs. That number was negative. Not thin. Negative.

The owner had adopted his price book around 2016 and hadn't rebuilt the inputs since. His workers' comp classification had changed when he added a helper to the install crew. His commercial auto premiums had moved. His overtime pattern had shifted. None of that made it back into the pricing.

What I found when I got into the detail: the loss was distributed across labor and vehicle expense, spread across hundreds of tickets. There was no obvious line item to catch. The owner wasn't ignoring his books — he was reading them. He just had no mechanism for connecting what a single installed unit cost him to deliver against what the price book said it should cost. That reconciliation didn't exist anywhere in how he ran the business.

By the time Atlantic Comfort Partners got there, the shop had burned through most of its working capital without understanding why. The tightness with which he ran the operation was irrelevant because the unit economics were wrong from the start.


What "Fully Loaded Cost" Actually Means (And What the Book Skips)

Technician wage plus burden. Burden means everything on top of the base wage — payroll taxes, workers' comp, health insurance if you offer it, paid time off, any retirement contribution. Shops consistently underestimate this. When I pull actual payroll records rather than relying on an owner's estimate, the burden rate is almost always higher than what the price book assumed. The gap on a $32/hour tech is real money per ticket.

Truck operating cost per billable hour. This is the number I see underestimated most consistently. Commercial auto premiums in HVAC have moved sharply since 2021 — I've seen this across the shops I've worked with, and the declarations pages don't lie. Add fuel, which is regional and volatile. Add tires, maintenance, registration, and the repair that comes with trucks running 40,000 miles a year. Divide all of it by your actual billable hours dispatched, not your theoretical capacity. Most shops use a number they heard somewhere. Run your own.

Overhead allocation. Everything that exists whether or not a truck rolls — rent, utilities, office staff, software subscriptions, marketing, tools, training. Express it as a percentage of revenue and allocate it to each billable hour. The flat-rate books use an average. Your overhead percentage is what it is.

Target net margin. Not a cost, but it belongs in the calculation. If you don't build it in, you will earn whatever is left after the costs land. In a pressured market, what is left is often close to zero.

One more thing on materials, because it comes up in every engagement. A flat-rate book that tells you to mark up materials 40% is not delivering 40% gross margin on materials. Markup is calculated on cost. Margin is calculated on price. A 40% markup on a $400 part means you sell it for $560. Your gross margin on that transaction is 28.6%. On a $4,200 install, the difference between a 40% markup and a 40% margin is several hundred dollars. That is not rounding error.


The Contrarian Position: The Book Isn't the Problem — Your Inputs Are

The trade press and the coaching world have spent years telling contractors that flat-rate books are the problem. That's not quite right.

The calculation engine inside a flat-rate book is generally fine. You put costs in, you apply a margin, you get a price. The failure mode is that most contractors accept the default inputs — the national averages the vendor populated at configuration — and never audit them against their own numbers.

The SEER2 transition is a clean illustration. When the efficiency standards changed in 2023, equipment costs went up for almost everyone. The shops that got hurt were mostly shops that absorbed the cost increase instead of passing it through — I watched this happen in shops I was working with at the time. The pricing tool was not the variable. The decision to update the inputs was the variable. Same software, same structure, different outcome depending on whether the owner went in and changed the numbers.

The criticism I'd make of the major vendors is narrower than "the book is wrong." These books are sold with a level of authority they have not earned for your specific shop. The sales process implies you can trust the defaults. You cannot. But the fix is not to throw out the structure — it's to replace the inputs with numbers that came from your payroll records, your insurance invoices, your fuel logs, and your own P&L.


How to Rebuild Your Rate From Your Actual Numbers

Pull your technician's total annual compensation: base wages, actual overtime from the last 12 months (not zero, not a guess), and burden. Divide by actual productive hours — 2,080 minus paid time off, minus training days, minus callbacks that don't generate revenue. That is your loaded technician cost per hour.

Next, pull your last 12 months of vehicle expense: fuel, insurance premiums from your declarations page, repair invoices, tires. Add them up. Divide by your dispatched billable hours for the year. That is your truck cost per billable hour. Write down that number, then find whatever number your flat-rate book is using. In every shop I've done this exercise in, the book's truck cost is lower than the actual — usually by a material amount.

Now pull your overhead from last year's P&L: total overhead divided by total revenue. Apply that percentage to each job. If your overhead runs 22% of revenue and you are pricing a job at $1,800, you are carrying $396 in overhead against that ticket. If the book's overhead assumption is 15%, you are short $126 on that job before you account for labor or materials.

Finally, build in your target net margin. Not hoped-for. Target. If you want 12% net, that number goes into the calculation before you quote.

The number you arrive at is your break-even-plus-target rate. If your flat-rate book's implied labor rate sits below this, you are subsidizing every job from working capital. Eventually the cash conversion cycle catches up.

Which brings me to one thing the rate rebuild does not fix on its own. A shop that closes the pricing gap but carries slow-paying accounts at 45-day days sales outstanding has fixed the margin problem and introduced a cash problem. If you invoice today and collect in 45 days, your corrected margin is sitting in someone else's bank account for six weeks. The rate rebuild is step one. Know your DSO.


The Three Numbers to Pull This Week

Your actual loaded technician cost per hour. Not what you think it is — what the payroll records and your workers' comp premium say. Base wages, actual overtime, payroll taxes, workers' comp, health insurance contributions. Divide by actual hours worked. Compare it to what your flat-rate book assumes. They will not match.

Your truck cost per billable hour from your own expense records. Insurance declarations page, fuel for the last 12 months, repair invoices, tires. Divided by dispatched billable hours. This is the number I see underestimated most often in the shops I've worked with, and the gap between the book's assumption and the real figure is where a lot of margin disappears.

Your overhead as a percentage of revenue from last year's P&L. Total overhead divided by total revenue. If your P&L doesn't separate this cleanly, you can approximate from the tax return, but fixing the P&L structure is worth doing separately.

Those three numbers go into the cost-of-doing-business calculation. That calculation tells you what a billable hour actually costs your shop to produce. Compare it to what your flat-rate book implies. The gap between those two numbers is what you've been absorbing — or, in the case of the 14-truck shop, what you've been losing without knowing it.

I ran service calls in a Sprinter. I know what it costs to put a truck on a driveway, because I paid attention to the fuel receipts and the insurance renewals and what a set of tires costs at 40,000 miles. You've been paying those same costs. The only question is whether you're pricing them.


Questions I Get on This

What's the difference between flat-rate and time-and-materials — and does the method matter?

For residential service, flat-rate generally produces better customer experience and more predictable revenue per ticket. The problem isn't the method — it's that flat-rate requires accurate cost inputs to produce accurate prices. If your inputs are wrong, every ticket is priced wrong, and you don't find out until you reconcile the P&L. With time-and-materials, your labor revenue at least tracks your labor cost in real time. Flat-rate with correct inputs outperforms. Flat-rate with wrong inputs is quietly corrosive, because you cannot see the problem ticket by ticket.

How do I calculate burden if my payroll is a mix of W-2 employees and 1099 subs?

Don't blend them. For W-2 employees, burden includes the employer share of FICA, workers' comp premiums, unemployment insurance, and any benefits you pay — these stack up to a meaningful percentage above base wage, and they vary by workers' comp classification, which matters if you've changed what your crews do. For 1099 subs, your direct cost is the invoice amount with no burden on top. If you mix the two into a single rate, the number is wrong for both situations — and in my experience, it usually misprices the W-2 work worse, because W-2 burden is what shops underestimate most.

My flat-rate book has a built-in materials markup — how do I know if it's covering my actual costs?

First, clarify whether the book is quoting a markup or a margin — the difference is the 28.6% versus 40% problem described above. Then pull your last three months of material invoices and compare what you actually paid for common parts to what the book's price table says you should charge. If your supplier costs have moved and the book hasn't been updated, you are selling parts below your intended margin. Your supplier invoices reflect current pricing. Reconcile them against the book at least quarterly.

I updated my labor rate and my close rate dropped. How do I read that?

A close rate drop after a price increase can mean two things: the market won't bear the price, or your presentation didn't keep pace with the number. Before concluding you've priced yourself out, break down your close rate by job type and price range rather than looking at the aggregate. If you're still closing on smaller repairs and losing on larger installs, that tells you something specific about where the price sensitivity sits. If you're losing across the board on jobs that are similar to what you used to close, the presentation is the more likely variable. Also: a lower close rate with a margin that actually covers your costs is a better outcome than the old close rate with a margin that didn't. The goal is not close rate. The goal is profitable closed jobs.

Enjoyed this article?

Get articles like this in your inbox every Monday. Free, no spam.

More from The Backcharge