Skip to main content

Business

Pricing paving work for profit: start from the margin you need

Adding a percentage to your costs only works if you know what your overhead really is. Pull it from last year's books, set a margin floor, and price every job against it.

4 min read

Most contractors price by adding up the job's costs and putting a percentage on top. That works if the percentage is right. Often it was set years ago, and nobody's checked it against what the office, the insurance and the trucks cost now.

Here's how to find the number your prices actually need to clear.

Find your real overhead rate

Overhead is everything that isn't a cost of a specific job:

  • Office staff, and the owner's pay if it isn't charged to jobs
  • Insurance not charged to jobs
  • Rent, the yard and utilities
  • Trucks and equipment that aren't charged to jobs
  • Software, phones, accounting and legal
  • Marketing

Pull last year's profit and loss statement. Add up the overhead, and divide by last year's revenue.

Overhead rate = total overhead ÷ total revenue

Say you did $2,000,000 in revenue and overhead came to $360,000. Your overhead rate is 18%.

If you've been assuming 12%, every price you've sent has been 6 points thinner than you thought.

Set the margin every job has to clear

Decide what net profit you need the business to make. That's your call. It has to pay for the risk you take, the equipment you'll replace and the bad year you'll eventually have.

Required gross margin = overhead rate + target net profit

With 18% overhead and a 10% target, the margin floor is 28%.

Every job has to reach that on its own direct costs: material, crew labor with burden, equipment, trucking and subs.

Turn cost into price

Price = direct cost ÷ (1 − required margin)

A job with $10,000 of direct cost at a 28% margin: $10,000 ÷ 0.72 = $13,889.

Markup is a different number. Price = cost × (1 + markup) uses markup on cost. To get a 28% margin you need a markup of about 38.9% (28 ÷ 72). Adding "28%" to your costs only gets you a 21.9% margin.

Margin you need Markup on cost that gets you there
20% 25%
25% 33.3%
30% 42.9%
35% 53.8%

If your estimating tool or spreadsheet asks for a markup, convert first: markup = margin ÷ (1 − margin).

When a price comes in under the floor

Sometimes you'll want the job anyway: to fill a slow week, to get in with a property manager, or because a plant price change squeezed an old proposal. That's a business decision. Make it knowing the number, not by accident.

Watch for these, which quietly push jobs under the floor:

  • Labor hours that run over the estimate on the same kind of job, every time
  • Material overruns from a waste allowance that's too low
  • Change orders not written, or written and never billed
  • Equipment transport and setup left off small jobs

Check it every year

  • Recalculate the overhead rate from the new P&L each winter.
  • Update plant prices, sealer prices and wage rates before the season starts.
  • Look at finished jobs against their estimates, by type of work. When the same line runs over on every job of one type, that's the estimate, not bad luck.

Pavr is estimating and job software for paving, sealcoating, striping and concrete contractors. Enter your overhead and profit targets once, and estimates start from the markup they add up to. Try it free →

Measure your next lot and price it tonight

Try Pavr free for 14 days. No credit card.