How to Stop Underpricing Your Estimates?
Most operators don't have a confidence problem. They have a measurement problem.
Updated September 4, 2026

Most operators don't have a confidence problem. They have a measurement problem.
Published September 2026.
The short answer
You're probably not underpricing because you're afraid to charge more. You're underpricing because you're estimating from memory instead of from numbers, and three in particular: how many hours you can actually bill in a year, what an hour of labor really costs once burden is added, and how much overhead each billable hour has to carry. Work those out once, log what jobs actually take for thirty days, and most underpricing corrects itself without a single awkward conversation.
The gap is bigger than most people think
This isn't a rounding error. The 2024 ACCA Financial Benchmarking Study found the median HVAC contractor nets about 5.8%, while the top quartile averages 13.2%. Same trade, same trucks, often the same market.
That spread isn't mostly skill in the field. It's pricing discipline. A shop netting 5.8% is one bad quarter away from nothing. A shop netting 13% can absorb a blown transmission and still make payroll. The difference usually starts in the estimate.
Why good operators underprice
None of these are character flaws. They're measurement gaps:
- You quote from memory. You charged $450 for something like this a while back, so you quote $450 now, not knowing that job ran two hours long and you ate the difference.
- You anchor on your own old prices. The number you quoted in 2022 is still the number, even though insurance, fuel, and wages all moved since.
- You quote work time, not job time. The work is three hours. The job is three hours plus drive, plus the supply house, plus writing the invoice at 9 p.m.
- You quote to win, not to profit. Losing a job stings immediately. An underpriced job bleeds quietly for weeks. The painful one is easier to avoid.
The three numbers you're probably missing
1. Your real billable hours
You do not have 2,000 billable hours a year. A full-time person is roughly 40 hours a week for 50 weeks, but drive time, quoting, callbacks, supply runs, and paperwork eat a large share. Most one-truck operations land somewhere around 55 to 65% billable. Call it 1,250 hours.
That number matters because every dollar of overhead has to be recovered across those 1,250 hours, not 2,000. Use the wrong denominator and you'll under-recover by a third.
2. What labor actually costs
A $28/hour tech does not cost you $28. Add payroll taxes, workers' comp, unemployment, liability insurance, and any paid time off, and the true cost typically lands 25 to 35% higher. At 30%, that $28 becomes about $36.40.
If you're the one swinging the wrench, pay yourself a real wage in this math. Pricing that only works because you're free isn't pricing, it's a subsidy you're funding personally.
3. Overhead per billable hour
Add up everything that isn't job materials or labor: truck payments and fuel, insurance, phone, software, accounting, marketing, licenses, rent. Say that's $48,000 a year.
Spread across 1,250 billable hours, that's $38.40 per billable hour before you've made a cent.
Putting it together
Using those illustrative numbers:
| Line | Per billable hour |
|---|---|
| True labor cost | $36.40 |
| Overhead recovery | $38.40 |
| Break-even | $74.80 |
So an hour billed at $85 isn't an $85 hour. It's about $10 of profit, or roughly 12% before anything goes wrong. One callback erases the whole day.
Run your own version of this table. The number that comes out is the floor you can never quote below, and most operators have never actually calculated it.
Markup is not margin
This one costs people real money, and it's pure arithmetic.
If your cost is $74.80 and you add a 20% markup, you charge $89.76 and your actual margin is 16.7%. If you want a genuine 20% margin, you divide instead: $74.80 / 0.80 = $93.50.
The formula worth taping to the dash:
Price = Cost / (1 - target margin)
On a single job the difference is a few dollars. Across a year of jobs, it's the gap between the median contractor and the top quartile.
The costs that quietly vanish from estimates
When a job "went fine" but the month didn't, it's usually one of these:
- Drive time and the supply house run. Real hours, rarely quoted.
- Callbacks and warranty work. Free to the customer, not to you. If 1 in 10 jobs gets a return visit, that's a cost every job should carry a slice of.
- "While you're here." The ten-minute favor that takes forty.
- Consumables and dump fees. Small per job, meaningful per year.
- Unpaid admin. Quoting, invoicing, chasing payment. It's overhead whether or not you bill it.
The one habit that fixes most of this
Log what the job actually took, every time. Not an estimate afterward, the real number.
Then compare it to what you quoted. That single comparison, repeated across thirty days, tells you more than any pricing course. You'll find two or three job types you've been consistently quoting 30 to 40% light, and they're usually the ones you do most often.
You can't fix a gap you can't see. Right now, for most operators, the actual hours simply aren't written down anywhere.
A thirty-day fix
- Calculate your break-even hourly rate using the three numbers above. Once. It takes an evening.
- Pick your target margin and use the division formula, not markup.
- Log actual time and materials on every job for thirty days. Note the start, the finish, and what you actually used.
- Compare quoted versus actual weekly. Look for patterns by job type, not one-offs.
- Reprice the two worst offenders first. Not everything at once. The two job types where the gap is biggest.
Most operators find that they aren't underpricing everything. They're badly underpricing a couple of specific jobs, and those are dragging the whole year.
Where a job log helps
This is mostly arithmetic and discipline, not software. But the arithmetic needs raw material, and that's where having job history in one place earns its keep.
In ToolBerry, work orders capture what was actually done on each visit, with notes and photos, and you can add custom fields for actual hours and materials so the real numbers live on the job instead of in your head. Job history means the next time you quote that same recurring service, you can look at what it took the last three times rather than guessing. Quotes and invoices build from that job data. It's free, and it works offline, so the log gets filled in at the job rather than reconstructed from memory that night.
What it won't do: calculate your overhead or your break-even rate. That lives in your books, with your bookkeeper. ToolBerry holds the operational half, which is the half most people are missing.
The honest caveats
We're engineers, not accountants. Every number in this article is illustrative, meant to show the shape of the math, not your actual figures. Your overhead, burden rate, and billable percentage are specific to you, and a bookkeeper or accountant who knows the trades will sharpen them fast. It's worth the meeting.
Raising prices has consequences. You will lose some jobs. That's usually the point, since the ones you lose are typically the ones you were losing money on. But go in with your eyes open and change prices deliberately, not all at once across every customer.
Have a question?
We build ToolBerry as working engineers, and pricing is the thing operators bring up more than any feature. If you've done this exercise and found something surprising, we'd genuinely like to hear it: contact@toolberry.net.
Grab ToolBerry from the App Store or Google Play, or visit toolberry.net.
Free forever for solo operators. No account. No credit card. Works offline.
Further reading
- Tracking customer sites and equipment so you're not guessing on the next visit - job history that makes quoting easier
- What Every Field Service App Actually Needs (and What's Just Bloat) - what to look for in a tool
- Do You Even Need Paid Field Service Software Yet? A Free-First Guide - spend on the truck first
- How ToolBerry Helps Landscapers Run Their Business - the same math, one trade deep
