Job costing — labor, parts, drive time, margin

Every job has a job-costing panel that rolls up labor, parts, and drive-time costs against the estimate so you see margin per job.

Inputs:
• Labor — Workforce hours tagged to the job × each tech's loaded labor rate
• Parts — line items added during the job (each with cost vs price; cost is internal, price is what the customer pays)
• Drive time — minutes from the tech's GPS pings × labor rate (only the en-route portion counts)
• Sub-contractor costs — if you used an outside sub, log their invoice against the job

Margin:
Margin = (invoiced amount − total cost) / invoiced amount. Visible on the job detail and on every Reports tab report.

Why drive time matters:
A 1-hour job on the other side of the metro can take 2 hours of drive time, making the labour cost 3× what the time-on-site suggests. The job-costing panel surfaces this so you see which jobs were profitable and which weren't.

Estimate-vs-actual:
The panel shows the estimate (from when the job was sold) next to actual. If actual exceeds estimate by more than 25%, Wally flags the job for post-mortem review — usually points to either an under-quoted scope or an inefficiency that's eroding margin.

Roll-up reports:
The Reports tab aggregates margin by tech, customer, service template, and time period. Use to identify your most profitable jobs and double down on that work.