# How to price a contracting job: labor, materials, markup, and travel

Contractors price a job as loaded labor plus materials plus travel, then markup. The number that matters is not “what the guy down the road charges.” It is your cost to put a tech on site for an hour, times the hours the job actually takes. CostSnap drafts a local range from photos; you still apply that formula.

**In short**

- Price = (hours × loaded labor rate) + materials + travel & disposal + markup.
- Loaded rate includes wages, payroll tax, insurance, truck, and downtime — not take-home wage.
- Markup is added on cost; margin is profit as a share of the selling price.
- Many service shops land in a 30–50% markup band after a true loaded rate. Your overhead sets the floor.
- AI should draft hours and a local materials range. You set the price.

## The formula

Price = (hours × loaded labor rate) + materials + travel & disposal + markup.

Write assumptions under the total. If a condition is not visible, it is excluded or an allowance.

Wage surveys (for example the U.S. [Bureau of Labor Statistics construction and extraction occupations](https://www.bls.gov/ooh/construction-and-extraction/home.htm)) are a wage floor, not a loaded rate or a bid. The U.S. [Small Business Administration](https://www.sba.gov/business-guide/manage-your-business/price-your-products-services) likewise treats price as cost plus the profit you need — not a copied competitor number.

## Loaded labor rate

A loaded rate is what one billable hour actually costs the shop:

- Wages and overtime
- Payroll tax, workers’ comp, liability, benefits
- Truck, fuel, phones, software, shop rent — spread across billable hours
- Non-billable time (drive, supply house, callbacks)

Paying $35/hour and ignoring the rest is often closer to $70–$110 loaded in North American service trades, sometimes more in high-cost cities. Then set a selling rate that covers loaded cost plus needed profit. Do not invent a new rate on every lead.

## Materials

Price what you will buy for this job, at the price you actually pay, then mark it up. Avoid last year’s book, forgotten tax/freight, and a single “materials” lump.

## Markup vs margin

They are not the same. Markup is added on top of cost. Margin is profit as a share of the selling price.

| Job cost | Markup | Price | Margin |
| --- | --- | --- | --- |
| $1,000 | 25% | $1,250 | 20% |
| $1,000 | 33% | $1,330 | ~25% |
| $1,000 | 50% | $1,500 | ~33% |

Many service contractors land in a 30–50% markup band after a true loaded rate. Remodel, warranty-heavy, or poorly defined work often needs more.

## Travel

Use a visible trip charge **or** fold drive time into labor — not both silently. For photo quotes, price the address you were given.

## Should AI set the price?

No. AI is good at a first-pass scope and a local fair range from photos and a postal code. It is bad at knowing your plumber’s true loaded rate or that this client always adds a half-bath mid-job.

[CostSnap](https://costsnap.app/) is built around that split: the model drafts from photos; you apply catalog, markup, and travel; you send the bid.

## FAQ

**How do contractors price a job?**  
Most profitable shops use: (labor hours × loaded hourly rate) + materials + travel/disposal + markup. Loaded rate includes wages, payroll tax, insurance, truck, and downtime — not just what you pay a tech. Markup is added on cost; margin is profit as a share of the selling price.

**What is a typical contractor markup?**  
It varies by trade, market, and risk. Many service contractors target a 30–50% markup on job cost (roughly 23–33% margin) after a true loaded labor rate. Remodel and specialty work often needs more. Copying a neighbor’s percentage without knowing your overhead is how shops go broke on “busy” months.

**Should AI set the price on a contractor quote?**  
No. AI should draft hours and a local materials range. You apply your catalog, markup, and travel. CostSnap works that way: photo-based draft, then your rates, then a branded quote you send.

HTML: https://costsnap.app/blog/how-to-price-a-contracting-job.html
Related: https://costsnap.app/blog/quote-a-job-from-photos.md
