Job profitability: definition, formula, and dashboard example

Job profitability measures how much money a job actually keeps after you pay for the labor, materials, and direct costs to complete it. Here is how to calculate it, what to watch for, and how to track it live across every technician and trade.

By Datacube content engineAutogeneratedJuly 8, 2026

Formula

Job profitability = (job revenue – direct job costs) ÷ job revenue × 100

Direct job costs include labor (hours worked × burdened rate), materials, subcontractors, and any direct permit or equipment costs tied to that specific job. Overhead allocation is handled separately. The result is the gross margin percentage for a single job.

Some operators track job profitability in dollars (job gross profit) rather than as a percentage. Both are useful. The percentage lets you compare jobs of different sizes; the dollar figure tells you what lands in the bank.

What is job profitability?

Job profitability is the gross margin earned on a single completed job, after subtracting the direct costs (labor, materials, subs) required to deliver it. It is the most granular profitability signal a home-service company has, because it shows whether individual jobs, job types, technicians, or service lines are generating healthy margin or quietly eroding it.

Most contractors track revenue. Fewer track job-level margin. That gap is where money disappears. An HVAC company can run its highest-volume month ever and still have flat or negative cash flow at the end of it, because the jobs being dispatched most often are the ones with the thinnest margins, not the ones with the best returns.

How the math works

To calculate it, subtract a job's direct costs (the technician's burdened labor for time on site, parts and materials, and any permit or disposal fee) from what the job invoiced, divide by the invoice, and multiply by 100. The percentage is only half the story, because two jobs can land at a similar margin while contributing very different dollars.

Reading job profitability by job type is what tells you which work to chase. A quick, low-cost call can post a healthy margin percentage yet contribute few dollars, while a larger job at a slightly lower percentage contributes far more, so the volume of the right job type matters as much as the rate. Job-level revenue comes from the CRM (Housecall Pro's Profit-by-date report or ServiceTitan's Jobs report); the direct costs come from the job and the payroll data you connect, so job profitability is a derived view rather than a single CRM field.

What counts as a direct cost?

Direct job costs are expenses that exist because of that specific job: field labor (including burden such as payroll taxes, workers comp, and benefits), materials and parts used on the job, subcontractors, equipment rentals, and job-specific permits or fees. Overhead (rent, admin salaries, software, truck payments) is not a direct cost here; it belongs at the gross margin and NOI level. Mixing overhead into direct job costs is the most common distortion (see the callout below).

Who owns this metric and how often to review it

The finance or controller role owns the monthly roll-up, but operations and service managers should be looking at job profitability weekly by technician and job type. When connected to a CRM like ServiceTitan or Housecall Pro alongside QuickBooks, the cost-of-job data is already captured digitally, which makes it feasible to surface job-level margin in near real time rather than waiting for the books to close. Pair it with revenue per technician to see whether a high-revenue tech is also running high-margin jobs or just a high volume of thin ones.

Job profitability by job type: same technician, same week

Job typeInvoiceDirect costsGross profitMargin %Dispatch priority
HVAC system replacement (install)$6,800$3,200$3,60053%High value; protect capacity
HVAC service call (diagnostic + repair)$420$155$26563%Good margin per hour; watch volume
Plumbing drain cleaning$250$118$13253%Low gross-profit dollars; upsell opportunity
Electrical panel upgrade$3,200$1,900$1,30041%Margin below target; review parts cost
Garage door spring replacement$340$90$25074%High margin per hour; grow this mix

What good and poor job profitability signals look like

Margin targets vary by trade, job type, market, and labor model. Use these as directional reads and set your own baseline from the last 90 days of completed jobs.

  • Job margin improving month over month across all job typesPricing discipline and parts costs are under control
    Good
    Current
    Target
  • High-margin job types growing as a share of total jobs runMix shift toward better work; dispatch strategy is working
    Good
    Current
    Target
  • Job margin varies widely by technician on the same job typeParts usage or time-on-site discipline differs; coach to the efficient techs
    Watch
    Current
    Target
  • Revenue is up but average job margin is flat or fallingVolume may be masking a mix shift toward lower-margin work
    Watch
    Current
    Target
  • Specific job types consistently below target marginRepricing, parts sourcing, or scope control needed on those job types
    Poor
    Current
    Target
  • Month-end margin different from in-month job-level dataCost coding or timing issues in QuickBooks; reconcile regularly
    Poor
    Current
    Target

Warning

Common mistake: overhead buried in direct costs

When shop overhead (rent, admin salaries, software subscriptions, vehicle payments) gets allocated into the job cost line, every job looks less profitable than it is, and the comparison between jobs becomes meaningless. Keep overhead at the company level and use gross margin percentage to judge the job. Use NOI or net margin to judge the company after overhead. Mixing them produces a number that is wrong at both levels and cannot be acted on.

Job profitability on a live datacube financial dashboard

How job profitability appears on a datacube Financial board, pulling from a connected CRM and QuickBooks so managers can see margin by job, tech, and job type without waiting for month-end close.

Dashboard preview

Figures are illustrative. Your datacube board reflects your own connected CRM (such as ServiceTitan, Workiz, or Housecall Pro) and QuickBooks data.

Info

Owner takeaway: job profitability is a coaching and dispatch lever

Most owners treat job profitability as a finance report. The operators who grow fastest treat it as an operational signal. Which job types should you push more of? Which technicians are using parts efficiently? Which calls are worth the drive time? Answering those questions requires job-level margin data in front of dispatch and service managers, not locked in a spreadsheet that lands two weeks after month-end.

Related KPIs to read alongside job profitability

KPIWhy it pairs with job profitability
Gross marginCompany-level view of revenue minus COGS; job profitability rolls into this number
Revenue per technicianHigh revenue per tech is only good if the jobs being run are also high-margin
Average ticketHigher ticket does not always mean higher margin; job profitability surfaces the difference
Cost per booked jobTies marketing acquisition cost to the eventual job margin; needed for true ROI
Callback rateCallbacks eat margin: a free return visit adds direct labor cost with no additional revenue

Key takeaways

  • Job profitability shows you which jobs, techs, and job types are actually keeping money, not just moving it through the P&L.
  • Keep direct costs clean: labor, materials, subs, and job-specific fees only. Overhead belongs at the gross margin level.
  • Track it by job type and technician weekly, not just as a monthly company total. The spread between your best and worst jobs tells you exactly where to focus.
  • Job-level margin data from your CRM and QuickBooks, surfaced in real time, turns profitability from a lagging report into an active dispatch and coaching tool.

Job profitability FAQs

See job profitability by tech, trade, and job type in a live dashboard

Connect your CRM and QuickBooks to datacube and watch job-level margin update in real time, broken out by technician and job type so you can coach, dispatch, and price with confidence before the month closes.