← Back to blog

How to bid a concrete job (without leaving money on the table)

9 min read · April 2026

Concrete is one of the most-bid, most-undercharged trades in residential construction. The math looks simple — square footage × price per square foot — and that's exactly why so many concrete contractors are barely breaking even. The simple math hides three or four real costs that homeowners don't see and you forget to charge for.

Here's the full walkthrough for bidding a residential flatwork job (driveway, patio, sidewalk, garage floor) without leaving money on the table.

Step 1: Get the right measurements

Walk the site. Don't trust the homeowner's number. "It's about 600 square feet" usually means 720. Measure twice, in feet, and write it down on your phone or tape.

Step 2: Convert to yards of concrete

Concrete is sold by the cubic yard. Cubic yard = 27 cubic feet. The formula:

yards = (length_ft × width_ft × depth_in / 12) / 27

Example: a 30′ × 20′ patio at 4″ thick = (30 × 20 × 4 / 12) / 27 = 7.4 yards. Always order 5-10% over for waste, spillage, and uneven base — bump that to 8 yards minimum.

Short on a pour is the most expensive mistake in flatwork. Order 8% extra and you'll never short a slab. The leftover is cheaper than a return trip.

Step 3: Price the concrete itself

Local ready-mix prices vary $130–$185/yard in 2026. Get a current quote from your supplier before bidding. Add delivery fee (often $50-150 short load fee under 7 yards), pumping if needed (~$500-1500), and weekend or after-hours surcharges if applicable.

Step 4: Don't forget the prep + finish costs

This is where small contractors leak margin. The slab itself is maybe 35% of the job cost.

Prep work (often $1.50-3.50/sqft)

Finish work (often $1-3/sqft on top)

Step 5: Labor

Labor on residential flatwork typically runs 8-15 man-hours per yard for standard finishes. Decorative work (stamped, colored, exposed aggregate) can be 25+ hours per yard. Use your true loaded rate (wage + payroll tax + workers comp + vehicle) — usually $55-85/hr depending on market.

labor_cost = yards × hours_per_yard × loaded_hourly_rate × crew_size_factor

If your crew is 3 guys, multiply by 3. Most contractors quote labor like they're working alone. They're not.

Step 6: Add the hidden costs

  1. Permit + inspection. Some municipalities require permits for over 200 sqft. $50-300.
  2. Disposal/dump fees. Old concrete = $40-80/ton at most yards.
  3. Insurance + bond. Bake into your overhead rate.
  4. Site protection. Plywood for tracking, cones, signage.
  5. Weather risk. If you have to come back to re-broom or seal because of rain, that's your time.

Step 7: Apply your real margin

Sum all the above. That's your COST. Now price for margin, not markup. (Why? Read the markup vs margin breakdown.)

price = cost ÷ (1 − target_margin)

For residential flatwork, target 30-40% margin minimum. Concrete is hard, weather-dependent, and physically punishing — your number deserves the headroom.

Worked example

30′ × 20′ broom-finish patio, 4″ thick, no demo, basic prep:

That's the right number for that job, in most US markets, in 2026. Round to $14,500 and quote it. Anyone bidding $9,000 is losing money. Anyone bidding $11,000 is breaking even and calling it good.

One more thing

Concrete jobs are exactly the kind of work where AI photo estimating shines. Snap a picture of the slab area, the AI pulls dimensions and material, you tweak labor + finish, and you've got a price in 90 seconds while you're still standing in the driveway.

Bid concrete jobs in 90 seconds

RateForge has concrete pricing dialed in for residential flatwork.

Join the waitlist