Job Costing

Concrete Contractor Job Costing: Yards, Crews, and Cycle Time

Ask a concrete contractor how a job is going and most will answer in yards poured. Ask how much money it made and the honest answer is usually "we will not know until the job book closes." The gap between those two answers is cycle time, and it is the single biggest lever on concrete margin that daily reporting rarely captures.

Published August 21, 2026 · 7 min read

Key takeaway

Concrete profitability tracks cycle time — form, pour, and finish days per section — more closely than it tracks total yardage. Cost by cost code (formwork, placement, finish, cure/strip) with crew-days as the unit, and a slipping cycle time will show up mid-job, not at closeout when the crew has already moved to the next slab.

Why yardage alone hides the real story

A concrete bid prices yards of concrete placed, but the cost structure behind that number is driven almost entirely by labor days per cycle — how many crew-days it takes to form, place, and finish a given section before moving to the next one. Two jobs pouring the same 2,000 CY foundation can have wildly different margins if one crew is cycling a section every 2.5 days and the other is taking 4, because the labor cost is a function of days on site, not cubic yards poured.

Tracking only "yards poured to date" against "yards budgeted" hides this completely. A job can look right on track by yardage while running a full day over cycle time on every section — and that day compounds across every remaining section in the schedule.

Cost codes structured around the concrete cycle

  • 03100 Formwork — Crew-hours and square feet of contact area formed, tracked separately from placement
  • 03200 Reinforcing — Tons or pieces of rebar set, often subcontracted but still worth its own code for schedule tracking
  • 03300 Cast-in-Place Concrete — Cubic yards placed, tied to actual truck tickets and pour logs
  • 03350 Finishing — Crew-hours by finish type (broom, float, stamped, polished), since finish labor does not scale linearly with yardage
  • 03390 Curing and Protection — Often overlooked as its own code, but cold-weather blankets, curing compound, and strip timing all carry real cost

The cycle time formula

Cycle time is measured in crew-days per repeatable unit — a footing section, a wall pour, a slab pour. The formula: Cycle Time = Total Crew-Days on a Section (form + place + finish + strip) / Number of Sections Completed.

If a bid assumed 3.0 crew-days per wall pour section across 20 sections (60 crew-days budgeted) and the crew has completed 8 sections in 28 actual crew-days, actual cycle time is 28 / 8 = 3.5 days per section — 17% slower than bid. At that rate, the full 20-section job will run roughly 70 crew-days instead of 60, a 10-crew-day overrun that a yardage-only report would not surface until the schedule visibly slips.

Crew rate: the other half of the equation

Cycle time tells you speed; crew rate (fully burdened cost per crew-day) tells you what that speed costs. A finish crew's day rate needs to include labor burden — payroll taxes, workers' comp, benefits — the same way any labor cost code should, since concrete finishing in particular carries workers' comp rates high enough to meaningfully change the true cost of a crew-day if burden is left out.

Multiplying cycle time by fully burdened crew rate gives the real cost per section, which is the number that should be compared to the bid's assumed cost per section — not compared to total job budget, which smooths over exactly the section-by-section drift that actually erodes margin.

Where daily reporting has to plug in

None of this is visible without daily, cost-coded entries: which section was formed, poured, or finished that day, by which crew, in how many hours, and (critically) whether the pour hit weather delays, truck-ticket short-loads, or rework from a bad finish. Field PM's <a href="/features/daily-reports">daily reports</a> capture pour logs and crew-hours by cost code from the field, and the <a href="/features/pm-dashboard">PM dashboard</a> turns that into a running cycle-time and cost-per-section view instead of a spreadsheet someone reconstructs after the job is already three sections behind.

Frequently asked questions

How do you calculate cycle time on a concrete job?+

Divide total crew-days spent on a repeatable pour section (forming, placing, finishing, and stripping) by the number of sections completed. Compare that actual cycle time to the cycle time assumed in the bid to see whether the crew is ahead, on pace, or falling behind.

Why does concrete job costing need separate cost codes for form, pour, and finish?+

Because each phase has a different labor rate, crew size, and productivity driver — formwork scales with contact square footage, placement scales with yardage, and finishing scales with finish type and crew skill, not yardage. Lumping them into one 'concrete labor' code hides which phase is actually driving a cost overrun.

What is the biggest hidden cost on a concrete job?+

Cycle time slippage is usually the biggest hidden cost, because a crew that is running slightly slower per section than bid looks fine on any single day but compounds across every remaining section in the schedule, turning a small daily gap into a large total overrun by the last pour.

Should curing and protection get its own cost code?+

Yes, especially for cold-weather or high-strength work — blankets, curing compound, heaters, and the labor to place and remove protection are real costs that get buried inside placement or finish codes if they are not tracked separately.

Run the numbers in the field, not the spreadsheet

Field PM turns daily reports into live job costing, productivity, and billing — built for self-perform contractors. 30-day free trial · no credit card · unlimited foremen, QA/QC, safety & subs always free.

Start free trial →

Rated by contractors on

Field PM reviews on CapterraField PM reviews on GetAppField PM reviews on Software Advice