How to Price a Job: Labor, Materials and Drive Time
No card. Your first quote can go out today.
Every job price comes down to the same pieces: your time, your materials, the drive, and the small stuff that's easy to forget. The math is simple. The hard part is using real numbers instead of the ones you wish were true. Here's the method, then a real worked example.
Start with your real hourly rate
Your hourly rate is what you charge for an hour on site. It has to pay for everything, not just you: the truck, fuel, insurance, tools, phone, software, the accountant, the hours you spend quoting and driving, and some profit. If your rate covers all that, you don't need to pile "overhead" on top of each job.
Here's the method. The numbers are an illustrative example only, so plug in your own:
- What you want to take home in a year. Example: $70,000.
- Your yearly overhead. Add up the truck payment, fuel, insurance, tools, phone, software and so on. Example: $24,000.
- Add them. $94,000.
- Hours you can actually bill. Not 2,000. Take out quoting, supply runs, driving, invoicing, callbacks, weather and time off. Example: 1,200 billable hours.
- Divide. $94,000 ÷ 1,200 = $78.33 an hour just to break even.
- Add profit. At 15% in this example: $78.33 × 1.15 = $90.08, call it $90/hr.
Most people get step 4 wrong. Count your real billable hours for a month and you'll probably find it's fewer than you thought. If you have a helper, run the same math for them (wage, payroll costs, workers' comp, their share of the truck, profit) and price their hours at that rate, not yours.
For hours per job, use your own history. If the last four water heater swaps took you three hours, it's a three-hour job. Count setup, cleanup and access: second floors, crawlspaces and no parking all add time.
Materials: cost plus your markup
Markup pays for the trip to the supply house, ordering, waste, returns, and the wrong part you have to take back. Pick a markup that covers what that handling actually costs you, then use it every time.
Know the difference between markup and margin:
- Markup is a percentage of your cost. $72.00 of parts + 20% = $86.40.
- Margin is a percentage of the price. On that same $86.40, your $14.40 is 16.7% of the price, not 20%.
| Markup on cost | Margin on price |
|---|---|
| 10% | 9.1% |
| 20% | 16.7% |
| 25% | 20.0% |
| 50% | 33.3% |
Don't give away the drive: time and mileage
Driving costs you twice: the truck and your time. Three ways to charge for it:
- Mileage plus drive time. Round-trip miles × your per-mile cost, plus drive hours × your rate. The most accurate.
- A flat trip charge for anywhere in your normal area. The simplest.
- Zones: a trip charge that steps up with distance.
Your per-mile cost is your own number: fuel, tires, maintenance, insurance and depreciation, divided by the miles you drive. The IRS publishes a standard mileage rate each year, which is useful as a sanity check, but it isn't your actual cost. Keep a mileage log either way. You'll want it at tax time.
On small jobs, the drive can be most of the cost. A 30-minute fix 25 minutes away is really a 1.5-hour job. Set a minimum charge so a small job never goes out below what it costs you to show up.
Disposal, permits and the small stuff
These are the lines that quietly eat your profit when they're left off:
- Dump fees and haul-off
- Permit fees and the time to pull and close the permit
- The extra supply-house run
- Equipment rental
- Anything you can't see yet. Put it on its own line with the number you're assuming, rather than burying it in labor.
A worked example: a $465.75 leak call
This is an illustrative sample job: a leak call on Hollis Ave, as shown on QuoteProof's $465.75 sample quote.
| Math | Amount | |
|---|---|---|
| Replace hose bib | 1.5 hr | |
| Repair ceiling drywall | 1 hr | |
| Labor | 2.5 hr × $140/hr | $350.00 |
| Materials | $72.00 + 20% markup | $86.40 |
| Drive | 28 mi round trip | $29.35 |
| Total | $465.75 |
On the quote, the customer sees one price per line (hose bib $210.00, drywall $140.00, materials $86.40, travel $29.35) and the total. They don't see the $140 rate or the 20% markup. That's normal: you're pricing the job, not handing over your cost sheet.
Check the total against the job: does $465.75 make sense for two and a half hours plus a parts run and a 28-mile round trip? If it feels low, the problem is usually one of the inputs (rate, hours or drive), not the math.
Pricing by trade
The method is the same in every trade. What changes is where the hours hide.
- Plumbing: access and drive are the big ones. Price the leak you photographed with your drive on its own line. See the plumbing estimate app page.
- Electrical: troubleshooting time and permit time belong on their own lines, not buried in the install. See electrical.
- Painting: prep is usually more hours than paint. Price prep and coats separately, room by room. See painting.
- Roofing: tear-off, decking and disposal are separate lines, and decking you can't see yet is an unknown on its own line. See roofing.
- Handyman: lots of small jobs means the drive and your minimum matter most. See the handyman estimate app page.
Price it once, reuse it: your rates in QuoteProof
QuoteProof stores your numbers once: hourly rate, materials markup, and drive time and mileage. You take photos of the job, it drafts the scope and line items from your photos and notes, and it prices them with your numbers. You review every line before anything goes out. The customer approves on a link with their name and a date stamp, sees one price per line and the total, and never sees your rates. It doesn't process payments. Once it's priced, here's how to write the quote.
See the $465.75 sample quote · Pricing: Starter $49/mo, Solo $99/mo, Crew $249/mo. 7 days free, no card. Printable checklist: Contractor Photo-Quote Checklist (PDF).