Skip to content

Job profitability

Job profitability shows what each completed job earned after the cost of doing it. For every job it compares the revenue you billed, before tax, with three costs: your technician's time, the parts used, and the business miles driven to the job.

Plans and roles

Job profitability is included on the Pro and Enterprise plans. Owners and Managers can see it. Technicians never see costs or margins.

You will find it in two places:

  • Performance Dashboard → Profitability tab — totals for a date range, grouped the way you choose, with a list of jobs and a CSV export.
  • The job details page — a Job Profitability card on every completed job.

How the margin is worked out

Part Where the figure comes from
Revenue The job's invoice total before tax, minus the before-tax share of any refunds or chargebacks that went through. A chargeback you win stops counting.
Labor The time from when work started to when the job was completed, minus any time the job spent on hold, multiplied by that technician's cost rate.
Parts Each part at the cost it had when it was used on the job.
Mileage Business trips linked to the job, at the rate recorded on each trip.
Billed margin Revenue minus labor, parts and mileage.

Every figure is rounded to the cent once, per job. Totals for a period are the sum of the jobs in it, so a total always matches its job list.

Mileage rate

Each trip is priced at your fuel cost per mile when you have set one in General settings, otherwise at the IRS standard rate. The IRS rate is a tax-deduction rate, not a measured cost, and the job card says which one was used.


Unknown is never zero

A margin is only shown when every part of it is known. When something is missing, the margin reads Unknown and the reason is shown instead of a made-up number:

You see Why What to do
Not invoiced yet The job has no invoice, or only a draft Generate and send the invoice
Billed on a work order invoice The job was billed as part of a work order, which is not split per job Nothing — these jobs are left out of per-job margin
No cost rate set for this technician The technician has no cost rate on the date the job was completed Add a cost rate (see below)
No technician assigned The job was completed without an assignee —
Some parts have no recorded cost A part used on the job has no cost Add the part's cost in inventory for future jobs

The Cost coverage card shows how many completed jobs in the period are fully costed. Margin totals include only those jobs, so they are never pulled up or down by missing figures.


Technician cost rates

A cost rate is what one hour of a technician's time costs your company — wages plus taxes and benefits. It is separate from the default technician hourly rate, which is what you bill customers.

To add one:

  1. Open the Performance Dashboard and select the Profitability tab.
  2. Scroll to Technician cost rates.
  3. Choose the technician, enter the cost per hour in dollars, and pick the effective from date.
  4. Click Save cost rate.

Rates are kept as a dated history rather than overwritten:

  • A job uses the rate in effect on the day it was completed. Raising a rate today does not change last month's jobs.
  • A rate with a past date re-prices the jobs completed on or after that date.
  • Two rates cannot start on the same day for the same technician. Pick a different date instead.
  • The table shows how many completed jobs are waiting for a rate for each technician.

The Profitability tab

The tab follows the dashboard's date range. It shows:

  • Billed margin — total margin and margin as a percentage of revenue, for fully costed jobs.
  • Revenue and Cost — for the same fully costed jobs.
  • Cost coverage — fully costed jobs out of all completed jobs in the range.
  • Why some margins are unknown — a count for each reason, with a shortcut to the cost-rate editor.
  • Margin by… — use Group by to switch between technician, customer, job type and required skill. A job that needs several skills is counted under each of them.
  • Completed jobs — each job with its revenue, costs and margin; select a job number to open it.
  • Export CSV — one row per job. Unknown figures are left empty rather than written as 0.00.

How current the figures are

Profitability refreshes automatically through the day. A job completed since the last refresh shows Calculating on its card until the next one. A job that was invoiced, refunded or re-costed since then keeps its last figures, marked Recalculating, until the refresh. The tab also tells you when it last refreshed.


Frequently asked questions

Why is the margin Unknown on a job I invoiced?

Open the job's card: it names the missing part. The most common reason is that the technician has no cost rate for the day the job was completed.

Does time on hold count as labor?

No. Time a job spends on hold after work has started is taken out of its labor time.

Are sales taxes part of revenue?

No. Revenue is the invoice total before tax, so the margin is not inflated by tax you collect for the authorities.

Can technicians see their cost rate?

No. Cost rates, costs and margins are visible to Owners and Managers only.