# How to Price Contracting Jobs for Profit: The Complete Guide

To price a contracting job for profit, add your burdened labor cost per billable hour, your overhead per billable hour and your materials cost, then divide by one minus your target profit margin. Price from your own numbers, not a competitor's, and check every finished job against the estimate.

## Key takeaways

- Price = total job cost ÷ (1 − target margin). Dividing protects margin; multiplying by a markup percent is where most shops lose money.
- Your real labor cost is wages plus burden, spread over billable hours only, not every hour on the clock.
- Overhead has to be recovered per billable hour, so an idle truck raises the price of every job.
- A 50% markup is only a 33% margin. Know which one you're quoting.
- Job costing after the work is how you find out if your price was right.

Most owners start out pricing the way the shop down the road does, or by taking a wage and doubling it. That works until the busy season ends, the truck payment comes due and the bank account says the year was a wash. This guide walks through a pricing method you can do on one sheet of paper, with a single worked example that runs through every step. The numbers are illustrative: a four-tech HVAC and plumbing shop. Swap in your own and the method holds for any trade.

> **The example shop used throughout this guide (illustrative)**
>
> 4 field techs paid $30 an hour. Each is paid for 2,080 hours a year (40 hours × 52 weeks).
>
> Labor burden (payroll taxes, workers' comp, benefits, PTO) of 35% of wages.
>
> Annual overhead of $300,000: office staff, rent, trucks, insurance, software, marketing, owner salary.
>
> Target net profit margin: 15%.

## 1. What does an hour of labor really cost you?

An hour of labor costs you the wage plus labor burden, divided by the share of paid hours that are billable. A $30 tech is not a $30 cost. Payroll taxes, workers' comp, health insurance and paid time off all ride on top of the wage, and windshield time, shop time and callbacks eat hours you can't bill.

Start with burden. Federal data puts it high for the trades: in the BLS Employer Costs for Employee Compensation survey for June 2026, private construction employers paid $36.13 an hour in wages and $15.84 in benefits, about 44% of wages. Small shops with thin benefits often run lower, which is why our example uses 35%. Use your own payroll and insurance records. The full method is in [labor burden](https://www.brix.so/learn/labor-burden), and the [labor burden calculator](https://www.brix.so/tools/labor-burden-calculator) does the math.

**Burdened labor cost per billable hour**

```
Labor cost per billable hour = (Wage × (1 + Burden %)) ÷ Utilization
```

Where:
- Burden % = employer payroll taxes, workers' comp, benefits and PTO as a share of wages
- Utilization = billable hours ÷ paid hours

> **Worked example: labor**
>
> Burdened wage: $30 × 1.35 = $40.50 per paid hour.
>
> Each tech bills 1,248 of 2,080 paid hours, so utilization is 60%.
>
> Labor cost per billable hour: $40.50 ÷ 0.60 = $67.50.
>
> That $30 tech actually costs $67.50 for every hour you can put on an invoice.

Utilization is the number most owners guess wrong. Pull a month of timesheets and compare hours on job tickets with hours paid. Service techs who drive between four or five calls a day often land between 50% and 70%. The [technician utilization](https://www.brix.so/learn/technician-utilization) guide and the [utilization calculator](https://www.brix.so/tools/technician-utilization-calculator) show how to measure yours, and [billable hours](https://www.brix.so/learn/billable-hours) explains what counts.

## 2. How do you spread overhead across jobs?

Spread overhead across jobs by dividing your annual overhead by the total billable hours your field team will sell in a year. That gives an overhead cost per billable hour you add to every job. Overhead is everything that isn't direct job labor or materials: the office, the trucks, insurance, software, marketing and your own salary.

**Overhead per billable hour**

```
Overhead rate = Annual overhead ÷ Total billable hours
```

> **Worked example: overhead**
>
> Total billable hours: 4 techs × 1,248 = 4,992 hours a year.
>
> Overhead per billable hour: $300,000 ÷ 4,992 = $60.10.
>
> If one tech quits and you run three trucks with the same overhead, the rate jumps to $300,000 ÷ 3,744 = $80.13. Overhead is why a slow season hurts so much.

Put your own salary in overhead at what you'd pay someone to do your job. If you leave it out, your "profit" is really your wage, and the business can't afford to replace you. [Overhead](https://www.brix.so/learn/overhead) breaks down what belongs in the number, and the [overhead rate calculator](https://www.brix.so/tools/overhead-rate-calculator) works it out from your P&L. Some contractors recover overhead as a percentage of direct cost instead of per hour. That's fine for material-heavy work, but per-hour recovery tracks reality better for service work, where time is what you sell.

## 3. What is your break-even hourly rate?

Your break-even hourly rate is your labor cost per billable hour plus your overhead per billable hour. Charge less than that and every job loses money, no matter how busy you are. It's the floor under every price you quote, and most owners have never calculated it.

> **Worked example: break-even**
>
> Break-even per billable hour: $67.50 labor + $60.10 overhead = $127.60.
>
> A shop in this position charging $110 an hour is losing $17.60 on every hour it bills, before materials. Volume makes that worse, not better.

The [break-even point](https://www.brix.so/learn/break-even-point) guide and [break-even calculator](https://www.brix.so/tools/break-even-calculator) show the same idea at the company level: how much revenue you need each month just to keep the lights on. The [contractor hourly rate calculator](https://www.brix.so/tools/contractor-hourly-rate-calculator) builds your rate from wage, burden, utilization, overhead and profit in one pass.

Interactive calculator: https://www.brix.so/tools/contractor-hourly-rate-calculator

## 4. How much profit should you add?

Add profit by dividing your break-even cost by one minus your target net margin, not by multiplying by a percentage. Dividing makes sure the margin you want is what's left after the sale. Many trades owners target a net profit in the 10% to 20% range, but pick a number that funds your goals: trucks, a cash cushion, growth.

**Price from a target margin**

```
Price = Cost ÷ (1 − Target margin)
```

> **Worked example: billable hourly rate**
>
> Target net margin 15%: $127.60 ÷ 0.85 = $150.12. Round to $150 an hour.
>
> Check: $150 − $127.60 = $22.40 profit per hour, which is 14.9% of $150. Close enough to target.
>
> The common mistake: $127.60 × 1.15 = $146.74. That's a 13% margin, not 15%. On 4,992 billable hours, the gap is about $17,000 a year.

Profit isn't greed. It pays for the van that dies in July, the slow January, and the next tech you hire before you can fully keep them busy. [Net profit margin](https://www.brix.so/learn/net-profit-margin) explains how to read yours, and [gross margin](https://www.brix.so/learn/gross-margin) covers the job-level number that has to be high enough to pay overhead.

## 5. How do you mark up materials?

Mark up materials to a target gross margin, using the same divide-by method as labor. Materials carry real cost beyond the invoice: buying time, truck stock, warehouse space, returns, warranty replacements and the cash tied up until the customer pays. A part sold at cost loses money.

**Markup vs. margin: the same price two ways**

| Markup on cost | Gross margin on price | Part costing $200 sells for |
| --- | --- | --- |
| 25% | 20.0% | $250.00 |
| 43% | 30.0% | $285.71 |
| 50% | 33.3% | $300.00 |
| 67% | 40.0% | $333.33 |
| 100% | 50.0% | $400.00 |

_Margin = markup ÷ (1 + markup). Computed figures; rounded._

Most shops use a sliding scale: high markup on cheap parts (a $4 fitting can go out at several times cost), lower markup on big-ticket equipment so the price stays competitive. Whatever you choose, write it down so every estimator prices the same part the same way. Use the [markup vs. margin](https://www.brix.so/learn/markup-vs-margin) guide and the [markup and margin calculator](https://www.brix.so/tools/markup-margin-calculator) to set your scale, and [markup](https://www.brix.so/learn/markup) for the basics. If you resell big equipment, read [cost of goods sold](https://www.brix.so/learn/cost-of-goods-sold) so your books match your pricing.

Interactive calculator: https://www.brix.so/tools/markup-margin-calculator

## 6. Flat rate, time and materials, or cost-plus?

Pick the pricing model that matches how predictable the work is. Flat rate suits repeatable service tasks. Time and materials fits work you can't scope until you open it up. Cost-plus fits larger projects where the customer accepts open books. Many shops use all three for different jobs.

**Which pricing model fits which work**

| Model | How it's priced | Best for | Watch out for |
| --- | --- | --- | --- |
| [Flat rate](https://www.brix.so/learn/flat-rate-pricing) | One price per task from a price book, regardless of time | Repeat service and repair tasks | Underpriced tasks repeat the loss on every call |
| [Time and materials](https://www.brix.so/learn/time-and-materials) | Hourly rate × hours + materials with markup | Troubleshooting, remodel unknowns, small commercial | Customers fear an open-ended bill; cap or estimate it |
| [Cost-plus](https://www.brix.so/learn/cost-plus-pricing) | Actual cost + a fixed fee or percentage | Custom builds, insurance work, large projects | Needs clean cost records the customer can audit |
| Fixed bid | One price for a defined scope | Installs, roofs, remodels | Scope creep; write a tight [scope of work](https://www.brix.so/learn/scope-of-work) and use [change orders](https://www.brix.so/learn/change-order) |
| [Good-better-best](https://www.brix.so/learn/good-better-best-pricing) | Three options at three price points | Replacements and upgrades | Options must differ in value, not just price |

Flat rate is built from the same numbers you already have. Estimate the task time at a normal pace, multiply by your billable rate, add materials at your markup, and round. The [flat rate pricing calculator](https://www.brix.so/tools/flat-rate-pricing-calculator) builds a price book line this way.

> **Worked example: a flat-rate water heater replacement (illustrative)**
>
> Labor: 4 hours at $150 = $600.
>
> Materials: $1,100 cost priced to a 30% margin: $1,100 ÷ 0.70 = $1,571.43.
>
> Flat price: $2,171.43, rounded to $2,175. Permit fees, if any, passed through at cost on a separate line.
>
> If the job takes 6 hours instead of 4, the extra 2 hours cost $255.20 at break-even ($127.60 × 2). The job still clears, but your margin shrinks. That's why flat-rate times must be realistic, not best-case.

## 7. How do you price by trade?

The method is the same in every trade, but the unit you price by changes. Roofers price by the square, landscapers by the visit or the yard, cleaners by the visit or square foot. Underneath, every unit price should still recover labor, overhead, materials and profit.

**Common pricing units and traps by trade**

| Trade | Typical pricing unit | What drives cost | Common pricing trap |
| --- | --- | --- | --- |
| HVAC | Flat-rate repairs; installs by system and tonnage | Equipment cost, crew hours, seasonal overtime | Pricing installs to match low bids, then losing on callbacks |
| Plumbing | Flat-rate repairs; T&M on hidden-pipe work | Truck stock, emergency hours, access | Waiving the trip charge to win the call |
| Electrical | Flat rate for service; per-device or bid for new work | Licensed labor, permits, inspections | Forgetting inspection and return-trip time |
| Roofing | Per square (100 sq ft), adjusted for pitch and layers | Tear-off, disposal, materials, crew size | Underestimating waste and steep-pitch labor |
| General contracting | Fixed bid or cost-plus with a fee | Subs, materials, supervision, schedule | Loose scope with no change-order process |
| Landscaping | Per visit, per season, or per sq ft for installs | Crew hours, fuel, equipment wear, dump fees | Ignoring drive time between small properties |
| Cleaning | Per visit, per room or per sq ft | Labor hours, supplies, turnover | Pricing by the hour without tracking real time per job |

Estimating quantities is half the battle in material-heavy trades. Use the [roofing calculator](https://www.brix.so/tools/roofing-calculator), [concrete calculator](https://www.brix.so/tools/concrete-calculator), [paint calculator](https://www.brix.so/tools/paint-calculator), [drywall calculator](https://www.brix.so/tools/drywall-calculator), [fence calculator](https://www.brix.so/tools/fence-calculator), [flooring calculator](https://www.brix.so/tools/flooring-calculator), [mulch calculator](https://www.brix.so/tools/mulch-calculator) and [gravel calculator](https://www.brix.so/tools/gravel-calculator) to get quantities, then run them through your margin math. Trade pages for [roofing](https://www.brix.so/for/roofing), [general contractors](https://www.brix.so/for/general-contractor) and [landscaping](https://www.brix.so/for/landscaping) go deeper on each.

## 8. How do you present the price so customers say yes?

Present the price as options, in writing, fast. A clear written quote with two or three options closes more often than a single number read over the phone, and the quote that arrives first often wins. Price confidence matters too: if you flinch, the customer negotiates.

1. **Quote the same day** Send the written quote before you leave the driveway if you can. Every day it waits, the customer gets another bid.
2. **Offer good, better, best** A repair, a repair plus upgrade, and a replacement. Many customers pick the middle. See [good-better-best pricing](https://www.brix.so/learn/good-better-best-pricing).
3. **Show what's included** List warranty, cleanup, permits and what happens if something unexpected turns up. Clarity beats a low number.
4. **Offer financing on big tickets** A monthly payment makes a $12,000 system easier to say yes to. The [customer financing calculator](https://www.brix.so/tools/customer-financing-calculator) shows payments.
5. **Follow up on every open quote** Most unsigned quotes die from silence, not price. See [how to follow up on an estimate](https://www.brix.so/learn/how-to-follow-up-on-an-estimate).

If you're unsure of the terms, [estimate vs. quote vs. bid](https://www.brix.so/learn/estimate-vs-quote-vs-bid) explains the difference, including which ones customers can hold you to. A strong [average ticket](https://www.brix.so/learn/average-ticket) and smart [upselling](https://www.brix.so/learn/upselling) raise revenue per call without raising your rate.

## 9. How do you know if your prices are working?

You know your prices work when job costing shows each finished job hit its target margin and your close rate stays healthy. Compare estimated hours and materials with actuals on every job. If margins come in low, your times or markups are off. If you win nearly every bid, you're probably too cheap.

**Pricing health checks (illustrative targets; set your own)**

| Metric | What it tells you | Where to learn more |
| --- | --- | --- |
| Job gross margin vs. estimate | Whether your times and markups are right | [Job costing](https://www.brix.so/learn/job-costing) |
| Close rate on quotes | Whether price or follow-up is the problem | [Close rate](https://www.brix.so/learn/close-rate) |
| Gross profit per hour | Which jobs and techs actually make money | [Gross profit per hour](https://www.brix.so/learn/gross-profit-per-hour) |
| Gross profit per truck | Whether each truck covers its share of overhead | [GP per truck calculator](https://www.brix.so/tools/gross-profit-per-truck-calculator) |
| Contribution margin by service | Which services to push and which to drop | [Contribution margin](https://www.brix.so/learn/contribution-margin) |

> **Worked example: job costing the water heater (illustrative)**
>
> Price $2,175. Actual: 6 labor hours at $67.50 = $405, materials $1,180 (a fitting and expansion tank were added), overhead 6 × $60.10 = $360.60.
>
> Total cost: $1,945.60. Profit: $229.40, a 10.5% net margin against a 15% target.
>
> Fix: bump the task time to 5 hours in the price book, and add the expansion tank as its own line.

Run the numbers on a few jobs a week with the [job costing calculator](https://www.brix.so/tools/job-costing-calculator), or set up job tracking in your books with [how to do job costing in QuickBooks](https://www.brix.so/learn/how-to-do-job-costing-in-quickbooks). The [job pricing calculator](https://www.brix.so/tools/job-pricing-calculator) is the quickest way to price a single job from labor, materials, overhead and margin.

Interactive calculator: https://www.brix.so/tools/job-pricing-calculator

## When and how should you raise prices?

Raise prices whenever your costs rise, your schedule is booked out, or job costing shows margins below target. Review your rate at least once a year when wages, insurance and supplier prices reset. Small, regular increases are easier for customers to absorb than one big jump after years of standing still.

- **Re-run the math yearly.** New wages, a new truck, higher insurance: each moves your break-even rate.
- **Raise first on new customers.** Existing maintenance customers can move at renewal with notice.
- **Lead with value.** Mention warranty, response time and licensed techs, not your costs.
- **Watch the close rate.** A small dip after a raise is normal. A collapse means you've overshot or your follow-up is weak.
- **Sell maintenance plans.** Recurring revenue smooths out slow months so you're not tempted to discount. See [maintenance agreements](https://www.brix.so/learn/maintenance-agreement) and the [maintenance agreement calculator](https://www.brix.so/tools/maintenance-agreement-calculator).

## Pricing checklist

- Calculated burdened labor cost from last year's payroll and insurance.
- Measured real utilization from timesheets, not a guess.
- Listed every overhead cost, including an owner's salary.
- Worked out break-even per billable hour.
- Set a target net margin and priced with Cost ÷ (1 − margin).
- Written a materials markup scale every estimator follows.
- Built flat-rate prices from realistic task times.
- Set a minimum trip or diagnostic charge.
- Send written quotes with options the same day.
- Follow up every open quote on a schedule.
- Job cost finished jobs weekly and fix the price book.
- Review rates at least once a year.

## Common pricing mistakes

- **Copying a competitor's price.** Their costs, crew and overhead aren't yours.
- **Multiplying instead of dividing.** Cost × 1.20 is a 16.7% margin, not 20%.
- **Pricing from wage, not burdened cost.** The gap between $30 and $67.50 is where the profit went.
- **Leaving out your own salary.** Profit should be on top of fair pay for your work.
- **Free estimates on everything.** For diagnostic work, charge a trip fee and credit it to the repair.
- **Discounting to fill the schedule.** A full schedule at a loss is worse than a lighter one at a profit.

BRIX builds quotes and estimates with options, follows up open quotes automatically by text and email, turns accepted quotes into invoices, and syncs everything to QuickBooks so you can see which jobs made money.

- [Quotes and estimates](https://www.brix.so/features/quotes-estimates): Builds accurate quotes on site and follows up on every open estimate.
- [Sales automation](https://www.brix.so/features/sales-automation): Follows up every lead and open estimate automatically by text and email, and asks every customer for a review after the job.
- [Invoicing and payments](https://www.brix.so/features/invoicing-payments): Turns finished jobs into invoices and politely chases unpaid ones until the money is in your account.
- [QuickBooks sync](https://www.brix.so/integrations/quickbooks): Syncs customers, invoices and payments with QuickBooks so the books match the jobs.

### Pricing tools and templates

- [Job pricing calculator](https://www.brix.so/tools/job-pricing-calculator): Price one job from labor, materials, overhead and margin.
- [Contractor hourly rate calculator](https://www.brix.so/tools/contractor-hourly-rate-calculator): Build your billable rate from the ground up.
- [Flat rate pricing calculator](https://www.brix.so/tools/flat-rate-pricing-calculator): Turn task times into price book lines.
- [Labor burden calculator](https://www.brix.so/tools/labor-burden-calculator): True cost of an employee hour.
- [Overhead rate calculator](https://www.brix.so/tools/overhead-rate-calculator): Overhead per billable hour.
- [Markup and margin calculator](https://www.brix.so/tools/markup-margin-calculator): Convert markup to margin and back.
- [Estimate template](https://www.brix.so/templates/estimate-template): A clean written estimate to send the same day.
- [Job costing spreadsheet](https://www.brix.so/templates/job-costing-spreadsheet): Compare estimate vs. actual on every job.
- [Quotes and estimates](https://www.brix.so/features/quotes-estimates): How BRIX builds and sends quotes.

## Frequently asked questions

### How do I calculate how much to charge for a job?

Add burdened labor cost, overhead for the hours the job takes, and materials at cost, then divide the total by one minus your target profit margin. For example, $1,000 of total cost at a 20% target margin is $1,000 ÷ 0.80 = $1,250.

### What is a good profit margin for a contractor?

Many trades owners aim for a net profit margin somewhere in the 10% to 20% range, and job-level gross margins far higher so they cover overhead. The right target depends on your overhead, risk and growth plans. Set it deliberately and check it with job costing.

### What is the difference between markup and margin?

Markup is profit as a share of cost; margin is profit as a share of price. A $100 part sold for $150 has a 50% markup but only a 33.3% margin. Quoting a markup when you meant a margin quietly underprices every job.

### Should I charge by the hour or a flat rate?

Flat rate suits repeatable service tasks because customers know the price up front and efficient techs earn you more. Time and materials suits work you can't scope until you open it up. Many shops use flat rate for service and T&M or bids for larger or uncertain work.

### How much should I mark up materials?

Enough to cover the real cost of buying, stocking and warrantying parts plus profit. Many shops use a sliding scale with higher markups on cheap parts and lower markups on expensive equipment. Write the scale down so every estimator prices consistently.

### Should I include my own salary when pricing jobs?

Yes. Put a market salary for your role into overhead. If you don't, your profit is really your wage, and the business can't pay someone to replace you or fund growth.

### How often should a contractor raise prices?

Review prices at least once a year and whenever wages, insurance or supplier costs jump. Small regular increases are easier for customers than rare big ones. A booked-out schedule and very high close rate are signs you're underpriced.

### Should I charge for estimates?

For diagnostic and repair calls, many shops charge a trip or diagnostic fee and credit it toward the repair. For large installs and replacements, free estimates are common in many markets. Track how many free estimates turn into jobs before deciding.

## Related

- [Job Pricing Calculator for Contractors](https://www.brix.so/tools/job-pricing-calculator)
- [How Much to Charge per Hour as a Contractor](https://www.brix.so/tools/contractor-hourly-rate-calculator)
- [Markup vs. Margin: What's the Difference?](https://www.brix.so/learn/markup-vs-margin)
- [What Is Labor Burden?](https://www.brix.so/learn/labor-burden)
- [What Is Overhead, and How Do Contractors Calculate It?](https://www.brix.so/learn/overhead)
- [What Is Flat Rate Pricing?](https://www.brix.so/learn/flat-rate-pricing)
- [What Is Job Costing?](https://www.brix.so/learn/job-costing)
- [Contractor estimating software that quotes on site and chases every open estimate](https://www.brix.so/features/quotes-estimates)
- [How to Grow a Home Service Business from $500K to $2M](https://www.brix.so/guides/grow-a-home-service-business)
- [How to Hire Technicians and Build a Pay Plan That Works](https://www.brix.so/guides/hire-and-pay-technicians)

## Sources

- [BLS, Employer Costs for Employee Compensation, Table 4 (June 2026)](https://www.bls.gov/news.release/ecec.t04.htm) (checked 2026-10-12)
- [BLS, Occupational Outlook Handbook: Heating, Air Conditioning, and Refrigeration Mechanics and Installers](https://www.bls.gov/ooh/installation-maintenance-and-repair/heating-air-conditioning-and-refrigeration-mechanics-and-installers.htm) (checked 2026-10-12)
- [U.S. Small Business Administration, Manage your finances](https://www.sba.gov/business-guide/manage-your-business/manage-your-finances) (checked 2026-10-19)

---
Written by BRIX Editorial Team. Last updated 2026-10-19.
Canonical: https://www.brix.so/guides/how-to-price-jobs
