Job Costing
Plumbing Contractor Job Costing and Productivity
Plumbing work on a multi-story commercial job runs in two distinct phases per floor — rough-in, then trim-out — separated by weeks or months, and both phases are really a fixture-counting exercise. Cost it right and a slow floor is obvious in week two. Cost it wrong and it is invisible until the whole job is behind.
Published August 7, 2026 · 7 min read
Key takeaway
Track plumbing labor by phase (rough-in vs. trim) and by fixture count, not just by hours logged. A crew that is behind on fixtures-per-day on floor three is a solvable problem in week two and an expensive one by the time the building tops out.
Why rough-in and trim need separate codes
Rough-in — underground and in-wall piping, DWV, water supply — happens early and is largely invisible once it is covered. Trim — fixtures, faucets, water heaters, final connections — happens near the end, on a completely different schedule, often by a different crew or at a different productivity rate entirely. Blending both into one plumbing labor code tells you nothing useful, because the two phases are not comparable: a dollar of rough-in labor and a dollar of trim labor buy different amounts of installed work.
Coding them separately also matches how the job actually gets billed and scheduled. Rough-in on floor 3 might finish in March; trim on floor 3 might not happen until August, after drywall, paint, and finishes. Keeping them in one bucket makes the job cost report meaningless for either phase.
A cost code structure by phase and area
For a multi-story or multi-building job, structure the codes by phase first, then by area:
- •01-000 — Underground / site utility: sanitary, storm, water service, labor and material split out.
- •02-000 — Rough-in by floor or zone: 02-100 (Floor 1), 02-200 (Floor 2), etc. — DWV and supply piping in walls and slabs.
- •03-000 — Trim by floor or zone: 03-100 (Floor 1), 03-200 (Floor 2) — fixture set, faucets, final connections.
- •04-000 — Domestic water heaters / equipment: labor and material for water heaters, pumps, backflow devices.
- •05-000 — Gas piping: if in scope, coded separately since it is often inspected on its own schedule.
- •09-000 — General conditions: supervision, testing/inspection coordination, cleanup.
Fixture counts as the productivity unit
The estimate was built by counting fixtures and assigning labor units per fixture (or per DWV/supply connection). Tracking actual progress the same way — fixtures roughed in or trimmed per day, per floor — is what turns hours logged into a real productivity number instead of just a budget burn-down.
Worked example: the estimate carries 0.6 hours per fixture for trim-out (faucet, supply stops, trap, final connect) across 40 fixtures on a floor, for a budget of 24 hours. At the halfway point, 20 fixtures are trimmed and the crew has logged 16 hours. Budgeted hours for 20 fixtures = 20 x 0.6 = 12 hours. PF = 12 / 16 = 0.75 — running 25% over budget on that floor's trim work. That is worth a look before the remaining floors run the same rate: is it a fixture substitution causing extra fitting, tight closet access, or a legitimately underestimated unit?
What actually causes plumbing fades
Across commercial plumbing jobs, the recurring culprits are consistent:
- •Rough-in inspections failing and requiring rework behind already-poured slabs or closed walls.
- •Fixture substitutions from the owner or architect that do not match the original takeoff (different rough-in dimensions, extra fittings).
- •Sequencing conflicts — trim scheduled before drywall/paint is actually done, forcing remobilization to the same floor twice.
- •Underestimated labor units on a job type the estimator has not priced recently (student housing vs. hospital vs. office core-and-shell all trim very differently).
Getting the data without slowing the crew down
None of this works if capturing it takes the foreman twenty minutes of extra paperwork every day. A daily report that lets a foreman log hours by cost code and a fixture count in the same entry — from a phone, on site — is what makes phase-and-fixture tracking realistic instead of an idea that dies after week one.
Field PM's cost-coded daily reports capture labor and installed quantities by phase and area, feeding a PM dashboard that shows productivity floor by floor in real time. See how the structure applies to plumbing and mechanical trades on the <a href="/industries/mechanical-hvac-contractors">mechanical & HVAC contractors</a> page.
Frequently asked questions
Should rough-in and trim be tracked as separate cost codes?+
Yes. They happen at different times, often with different crews, and blending them into one plumbing labor code hides which phase is actually driving a cost overrun. Separate codes by phase, and by floor or zone on multi-story work, keep the job cost report meaningful for both.
How do you measure plumbing labor productivity?+
Track installed quantity — typically fixture count or rough-in connections completed — against labor hours logged for that scope, then compare to the labor units the estimate was built on. Budgeted hours for the quantity completed divided by actual hours gives a productivity factor you can track floor by floor.
What usually causes a plumbing job to go over budget?+
Common causes include failed rough-in inspections forcing rework behind closed walls, fixture substitutions that do not match the original takeoff, sequencing conflicts that force a crew back to the same area twice, and labor units that were underestimated for the specific building type.
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