Job costing for plumbing contractors

Plumbing margin usually leaks through two places: fixtures that get upgraded mid-job and material pulled from truck stock that never gets billed against the job it was used on. Jobsheet keeps a running actual cost per job so both show up before you invoice, not after.

Fixture upgrades change the numbers mid-job

A homeowner swapping a builder-grade faucet for a designer one is common, but it changes your material cost. Log the new fixture cost against the job right away and compare it to the original expected cost so you know whether the change order actually covered the difference.

Truck stock pipe and fittings are hard to attribute

Pipe, fittings and glue pulled from a stocked truck rarely get an individual receipt. Log an estimated material draw as an expense against the job at the time of use so smaller jobs don't quietly absorb material cost with no record.

Rough-in and finish are really two labor phases

Rough-in and trim-out labor often happen weeks apart with different crews. Logging both phases as expenses on the same job — rather than tracking only the invoice total — is what lets you see if a job is running over budget while there's still time to react.

What to track on every plumbing job

  • Fixtures (faucets, toilets, water heaters)
  • Pipe, fittings and truck stock materials
  • Permits and inspection fees
  • Rough-in labor hours
  • Trim-out labor hours
  • Subcontracted excavation or gas line work

Frequently asked questions

Can I log material I pulled from truck stock without a receipt?

Yes. You can record an expense with an estimated cost and category even when there's no individual receipt, so the job's actual cost still reflects the material used.

How do change orders affect the job budget?

Update the job's expected cost when you approve a change order, so your budget-vs-actual comparison reflects the new scope instead of comparing actuals to the original bid.