How to Bid Sealcoating Jobs Without Guessing

Most sealcoating bids are written like this: look at the driveway, think about what the last one went for, and say a number. Sometimes you win and make money. Sometimes you win and lose money and don't find out until the sealer bill comes.

Here's the method that gets you a bid you can defend. You can do it on a notepad. Every number below is an example. Plug in your own costs. None of it is a market rate, and your market isn't ours.

Step 1: Measure the job

Everything starts with square footage. If the area is wrong, the bid is wrong.

Measuring the area

Write down the things that change the price

Step 2: Figure materials by coverage, not by feel

Sealer is bought by the gallon but used by the square foot. Get the coverage number from your product's data sheet, for your mix and your application method. Spray and squeegee don't go on the same.

The sealer formula

Mixed gallons = square feet × number of coats ÷ coverage (sq ft per mixed gallon per coat)

Example (plug in your own numbers): 1,200 sq ft, 2 coats, and an example coverage of 80 sq ft per mixed gallon per coat.
1,200 × 2 ÷ 80 = 30 mixed gallons

Then break the mixed gallons back into what you actually buy: concentrate, water, sand and additive, per your mix design. At an example $2.00 per mixed gallon, that's $60 in sealer.

Crack fill by the linear foot

Price crack fill by length, not by guess:

Pounds of filler = linear feet ÷ (linear feet per pound for your crack size)

Your filler's manufacturer publishes a chart of feet per pound at a given width and depth. If you'd rather do the math yourself: width (in) × depth (in) × 12 = cubic inches per foot of crack. Divide by 231 to get gallons per foot.

Example: 150 LF of crack, and the chart says 10 LF per lb at that size. That's 15 lb. At an example $1.40 per lb, it's $21. Round up to whatever you have to open: a box you open is a box you pay for.

Add primer for oil spots and any other consumables as their own lines.

Step 3: Cost the labor from your own production rate

Labor is where most bids leak. Don't use somebody else's square-feet-per-hour number. Use yours, from your last ten jobs.

Labor cost = crew size × hours on the job (including drive, setup, edging and cleanup) × loaded hourly cost

"Loaded" means wage plus payroll taxes, workers' comp and anything else you pay per hour worked.

Example: 2 people × 4 hours (3 on site + 1 drive and load) × an example $25 loaded = $200.

Add equipment and fuel: sprayer or squeegee rig, blower, crack machine, truck. Example: $40 for this job.

Step 4: Put overhead on every job

Overhead is everything you pay whether you work or not: insurance, phone, software, truck payments, the yard, your own salary for the hours you spend bidding.

Overhead per job day = yearly overhead ÷ days you actually work in a year

Example: $36,000 a year ÷ 180 working days = $200 per day. This job takes half a day, so $100.

Skipping this step is how a crew stays busy all season and has nothing left in December.

Step 5: Add it up, then price with margin, not markup

Example total cost:

LineExample cost
Sealer$60
Crack fill$21
Labor$200
Equipment and fuel$40
Overhead$100
Total cost$421

Margin vs. markup: the mistake that eats your profit

They aren't the same number. If you add 30% to your cost, you're not making 30%:

$421 × 1.30 = $547.30 → profit $126.30 ÷ $547.30 = 23% margin

To actually keep 30% of the price, divide:

Price = cost ÷ (1 − margin)
$421 ÷ 0.70 = $601.43 → profit $180.43 = 30% of the price

Markup on costThe margin you actually get
20%16.7%
30%23.1%
50%33.3%
100%50%

Turning it into price per square foot

$601.43 ÷ 1,200 sq ft = about $0.50 per sq ft for these example inputs. That number means nothing for your market. It's just what the made-up costs above produce. Run your own and you'll have a per-square-foot number you can defend, plus a minimum job charge for small driveways, where drive time and setup eat the margin.

So how much should you charge per square foot?

Whatever your costs, divided by (1 − the margin you need). Anyone who quotes you a flat "going rate" doesn't know your sealer price, your crew's pace, your drive times or your overhead. Use their number as a sanity check at most, and never as your price.

Bid it faster next time

Once you've done this by hand a few times, it's the same math on every job. The free sealcoating calculator runs it for you. For new asphalt, the asphalt tonnage calculator does the tons.

If you want the whole thing in one place, was built by a San Antonio paving contractor who bids this way:

See the sealcoating software page or pricing.

Start free, 14 days, no card →

FAQ

How do you bid a sealcoating job?

Measure the square footage, figure sealer gallons from your product's coverage rate and number of coats, price crack fill by the linear foot, cost labor from your own production rate, add equipment and overhead, then set the price with margin: cost ÷ (1 − margin).

How much should I charge for sealcoating per square foot?

There's no honest single answer. Work out your total cost for the job, divide by (1 − your target margin), then divide by the square footage. Your sealer price, crew pace, drive time and overhead set the number, not someone else's rate.

What's the difference between markup and margin?

Markup is a percentage added to cost. Margin is the percentage of the final price you keep. A 30% markup gives about a 23% margin. To keep 30% of the price, divide cost by 0.70.

How do I figure how much sealer I need?

Mixed gallons = square feet × coats ÷ coverage per mixed gallon per coat. Get the coverage from your product's data sheet for your mix and application method.

How do I price crack filling?

By the linear foot. Use the filler manufacturer's feet-per-pound chart for the crack size, multiply pounds by your cost per pound, and add the labor time for cleaning and filling.

Should I have a minimum charge?

Most contractors should. On a small driveway, drive time, setup and cleanup cost about the same as on a bigger one. A minimum keeps small jobs from losing money.