Job Profitability shows what each finished job actually made after labor and materials — and which jobs lost money. Use it to find the kinds of work, and the techs, that carry the business.

Open it from Reports → Money → Job Profitability. Owners and admins can see it.

Job Profitability report for This Year with net profit, the labor, material and profit split, margin by job type and the Needs a look tile

Which jobs are counted

Jobs that are Completed, Invoiced or Closed, have revenue, and were completed during the range you pick. Cancelled jobs and jobs with no revenue are left out.

How the numbers are worked out

NumberWhere it comes from
RevenueThe job's line items — what you're charging the customer for the work (after line discounts).
LaborEach tech's on-site hours on the job × that tech's own hourly rate, added up, so a lead and a helper both count at what each of them costs you. If Same rate for the whole crew ($/hr) is set on the job, everyone's hours use that rate instead. See Job costing: labor at each tech's rate. Finished jobs that already had a labor rate before this way of costing arrived keep their old figure.
MaterialThe cost of parts. Once the job has a purchase order that's Ordered, Received or Billed, its PO line costs are used. Until then, the pricebook costs on the job's line items are used.
Expenses on the jobReceipts and purchases logged against the job (anything not rejected) also count as cost.
ProfitRevenue − total cost (labor + material + job expenses).
MarginProfit as a share of revenue.

The tiles

TileWhat it shows
ProfitNet profit for every job closed in the range, how much revenue and cost it took, Where the revenue went (labor, material, profit), and margin by job type against the 30% target.
Average marginProfit as a share of revenue across all closed jobs, against the 30% target.
Needs a lookJobs whose margin may be off: labor not entered, draft purchase orders whose cost isn't counted yet, purchase orders not yet billed, or an outright loss.
Average ticketRevenue ÷ closed jobs, with the average cost per job.
By job typeRevenue by kind of work. Click a type to filter the table below.
By technicianProfit per tech (the job's assigned tech). Click a name to filter the table.
Margin spreadHow many jobs landed in each band — Lost money, Thin · 0–15%, Fair · 15–30%, Strong · over 30% — and the profit each band made.
Every jobOne row per job with closed date, customer, type, tech, revenue, cost, labor, material, profit and margin. Sort any column; use the Needs a look and Lost money chips to narrow it.

Getting trustworthy margins

If you see…Fix it by…
Margins that look too good (lots of 90%+)Setting every tech's hourly rate in Settings → Team (the Rate column), so their time on site is costed.
Jobs flagged for draft or unbilled POsMoving the purchase order along — material cost uses PO costs once the PO is ordered.
Material cost of $0Adding costs to your pricebook items, or linking the parts purchase order to the job.
Note

Labor, Profit and Margin use the labor cost saved on each job, the same figure the job's Job costing card shows. A job flagged No labor entered has no costed time: usually a tech without an hourly rate, or no on-site time recorded.

Export

Export CSV downloads the summary, the by-type and by-technician tables, and every job row.