Job Costing
Civil Contractor Job Costing: Earthwork, Utilities, and Paving
A civil estimator bids in units: dollars per cubic yard of cut, dollars per linear foot of pipe, dollars per ton of asphalt placed. But once the job starts, a lot of contractors slide back into tracking cost the way a building trade would — hours and dollars by phase, with the unit production buried in a superintendent's notebook. That gap is where heavy-civil margin disappears.
Published August 14, 2026 · 8 min read
Key takeaway
Cost civil work the way you bid it: track cost per unit — CY moved, LF installed, tons placed — not just dollars per phase. Pair unit-cost tracking with daily production quantities and you catch a fading crew or an underbid haul distance while there is still schedule left to fix it.
Why civil costing has to be production-based
In earthwork, utilities, and paving, the estimate is built on production rates: an excavator moving X cubic yards per hour, a crew installing X linear feet of storm pipe per day, a paving train placing X tons per shift. The bid price per unit only holds if the field production rate holds. If a crew is moving dirt at 70% of the estimated rate, the job is losing money in real time, whether or not anyone notices for another three weeks.
The problem with phase-level costing ("Earthwork: $340,000 spent of $500,000 budget") is that it tells you what you have spent, not what you have gotten for it. Two jobs can show the same 68% of budget spent with wildly different outcomes — one has moved 68% of the dirt, the other has moved 45% because of unexpected rock. Only unit-based tracking tells them apart.
Cost codes built around civil units
The fix starts with cost codes structured by unit of production, not just by trade phase. A few examples:
- •02200 Earthwork — Cut, tracked in cubic yards (CY) moved per day against a bid rate of $/CY
- •02510 Water Utilities — Pipe installed, tracked in linear feet (LF) by size and material
- •02530 Sanitary Sewer — Manholes set (each) plus pipe LF, since manhole installs do not scale linearly with footage
- •02740 Paving — Asphalt or concrete placed, tracked in tons or square yards (SY)
- •02930 Erosion Control — Often a lump-sum or per-acre code since production units do not map cleanly here
The formula: earned value from unit production
The core civil job-cost calculation is the same earned-value logic used across construction, just anchored to a physical unit instead of a percent complete estimate. For a cost code with a bid unit price:
Earned Value = Units Completed x Bid Unit Price. If a storm sewer code was bid at 2,400 LF for $180,000 ($75/LF) and the crew has installed 1,500 LF, earned value is 1,500 x $75 = $112,500 — regardless of how many actual dollars have been spent to get there.
Compare earned value to actual cost incurred on that code. If actual cost to install those 1,500 LF is $128,000, the code is running a cost performance index (CPI) of 112,500 / 128,000 = 0.88 — losing about 12 cents on every dollar spent. That is the number that should trigger a conversation with the crew foreman, not a phase-level budget report that just says utilities are at 62% spent.
Daily quantities are the whole system
None of this works without a daily habit of recording production quantities, not just hours. A daily report on a civil job needs to capture units placed that day — CY excavated, LF of pipe laid and backfilled, tons of asphalt placed, plus the crew hours and equipment hours that produced it. Field PM's <a href="/features/daily-reports">daily reports</a> are built to capture cost-coded quantities in the field, on a phone, so a foreman logging 340 CY of cut against code 02200 is the same entry that updates the job's productivity and cost curves — no separate spreadsheet reconciling quantities against a superintendent's tally sheet at month end.
Haul distance is the classic civil trap worth calling out specifically: an earthwork bid assumes a cycle time based on an estimated haul route. If the actual disposal or borrow site ends up farther than assumed — common when a planned on-site spoil area fills up or gets rejected — cycle times blow out and the CY/hour rate collapses even though the crew is working just as hard. Tracking cost per CY daily is what surfaces that fast, instead of discovering it at the 90% mark.
Equipment cost belongs in the same number
Civil work runs on iron, and equipment cost — owned or rented — has to sit inside the same cost code as the labor, not off in a separate equipment ledger. An excavator's owned hourly rate (fuel, maintenance reserve, depreciation) plus the operator's labor burden, both coded to 02200 Cut, is what makes the $/CY number real. A crew that looks efficient on labor hours alone can still be losing money if a rented dozer sat idle two days waiting on a haul truck that never showed.
Frequently asked questions
How do you track cost per cubic yard on an earthwork job?+
Record daily cubic yards moved against the earthwork cost code (labor and equipment hours included), divide the code's cumulative actual cost by cumulative CY moved, and compare that actual $/CY to the bid $/CY. A widening gap is your earliest warning sign, well before the code's total budget is exhausted.
What is the difference between percent-complete costing and unit-based costing on civil work?+
Percent-complete costing estimates progress subjectively ("we think we're 60% done"), which is easy to get wrong on civil work where production is uneven. Unit-based costing uses an actual measured quantity — CY, LF, tons — so earned value is calculated from real production, not an estimate of it.
Should equipment cost be tracked separately from labor on civil jobs?+
It should be tracked separately as a cost type but coded to the same cost code as the labor it supports, so a code like 02200 Cut shows combined labor-plus-equipment cost against the units produced. Splitting them into unrelated reports hides the interaction between idle equipment and crew productivity.
How often should civil crews report production quantities?+
Daily. Civil production swings fast — a rock lens, a haul route change, a utility conflict — and a weekly quantity roll-up can hide two or three bad days inside one average. Daily cost-coded quantities are what make earned value current instead of retrospective.
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 →Keep reading