Most small contractors don't lose jobs because they're too expensive. They lose margin because they didn't know what the job actually cost when they wrote the number.
Underpricing isn't a bidding strategy — it's a math problem. And it almost always comes down to the same mistakes: guessing on labor instead of calculating it, forgetting equipment wear, skipping overhead allocation, and treating profit as whatever's left over instead of a number you put in on purpose.
This guide walks through every line of a contractor estimate — what to include, how to calculate it, and the format that wins work without giving it away.
Why most small contractor estimates are wrong before they're sent
Here's what a typical small operator estimate process looks like: walk the job, get a feel for it, think about how long it'll take, add up materials from memory, and put a number together that "feels right."
The problem isn't effort — it's that "feels right" doesn't account for the things you're not thinking about when you're standing in someone's backyard at 4pm trying to close the job. The loaded labor rate you haven't calculated. The equipment hours you're mentally rounding down. The overhead that doesn't exist in your head because you've never put it on paper.
The fix isn't complicated. It's just building a habit of writing it down instead of doing the math in your head — and using a format that forces you to cover every cost before you commit to a price.
The anatomy of a contractor estimate: every line that matters
A complete estimate has six cost categories. Most small operators only think about two or three of them. Here's all six, with how to calculate each one correctly.
1. Labor
This is where most estimates go wrong. Labor isn't just what you pay your guys per hour — it's your loaded labor rate, which includes everything it costs to put that person on the job.
Loaded labor rate = base wage + payroll burden + workers' comp + general liability allocated to labor
Quick example: if you're paying a laborer $22/hour, here's what that actually costs you:
- Base wage: $22.00/hr
- Payroll taxes (employer share, ~7.65%): $1.68/hr
- Workers' comp (varies by trade — excavation runs 8–15%): ~$2.75/hr at 12.5%
- GL insurance allocated to labor (~3–5%): ~$0.88/hr
- Loaded rate: ~$27.31/hr
That's 24% more than the number you might put in your head. On a 40-hour job with two guys, that's nearly $350 you'd miss if you estimated off base wages.
Calculate your loaded rate once and use it every time. If you don't know your workers' comp and GL rates, call your insurance agent — they'll give you the numbers in five minutes.
2. Materials
Two mistakes kill material estimates: using old prices and forgetting waste factor.
Old prices: Material costs fluctuate. Diesel, rebar, pipe, concrete, aggregate — prices you bid with six months ago are not today's prices. Get a current quote from your supplier for any job over a few thousand dollars, or build a buffer into your unit prices for ongoing work.
Waste factor: You never use exactly what you order. The standard waste factor by material type:
- Topsoil / fill material: add 15–20% for compaction and spillage
- Concrete: add 5–10%
- Gravel / aggregate: add 10–15%
- Pipe and fittings: add 5–10%
- Lumber and framing: add 10–15%
If you're pricing a gravel pad and you need 40 tons, bid 44–46 tons. The extra four tons is not a cushion — it's the actual quantity you'll use.
3. Equipment
Every hour a machine runs costs money whether you own it or rent it. This is the line item most owner-operators skip because they think of owned equipment as "free." It isn't.
For owned equipment, you need a machine rate that covers:
- Fuel (track your actual burn rate — excavators typically burn 3–6 gallons/hr depending on work intensity)
- Routine maintenance (oil, filters, tracks, bucket teeth — budget 10–15% of hourly fuel cost)
- Major repairs and replacement accrual (what will the machine cost to replace divided by its remaining hours?)
A rough machine rate for a mid-size excavator runs $80–140/hr all-in. For a skid steer, $45–80/hr. For a dump truck, $55–90/hr. Calculate your actual number — don't use industry averages as gospel — but use something.
For rented equipment: get an actual quote before you finalize the estimate. Rental rates have moved significantly in the last two years and vary by region. Estimating from memory will burn you.
4. Subcontractors and outside services
If any part of the job requires a sub — concrete, electrical, utilities, survey — get a quote from them before you finalize your number. Add a 10–15% markup for your coordination time and liability exposure. You are managing their work; that has value.
5. Overhead allocation
This is the category that most small operators never put in an estimate because it's invisible. Overhead is every cost that exists whether you have a job or not: truck payment and insurance, phone, tools and small equipment, fuel for drive time, shop rent, accounting, and the slow weeks between jobs.
The right way to handle this is to calculate your total annual overhead costs, divide by the number of billable hours you expect to work, and add that number to every hour you bid.
Example: $48,000/year in overhead ÷ 1,600 billable hours = $30/hour overhead recovery. Every hour of labor you bid should have $30 baked in for overhead. If that feels high, your overhead is high — and the solution is to reduce overhead costs, not to stop recovering them in bids.
6. Profit margin
This is not what's left after everything else. This is a number you decide before you finalize the estimate.
Typical contractor profit margins by work type:
- Competitive bid work (public projects, price-sensitive clients): 8–12%
- Negotiated or relationship work: 12–18%
- Specialty or high-complexity work: 15–25%+
- Small jobs (under a day): 20%+ minimum — small jobs have disproportionate overhead and coordination cost
Decide your margin first. Apply it to total cost. That's your price.
What a complete estimate actually looks like
Here's a simplified example for a residential driveway grading and gravel job — the kind of work a small excavation or site prep crew does regularly.
Job: Grade existing driveway, install 4" compacted gravel base, 200 linear feet × 12 feet wide
- Labor: 2 guys × 8 hours × $28/hr loaded = $448
- Equipment: Skid steer 6 hrs × $65/hr + dump truck 4 hrs × $70/hr = $390 + $280 = $670
- Materials: 50 tons gravel × $18/ton = $900 + 12% waste = $1,008
- Disposal/haul: 2 loads existing material × $120 dump fee = $240
- Overhead allocation: 16 labor hours × $28/hr = $448
- Total cost: $2,814
- Profit at 15%: $422
- Estimate total: $3,236 (round to $3,250 for presentation)
A contractor who estimates this job in their head and comes in at $2,400 isn't being competitive — they're losing $414 and probably not covering their overhead. They'll wonder why a busy month still feels broke.
The format: what a professional proposal looks like
The format of your estimate matters almost as much as the number. A clean, professional proposal builds confidence before the customer even reads the price.
Every estimate should include:
- Your business name, phone, and email at the top — sounds obvious, but missing contact info is common
- Customer name and job address — confirms you're talking about the same project
- Date and estimate number — makes tracking easy and sets up your invoicing
- Detailed scope of work — exactly what you're doing and (critically) what you're not
- Line items — labor, materials, equipment as separate lines even if you don't show the unit pricing. Itemized bids feel more credible and give the customer something to review.
- Payment terms — deposit required, milestone schedule, final payment due date. Not in the cover email. In the estimate itself.
- Expiration date — "This estimate is valid for 30 days." Material prices move. Your schedule fills. Give yourself an out.
- Acceptance line — a signature line or approval mechanism that converts the estimate to a contract when signed
If you're still sending estimates as a dollar amount in a text message, that ends today. The format is part of the close — a professional proposal signals that you run a professional operation, and customers pay more for contractors they trust.
How fast you send it matters
Speed is a competitive advantage most small operators ignore. Research on service industry sales consistently shows response time is one of the top factors in winning bids — not price.
A customer who gets three quotes usually doesn't pick the cheapest one. They pick the one that got back to them first, that showed up on time, and that sent a clean proposal the same day. Speed signals that you're organized, responsive, and that the job will go the same way.
Target: estimate sent within 24 hours of the site visit. Same day if you can. If your current process makes same-day estimates impossible, that's a workflow problem worth solving — and the right software makes it fast enough to do from your phone in the truck before you leave the driveway.
The fastest way to send professional estimates from your phone: Jobber lets you build a line-item estimate on mobile, get customer approval online, and convert it to a job automatically when they accept. No laptop, no back-and-forth.
Try Jobber free for 14 days →The follow-up that closes jobs
Most contractors send the estimate and wait. The ones who win more work follow up — once, directly, 48 hours after sending.
The message is simple: "Hey [name], just checking you got the estimate I sent for [job]. Any questions or anything you'd like me to walk through?" That's it. No pressure, no sales language. Most customers who don't respond aren't saying no — they're just busy. One follow-up converts a significant percentage of open estimates.
If they don't respond to the follow-up, send one more at 7 days: "Hi [name], wanted to follow up one more time on the estimate for [job] before it expires. Happy to adjust the scope or answer any questions." After that, move on.
The change order problem — and how to prevent it
Even a perfect estimate turns into a losing job when scope creeps without compensation. The fix is simple language in every estimate:
"Any work requested beyond the scope described above will be documented and billed as a change order at the rates listed in this agreement. No additional work will begin without written approval."
Put it in the estimate. Every time. The customers who push back on this language are the customers who will fight every change order later. That's useful information to have before you start work.
The one thing that separates contractors who stay broke from those who don't
It's job costing — comparing what you estimated against what you actually spent after every job.
This is how you find out that you consistently underestimate equipment hours on grading work, or that your material waste factor is running 20% instead of 12%, or that a certain type of job always takes 30% longer than you bid. Without job costing, you're guessing blind every time. With it, your estimates get tighter every month.
It doesn't have to be complicated. A simple spreadsheet — estimated vs. actual for labor hours, material quantities, and equipment time — run at the end of every job tells you everything you need to know.
Get the free Bid Protection Checklist + templates
The job cost tracker I reference in this article is included in the free download. So is the bid sheet template and a cash flow spreadsheet built for small operations.
Disclosure: This post contains affiliate links. If you sign up for Jobber through my link, I earn a commission at no extra cost to you. I recommend it because it's the tool I'd point a contractor friend toward.