How to Price a Concrete Job: Yards, Labor, and Margin
Price a concrete job by calculating cubic yards from thickness and area, costing the ready-mix, forms, rebar, gravel base, and finishing materials at what they actually cost you, adding loaded labor for prep, pour, and finish, plus a share of overhead, then a margin on top. The formula is Price = (materials + loaded labor + overhead) ÷ (1 − target margin). What sinks most concrete bids is not the concrete. It is the excavation, the base prep, and the finishing hours that happen before and after the truck leaves. CRMb prices materials at real average cost and pulls labor from your crew's punch-ins, so the quote you send is built on measured numbers.
Concrete is the trade where the customer thinks they are buying a product and you are actually selling a schedule. They see a flat gray slab and a price per square foot. You see a day of excavation, a day of forming and steel, a pour that has to happen on a specific morning, and a finish window that does not negotiate. Two contractors quote the same driveway and land thousands apart, and the ready-mix ticket is almost never the difference.
The six cost layers in every concrete job
Driveway, patio, slab, sidewalk, or footings, the price rests on the same layers:
- Excavation and base, the digging, hauling, gravel, and compaction under the pour.
- Forms and reinforcement, lumber or forming systems, stakes, rebar or mesh, chairs, and vapor barrier.
- Ready-mix, the yards themselves plus short-load fees, mix upgrades, fiber, admixtures, and waiting time on the truck.
- Labor, the loaded hourly cost of everyone on site across prep, pour, finish, and stripping forms.
- Finishing and protection, broom or stamp work, control joints, sealer, curing blankets, and cleanup.
- Overhead, the share of trucks, mixers, saws, power tools, insurance, and office time this job carries.
Skip a layer and you are not being competitive, you are funding part of the customer's project. The layers that leak most are excavation, because the ground never matches the assumption, and finishing, because it is priced by the square foot and paid for by the hour.
Step 1: calculate the yards, then order for reality
Volume is the one part of concrete pricing that is pure arithmetic, so get it exactly right and spend your judgment elsewhere.
Cubic yards = length (ft) × width (ft) × thickness (ft) ÷ 27.
A 20-by-30 driveway at 4 inches thick is 20 × 30 × 0.333 ÷ 27 = 7.4 yards. At 5 inches it is 9.3 yards. That inch of extra thickness is a quarter more concrete, and on a driveway that will see a loaded truck it is not optional.
Then adjust for what the math misses:
- Overage. Subgrade is never perfectly flat, and a low spot drinks yards. Most crews add 5% to 10%. Running short mid-pour is the single most expensive mistake on the job.
- Thickened edges and footings. Perimeter thickening, turndowns, and pier footings add volume that the slab calculation ignores.
- Short-load fees. Under a full truck, the plant charges for the privilege. Know the threshold and price it.
- Waiting time. Trucks charge past a set unload window. A crew that cannot keep up with the truck turns into a line item.
Quote the field of the slab per square foot if that is how you work, then add excavation, thickened edges, steel, and finish upgrades as their own lines. A number that is only area times a rate will be short exactly where the work is.
Step 2: price excavation and base honestly
Base prep is where concrete bids go to die. The slab is a known quantity. The dirt underneath is not.
- Depth of cut. Removing 8 inches across a driveway is real volume, and it has to go somewhere. Haul-off is trucks, fuel, and dump fees.
- Soil conditions. Clay, rock, roots, and wet ground each turn a morning of digging into a full day. Ask what came out of the neighbors' yards.
- Gravel and compaction. Base rock by the ton, spread and compacted in lifts. Skimp here and you get cracks and a callback.
- Access. If the truck cannot reach the pour, you are buying a pump, a buggy, or wheelbarrows and bodies. Price the pump before you promise the price.
- Demo. Breaking out an old slab and hauling it is its own job, priced separately, and it fills a trailer faster than anyone expects.
Walk the site before you quote. A number written from a phone call is a guess about ground you have not seen.
Step 3: cost materials at real average cost
Form lumber, stakes, rebar, mesh, chairs, vapor barrier, fiber, sealer, and curing blankets are not glamorous, but they add up on every pour, and they are where a stale price list quietly eats margin. Steel moves with the market. Ready-mix gets repriced. A number you remember from last season is not what you will pay this week.
Value materials at average cost, the running average of what you actually paid across recent purchases, rather than a sticker price or a memory. The rebar you bought two deliveries ago and the rebar you bought last week both land on the job at their true blended cost.
CRMb tracks inventory at average cost across your warehouse and truck stock, and when material is pulled to a job its real cost lands on that job automatically. Form lumber deserves particular attention: it is reusable until it is not, and a crew that treats every job as new lumber is costing you a line you never priced.
Step 4: build the loaded labor rate, then use real hours
The wage you pay is not what an hour of labor costs you. The loaded rate adds payroll taxes, workers' comp, and any benefits on top of the base wage. A finisher at a $30 base wage can cost you $39 to $43 an hour once burden is on. Quote at the base wage and you give away the burden on every hour of a three-day job.
Then the harder half: the hours. Concrete labor is front-loaded and back-loaded, and the pour itself is the short part.
- Prep days. Excavation, base, forms, and steel are usually more crew hours than the pour.
- Pour day. Everyone is on site, nobody is doing anything else, and the clock belongs to the concrete.
- Finish. Floating, troweling, broom or stamp, and joints happen on the slab's schedule, not yours. Hot weather compresses it, cold stretches it, and neither is in your estimate.
- Strip and clean. Pulling forms, cleaning tools, hauling debris, and sealing come after the customer already thinks the job is done.
This is why estimating from memory drifts. The honest way to price the next pour is to know what the last one actually took. When your crew punches in and out on the job with CRMb, those real hours flow into the job's labor cost automatically, so your estimate is anchored to measured time. After a handful of driveways you know your true crew-hours per yard for a flatwork pour versus a stamped patio with a complicated perimeter.
Step 5: add overhead, then margin
Overhead is the cost of being in business that no single job pays for on its own: the truck, the mixer, saws and screeds, power trowels, insurance, fuel, and the hours spent quoting and scheduling. Fold a share of it into every quote as a percentage of direct cost. Otherwise your "profit" is unassigned overhead, and it disappears at tax time.
Margin is the last layer, and it is not markup. Markup is what you add to cost; margin is the share of the final price that is profit. To hit a target margin, divide total cost by one minus the margin instead of adding a percentage on top:
Price = (materials + loaded labor + overhead) ÷ (1 − target margin)
For a driveway that costs you $6,500 all-in at a 30% target margin, the price is $6,500 ÷ 0.70 = $9,286, not $8,450. Add 30% on top instead and you only make a 23% margin. That gap is more than eight hundred dollars on one pour, and it repeats on every job you price the same way.
Step 6: put weather and the pour date in writing
Concrete is the one trade where the calendar is a cost. A pour scheduled for Thursday and rained out is a truck you may still owe for, a crew that showed up, and a slot in next week's schedule that something else wanted. Cold pours need blankets or admixtures; hot pours need earlier starts and more hands.
Write the weather contingency into the quote: what happens if the pour is postponed, who absorbs the reschedule, and what a cold-weather mix costs. Customers accept a clear clause far more easily than a surprise line on the invoice.
Price change orders the same way. If the excavation hits rock or the customer decides mid-job that the patio should be stamped instead of broomed, that is a change order with its own price and its own approval, not a favor you absorb.
Step 7: send a quote that closes, then check the real margin
An itemized quote that separates excavation and haul-off, base, forms and steel, concrete yards, finish, and sealer reads as professional and answers the "why so much?" call before it happens. With CRMb you build the quote from the materials and labor already on the job, send it as a public share link the customer can open and approve from their phone, and turn the approved quote into an invoice without retyping a line.
The estimate is a prediction. The only way to price the next pour better is to check whether this one made the money you thought. CRMb reports margin on real punched hours and real material cost, so you can see which pours beat the estimate and which bled. If stamped work keeps landing under margin while flatwork holds, you learn to price finish complexity higher before you lose money on the next patio.
FAQ
How much should I charge per square foot for concrete?
There is no single rate, because square footage does not describe the job. Thickness, reinforcement, excavation depth, soil conditions, site access, and finish type all change the cost per foot substantially. Price the field of the slab per square foot if it helps you quote quickly, then add excavation, haul-off, thickened edges, steel, and finish upgrades as separate lines.
How do I calculate how many cubic yards of concrete I need?
Multiply length in feet by width in feet by thickness in feet, then divide by 27. A 20-by-30 slab at 4 inches is 20 × 30 × 0.333 ÷ 27 = 7.4 yards. Add 5% to 10% for subgrade variation, and add the volume of any thickened edges, turndowns, or footings separately.
Why do concrete jobs lose money on excavation?
Because the ground is the one part of the job you cannot see when you price it. Rock, clay, roots, buried utilities, wet conditions, and haul-off distance each turn a half-day of digging into a full day of crew hours plus dump fees. Walk the site, ask what neighbors ran into, and price haul-off as its own line.
Should stamped or decorative concrete be priced separately?
Yes. Stamped, colored, and exposed-aggregate finishes add release agents, color, sealer, and a meaningful number of finishing hours on a clock the concrete controls. Quote the base pour and the decorative finish as separate line items so the customer sees the real difference instead of asking you to absorb it.
What margin should a concrete contractor target?
Many contractors aim somewhere in the 20% to 35% range depending on competition and job complexity. What matters more than the target is measuring real cost, materials at true average cost and labor from actual punched hours, so the margin you set is the margin you keep.
How should I handle a rained-out pour?
Put it in the quote before it happens. State what triggers a reschedule, how much notice each side gives, and who covers a cancelled truck or a cold-weather mix. A written contingency turns a weather day into an expected event rather than an argument about an invoice.
Getting started with CRMb
CRMb is built for service businesses that want to price from real numbers instead of guesses. Track materials at average cost across your warehouse and truck stock, pull crew labor straight from punch-ins, build and send quotes as public share links your customer can approve, turn them into invoices in a tap, and see margin on every job after it closes. Start a 14-day free trial and price your next pour on measured numbers.