How to Quote a Job as a Contractor: The Complete Pricing System
Most contractors lose money before they pick up a single tool. The job looked profitable on paper, the client seemed reasonable, and the work went fine โ but at the end of the month the numbers don't add up. The problem almost always traces back to the quote. Either the materials were underestimated, the labor rate didn't account for actual costs, overhead wasn't factored in, or the margin was guessed at rather than calculated. This post walks through the complete system for quoting a job correctly โ every time.
Why Most Quotes Are Wrong Before the Job Starts
The instinct most contractors follow is: estimate the materials, add a few hours of labor at their hourly rate, and tack on a percentage for profit. The problem is that this approach misses three things that eat margin on every job: the true cost of labor (which is always higher than the hourly rate), overhead that doesn't appear in materials or labor but still has to be paid, and the difference between markup and margin (which leads to systematically underpricing every job).
A quote built on those assumptions feels right โ until you do the actual math at the end of the month and wonder where the money went.
Step 1: Material Cost With the Right Markup
Start with actual material cost โ what you pay the supplier, not what the client would pay at a hardware store. Then apply a markup, not a margin.
The difference matters: a 20% markup on $1,000 in materials gives you $1,200. A 20% margin on $1,200 in revenue means you only kept $240. These are not the same number, and confusing them is one of the most common ways contractors undercharge.
Standard material markup ranges by trade:
- Electrical: 20โ35% on materials
- Plumbing: 25โ40%
- HVAC: 30โ50% on equipment, 20โ30% on parts
- Roofing: 20โ30% on materials
- Handyman / general: 15โ25%
Add a buffer for waste and small items that don't make the estimate but show up on the job. For most jobs, 5โ10% of material cost covers this.
Step 2: Labor at the Burdened Rate โ Not Your Hourly
The number that kills most quotes is using the hourly wage as the labor cost. It isn't. The real cost of an hour of your labor โ or your employee's โ includes the wage plus every cost attached to it: payroll taxes, workers' compensation, health insurance contribution, tools and vehicle depreciation, and the unbillable time that surrounds every billable hour (driving, quoting, admin, callbacks).
A simple way to calculate your burdened rate:
- Start with your target annual take-home (say, $80,000)
- Add annual overhead: truck, insurance, tools, phone, license, accounting โ total it up (often $25,000โ$40,000/year for a solo operator)
- Divide by realistic billable hours โ not 2,080 (full-time desk hours). Count how many hours per week you actually bill clients. For most solo tradespeople, this is 100โ130 hours per month, or 1,200โ1,560 per year
- That total divided by billable hours is your break-even hourly rate โ the floor below which you lose money
- Add your profit margin on top of that floor
Example: $80,000 take-home + $30,000 overhead = $110,000 needed. At 1,300 billable hours: floor rate of $84.60/hr. Add 20% margin: quote at $105/hr.
For employees: take their wage, add 35โ45% for burden (FICA, workers' comp, unemployment, benefits), and use that burdened rate in your quote.
Step 3: Overhead Allocation Per Job
Overhead is the cost of being in business that doesn't attach to any specific job โ your truck payment, insurance premiums, accounting fees, software, shop rent, advertising. These costs exist whether you're on a job or not, and they have to come from somewhere.
The way to handle this is to calculate your overhead per billable hour and include it in your labor rate. If you have $2,500/month in overhead and bill 130 hours/month, that's $19.23 in overhead per billable hour. Every hour you bill a client needs to recover that amount before you see a dollar of profit.
If you've already built overhead into your burdened rate calculation above, you don't need to add it separately. The point is that it has to be somewhere in the quote โ it cannot be absorbed by margin or it will eat your margin entirely.
Step 4: Add Your Margin โ After Everything Else
Margin is what's left after all costs โ materials, labor, overhead. It funds growth, absorbs surprises, and compensates you for the risk of running a business. It is not a bonus โ it is the reason you are in business rather than working for someone else.
Target gross margin ranges by trade:
- Service work (electrical, plumbing, HVAC service calls): 50โ65% gross margin
- Installation and remodel: 35โ50%
- New construction: 20โ30% (higher volume, lower margin)
- Specialty / emergency: 60%+ (price accordingly)
If your quote covers materials + burdened labor + overhead and you want a 40% gross margin, the formula is: total cost รท (1 โ 0.40). On $3,000 in direct costs, that's $3,000 รท 0.60 = $5,000 quote. Not $3,000 ร 1.40 = $4,200 โ that gives you 28.6% margin, not 40%.
What Goes in the Written Quote
A verbal quote is not a quote โ it's a conversation. The moment the job scope changes or a payment dispute starts, you have nothing. Every quote, even a small one, needs to be in writing with at minimum:
- Scope of work โ what is included in specific terms, and what is not
- Materials โ what you're providing (brand, spec, quantity), what the client is responsible for
- Price โ total, broken down by phase if it's a larger job
- Payment terms โ deposit percentage, milestone payments, final payment timing
- Timeline โ start date, estimated completion, what delays it
- Change order clause โ any scope change requires a signed change order before work proceeds
- Validity period โ the quote is valid for 30 days (material prices change)
A one-page quote template covers all of this and takes five minutes to fill out. The alternative โ a dispute over what was included, a client who claims the price was different, or scope creep that absorbs your margin โ costs far more than five minutes.
5 Quoting Mistakes That Kill Margin
- Quoting from memory instead of a written estimate. Every item should be written down and priced before the total is calculated. Memory systematically underestimates.
- Using material cost as the labor baseline. "I'll charge twice the materials" is not a pricing system. Materials and labor have no fixed relationship to each other โ a job with cheap materials can still be labor-intensive.
- Not including drive time. Forty-five minutes each way on a two-hour job is a two-hour job that took three and a half hours. Either price it in or set a service-call minimum that covers it.
- Not accounting for job-specific complexity. A panel upgrade in an accessible utility room and a panel upgrade in a crawl space are not the same job. Access difficulty, permitting requirements, and site conditions need to be priced individually.
- Discounting the quote to win the job. A job you win by cutting your margin is a job you're working partly for free. If a client needs a lower price, reduce scope โ not margin.
The Estimate-to-Actual Review: The Step Most Skip
After every job, spend ten minutes comparing your quote to your actual costs. What did materials actually cost? How many hours did it actually take? Were there callbacks? The gap between estimated and actual is where you improve. Most contractors do this once after a bad job โ the ones who build it into their routine after every job are the ones whose quotes get more accurate over time and whose margin improves without raising prices.