Skip to content
USUnited States

Contractor Pricing: Labor, Materials, Overhead, and Markup

Build each job price from your own labor, materials, overhead, and profit, then compare the finished job with the original scope.

Yes Foreman · September 27, 2026 · Guides

The crew reaches the site and finds that access will take longer than the quote allowed. Contractor pricing fails when labor, materials, overhead, and scope risk were never separated in the first place.

Build every price from the same cost stack. Name what each figure covers. After the job, compare the original price with the costs for that same scope.

Build contractor pricing from one cost stack

Start with a written scope. Record the work, quantities, finish, access, site conditions, customer responsibilities, and anything you have excluded. A vague scope produces a vague cost.

Build the price from these buckets:

  • Direct labor for the job
  • Direct materials and consumables
  • Subcontractors and rented equipment
  • Permits and other job-specific charges
  • Job overhead caused by that site
  • A consistent share of general business overhead
  • Profit added through a stated markup method

Profit is not the money left after forgotten costs appear. It belongs in the price after the cost stack is complete.

Use the same buckets on every quote. The figures will change. The structure should not. For a broader setup process, use the job pricing guide.

Choose the pricing structure before sending the document

Use a fixed price when you can define the scope, quantities, access, and result clearly enough to carry the delivery risk. Your quote should state exactly what that fixed price covers.

Use time-and-material pricing when the work cannot be measured reliably before it starts. State how labor time, materials, equipment, and other job costs will be charged. Do not call an open-ended figure a fixed price.

An estimate gives the customer an expected figure or range. A quote commits you to a defined price and scope, subject to its stated terms and approved change orders. Check the estimate and quote differences before choosing the document.

Do not copy another contractor's hourly charge. Their crew costs, travel, workload, equipment, office, and job mix are not yours. A market rate cannot prove that your job will make money.

Price labor from the time the job consumes

List the field tasks first. Assign the expected hours and the worker responsible for each task. Include setup, protection, installation, testing, cleanup, and closeout where the job requires them.

The wage is only part of labor cost. Use your own payroll and accounting records to identify employer-side payroll costs, paid time, benefits, and insurance costs tied to labor. Do not invent a flat loading because it sounds familiar.

Then deal with time that sits around the installation:

  • Travel to the job
  • Loading and unloading
  • Material collection
  • Site supervision
  • Customer handover
  • Return visits caused by the original scope

Charge traceable time to the job or recover it through a consistent overhead method. Do not bury it in both places. Labor and material pricing only works when each cost appears once.

Compare estimated hours with actual field hours after completion. If access took longer than assumed, update the next quote or tighten the access wording. Do not simply tell the crew to work faster.

Turn purchases into complete material costs

Start with the items that remain in the finished work. Add fasteners, sealants, connectors, protective materials, and other consumables when the job uses them.

Supplier invoices are not the whole material cost. Record delivery, collection, freight, disposal, and handling where the job caused those costs. Purchasing time belongs in labor, not inside the supplier price.

Keep subcontractors, equipment rental, and permit costs on separate lines. That makes overruns visible. It also stops a missed rental or disposal charge from looking like a material problem.

For permit and inspection questions, check with the local building department. Do not assume the requirements from the last ZIP code apply to the next site.

Separate job overhead from business overhead

Job overhead supports a particular job even though it is not installed in the finished work. Site fencing, temporary protection, dedicated equipment transport, parking, or a job-specific facility can belong here when that job caused the cost.

General business overhead keeps the company open across many jobs. Office payroll, yard costs, software, shared vehicles, accounting, and business licensing are examples. These costs still need to be recovered, but assigning all of them directly to one job distorts the result.

Choose an allocation method that fits your records. You might allocate shared overhead through productive labor hours, crew time, or another stable activity measure. Write the method down and use it consistently. Review it when your cost base changes.

For contractor license questions, check with your state contractor licensing board. For an electrical, plumbing, or mechanical trade license question, check with the relevant state or city licensing office. Keep each compliance cost in the bucket that actually caused it.

Apply contractor markup to a named cost base

Contractor markup is profit divided by cost. Margin is profit divided by selling price. They are not interchangeable.

Write the formulas beside your pricing sheet:

  • Markup amount = chosen cost base × markup rate
  • Selling price = included costs + markup amount
  • Markup = profit ÷ cost
  • Margin = profit ÷ selling price

Name the cost base. A markup applied only to materials produces a different result from the same markup applied to labor, materials, job overhead, and allocated business overhead. Do not switch bases between jobs without recording the change.

There is no standard markup that proves your price is right. Use your own cost records and required profit. Then check what margin the resulting selling price produces. The profit margin calculator can help you check the formulas without treating markup and margin as the same figure.

Put uncertainty into the quote before work starts

State assumptions about access, working hours, existing services, surface condition, and who clears the work area. List exclusions plainly. If chasing, patching, painting, disposal, or specialist access is excluded, say so.

Use an allowance for a specific item that has not been selected or measured. Name the item, what the allowance covers, and how a difference will be handled. Do not use one loose allowance to cover several unknowns.

Set the stop point. When site conditions or customer requests change the scope, stop the affected work. Write a change order. Record the price and any time effect. Get approval before continuing.

Worked example: Oak Street

These are sample currency units in a USD-formatted worked example, not a rate card.

R. Chen's job at 14 Oak Street covered a 150mm bathroom exhaust fan ducted through the roof and four LED downlights. Estimate E-1847 gave a range of 900–1,400. Quote Q-1847 fixed the defined scope at 1,105.

The ceiling was lined, and the quote excluded chasing. Extra cable and chasing were approved on site as a 160 change order. Invoice INV-1847 was therefore 1,265.

The higher invoice does not mean the original work became more profitable. It means approved work was added. Keep that change order and its costs separate from the original scope.

Check the completed job against the original price

Close the job by comparing like with like. Match the original quote with the labor, materials, subcontractors, equipment, job overhead, and allocated business overhead recorded for the original scope.

On the Oak Street job, the original quote was 1,105 and job cost was 850. Profit against the original quote was:

1,105 − 850 = 255

Margin was:

255 ÷ 1,105 ≈ 23%

Markup was:

255 ÷ 850 = 30%

Do not calculate profit from invoice INV-1847 at 1,265. The costs of the 160 change order are not given. Combining the higher invoice with the original job cost would overstate the result.

Review estimated and actual labor, material quantities, job overhead, missed receipts, and scope changes. Contractor pricing improves when the next quote uses the reasons behind the difference, not just the final total.

Yes Foreman can keep the quote, work details, costs, change order, and invoice attached to the same record through job tracking for contractors. That makes the post-job check easier without changing the pricing method itself.

Common questions

How much do contractors typically charge?

There is no useful universal charge to copy. Build your price from the job scope, your labor cost, current supplier costs, overhead, and required profit. Then test it against completed jobs from your own records.

What if one supplier invoice covers several jobs?

Split the invoice using the actual items or quantities assigned to each job. Put a genuinely shared cost into the appropriate overhead bucket. Never charge the full invoice to whichever job closes first.

Can I close the job before every cost is recorded?

Do not finalize the profit check while receipts, subcontractor bills, equipment charges, or labor entries are missing. Mark the job as awaiting costs. Close it only when the price and cost records cover the same scope.

Run this pre-start gate

Before you release the crew, check:

  • [ ] Scope, quantities, access, and finish are written down.
  • [ ] Labor uses expected time and your current cost records.
  • [ ] Materials include consumables and job-specific handling costs.
  • [ ] Job overhead and shared business overhead are separate.
  • [ ] The markup base, exclusions, allowances, and stop point are clear.
  • [ ] Every hour, receipt, invoice, and approved change has a job record.

That gives you a contractor pricing record you can test after completion. Send the quote only when every cost has a bucket and every unknown has a rule.

Put the next job in one place

Yes Foreman connects quotes, schedules, crews, timesheets and invoices for small field-service teams.