For contractors Business owners What to charge Job profit

Contractor Job Pricing / Job Profit Calculator

Build a customer price for this job that recovers labor, materials, trip time, contingency, allocated overhead, and your target net margin — then see profit $ and realized margin %. For owners setting a bid or estimate — not for homeowners shopping “cost of service.”

Price this job

Labor rate mode
Cost-up: labor $/hr is loaded labor cost; OH + contingency + margin apply at job level. Bill-rate: hours × bill rate (OH+margin already in the rate) — job margin applies to materials + extras only.
Total labor hours = hours × crew.
Direct loaded labor cost — not your bill rate. Required when hours > 0; optional for materials/travel-only (hours = 0). Use the hourly-rate tool if you need to build a bill rate first.
Blank ≠ $0. Used for true job profit when bill-rate mode is on.
v1 default: materials enter at cost; one job-level margin covers them.
Enter percent points (10 for 10%, not 0.10). Applied to direct costs (cost-up) or extras only (bill-rate).
Margin-on-price: price = cost ÷ (1 − margin). Enter 20 for 20%, not 0.20.
Additive only: price_with_tax = price × (1 + tax). Blank = omitted (not zero). Not tax advice.
Job overhead
Materials packaging
v1 recommendation: materials at supplier cost inside the cost stack; one job-level margin. Alternate: mark up/margin materials first, then job margin on the rest.
Suggested customer price
Net profit $
Realized margin %
Equivalent markup % on cost
Total cost (profit basis)
Effective $/labor hour
Labor line
Materials
Travel (labor + cash)
Contingency
Overhead
Labor mode
Double-count guard

Self-serve math for business owners. Tax, insurance, and burden figures you enter are yours; presets are examples only, not recommendations or advice. No consulting or custom estimates.

Methodology

A) Cost-up mode (default)

1. labor_cost = total_labor_hours × labor_cost_per_hour 2. travel_cost = drive_hours × labor_cost_per_hour + fuel_travel_cash 3. materials_cost = material_supplier_cost (v1: at cost in stack) 4. direct_cost = labor + travel + materials 5. contingency = direct_cost × contingency_pct 6. cost_before_oh = direct + contingency 7. overhead = cost_before_oh × oh_pct (or fixed $) 8. total_cost = cost_before_oh + overhead 9. customer_price = total_cost / (1 − m) // margin-on-price 10. profit = round2(price) − round2(total_cost)

B) Bill-rate mode (handoff from hourly-rate tool)

1. labor_line = (labor_hours + drive_hours) × bill_rate // bill_rate already embeds wage→burden→util→OH→margin from P1 2. extras_direct = materials_cost + fuel_travel_cash 3. contingency + overhead apply to extras only (not labor_line) 4. extras_price = extras_cost / (1 − m) 5. customer_price = labor_line + extras_price 6. profit uses cost_per_billable for labor cost basis when provided

Double-count guard: when bill-rate mode is on, this calculator does not re-apply full job overhead % + full margin on the labor line. Margin applies to materials + extras only. See the warning banner when that mode is active.

Build your bill rate first with the contractor billable hourly rate calculator, then use Pass to job pricing to hand off bill_rate, cost_per_billable, and margin.

Worked examples

Cost-up (fictional service job)

InputValue
Labor hours10
Labor cost $/hr$50.00
Materials$500.00
Contingency10%
Overhead10%
Target margin20%

Direct $1,000 → contingency $100 → before OH $1,100 → overhead $110 → total cost $1,210.00 → customer price $1,512.50 → profit $302.50 (20% margin; equiv. markup 25%).

Bill-rate handoff (same job, P1 rate)

InputValue
Labor hours10
Bill rate$125.00/hr
Cost per billable$100.00/hr
Materials$500.00
Contingency / OH / margin10% / 10% / 20% on extras only

Labor line $1,250 → extras cost $605 → extras price $756.25 → customer price $2,006.25 → profit $401.25 (labor cost basis $1,000 + extras $605 = $1,605). Guard prevents margining the $1,250 labor line again.

Assumptions

Common mistakes

FAQ

How do I price a job as a contractor?

Stack recoverable costs (labor, materials, travel, contingency, overhead), then set customer price with margin-on-price: price = total_cost ÷ (1 − target margin). This tool does that math for you.

What’s the difference between cost-up and bill-rate mode?

Cost-up starts from loaded labor cost and applies OH + margin at the job level. Bill-rate multiplies hours by a sell rate that already embeds OH + margin on labor; job margin then applies only to materials and extras.

How does this connect to the hourly rate calculator?

Use the hourly-rate tool to build a bill rate, then “Pass to job pricing” sends bill_rate, cost_per_billable, and margin as URL params into this page.

Why isn’t job margin applied to the labor line in bill-rate mode?

Because that would double-count profit (and usually overhead) already baked into the bill rate. The double-count guard keeps margin on materials + extras only.

Is this a bid or an estimate tool from BUILDER?

Neither as a service — it’s a self-serve calculator so you can compute what to charge. No custom estimates, coaching, or consulting.

Is this for homeowners checking contractor prices?

No. This page is for contractors and home-service business owners deciding what to charge and checking job profit. It is not a “cost of remodel / cost of plumber” shopping tool.

Can I run a materials-only job?

Yes — set labor hours to 0 (or leave blank) and enter materials and/or travel cash. Labor cost $/hr and bill rate are optional in that case (labor line = $0). You’ll see a materials-only warning. Hours > 0 still requires a labor rate. Hours = 0 with no materials/travel still blocks.