Toolshed Systems

Concrete Job Costing Spreadsheet: How to Price Pours Without Losing Money on Truck and Pump Time

Most concrete bids start with a per-yard number pulled from memory: "driveways run about $8/sq ft." That number worked on a past job with a short haul and no pump, then gets reused on a job with a 45-minute truck wait and a boom pump — and the job quietly loses money. The fix isn't a better guess. It's a job costing method that loads every cost category into the bid before you quote it.

Step 1: Break the job into cost categories, not one lump sum. For a single pour, track five buckets separately:

  • Concrete material (yards × price per yard, including any short-load fees)
  • Mixer truck time (hourly rate × hours on site, including wait time)
  • Pump rental + operator (flat fee or hourly, plus minimum charges)
  • Finishing crew labor (hours × crew rate, not just "one day's pay")
  • Equipment wear/fuel for your own gear (screeds, vibrators, saws)

Step 2: Run a real example. Say you're pouring a 30×40 driveway at 4 inches thick, roughly 15 yards of concrete.

  • Concrete: 15 yards × $145/yard = $2,175
  • Truck time: 2 trucks, 1.5 hours each on site (including wait) × $150/hr = $450
  • Pump rental: flat $650 + $95/hr operator × 3 hrs = $935
  • Finishing crew: 3 workers × 6 hours × $35/hr = $630
  • Equipment/fuel: flat $75

Total direct cost: $2,175 + $450 + $935 + $630 + $75 = $4,265

Step 3: Compare that to a gut-feel bid. A per-yard guess of $8/sq ft on 1,200 sq ft = $9,600, which sounds fine — until you realize the contractor never separately priced the pump or the truck wait time, and on a bad day (extra wait, an extra pump hour) the true cost creeps to $4,700 while the crew still thinks the job made money because the invoice total looked big.

Step 4: Add markup on top of true cost, not on top of a guess. If your target margin is 20%, you divide total cost by (1 − 0.20): $4,265 ÷ 0.80 = $5,331 minimum bid — not $9,600 pulled from a gut number, and not a bid that silently absorbed pump and wait-time costs.

Step 5: Track variance per job. After the pour, log actual truck hours, actual pump hours, and actual crew hours against your estimate. If pump time ran 4 hours instead of 3, that's a $95 gap you can spot immediately and fold into your next similar bid — instead of noticing six months later that driveway jobs never seem to pay as well as slabs.

This only works if every job gets logged the same way, with the same categories, every time. A notepad guess can't hold five cost buckets across dozens of jobs. Full contractor ERP software can, but it's built for scheduling, invoicing, and payroll — way more than a small crew needs just to price a pour correctly.

A spreadsheet built for this needs to compute: cost per yard delivered (including short-load fees), truck cost per job based on hours on site, pump cost per job (flat + hourly operator), finishing labor cost by crew size and hours, total direct cost per job, and a markup calculation that converts direct cost into a minimum bid at a target margin — plus a place to log actual vs. estimated hours so bids improve over time.

Try the free Lite version →

Get the full tool →