The revenue number doesn’t tell you which work pays
A plumbing company can be busy, collect plenty of revenue, and still struggle to explain why the bank balance isn’t keeping up. The total on the monthly sales report doesn’t tell you whether a technician’s hours were priced correctly, whether a particular job type keeps running over estimate, or whether a distant service area costs more to cover than it earns.
To track technician profitability, you need to connect the job’s revenue to the labor, materials, travel, and other direct costs that produced it. Then you need to compare those figures consistently across technicians, job types, and service areas.
That sounds straightforward. In many shops, the information sits in separate places. The dispatch tool records appointments. Invoices hold revenue and parts. Timecards show paid hours, but not always the time spent on a specific job. Fuel and vehicle expenses may only show up in the accounting system. An owner or office manager stitches the picture together with spreadsheets, if they have time.
That gap can hide meaningful leakage. The potential impact depends on the size and mix of the operation. It’s not a guaranteed loss, and it’s not all technician performance. The point is that small mismatches across a large number of jobs can add up.
Start with a job-level profit measure
Pick a definition your team can use every week. A useful starting point is job gross profit:
Job gross profit = collected or invoiced revenue minus direct job costs
Direct costs can include technician labor, materials, subcontractor charges, and a reasonable allocation for travel or vehicle expense. Be consistent about which costs you include. If one report includes payroll burden and another doesn’t, comparisons can look precise while telling the wrong story.
Then calculate gross margin:
Gross margin = job gross profit divided by job revenue
For technician comparisons, avoid treating that margin as a verdict on the person. A technician assigned to complex repairs, warranty visits, or long-distance calls may have a different mix from someone handling routine maintenance. The number is a prompt to investigate the work, pricing, routing, or training behind the result.
Track a few additional measures alongside margin:
- Revenue and gross profit per billed labor hour
- Actual labor time compared with estimated time
- Materials used compared with the estimate
- Return visits and callbacks by job type
- Drive time and unproductive gaps between appointments
- Estimates approved, declined, and left open
Use completed jobs as the main unit of analysis. A week with several open invoices can distort the picture, so mark whether the report uses invoiced revenue or cash collected and keep that choice consistent.
Connect time, revenue, and cost data
The first practical task is matching each job to the right technician and costs. That means the job record needs a stable identifier that appears in dispatch, time tracking, invoicing, and purchasing or inventory records.
For each job, aim to capture:
- Who did the work. Record the lead technician and any helper, including the hours each person spent.
- What kind of work it was. Use a short, consistent list such as drain clearing, water heater replacement, leak repair, or maintenance visit.
- Where it happened. Store the service address or a service-area label that can be grouped into useful zones.
- What was billed. Connect the final invoice, discounts, and any approved change orders to the job.
- What it cost. Attach materials, subcontractor costs, and labor using one agreed costing method.
- What happened after the visit. Record callbacks, warranty work, and return visits against the original job where possible.
The goal isn’t to make technicians fill out long forms from a truck. Capture information where the work already happens. A technician can select a job status, confirm time, and note materials used in a mobile workflow. The office can verify unusual entries as part of invoice review.
If paperwork is creating a lag between the field and the numbers, see how technician paperwork can be captured and organized. If parts usage is hard to connect to job costs, truck inventory tracking can help close that gap.
Compare technicians fairly
A simple leaderboard of profit per technician can create bad incentives. It may reward the person who gets easy, high-value jobs and penalize the technician assigned to urgent calls, difficult repairs, or training support.
Instead, compare technicians within similar work. A useful view might show margin by technician and job type, with the number of jobs and average labor hours beside it. If one technician’s drain-clearing jobs are consistently below the company average, look at actual time, equipment use, pricing, and callback rates before making a personnel decision.
Give each measure enough context:
- Job count: A handful of jobs isn’t a stable pattern. Show the sample size.
- Job mix: Separate routine service from installations and complex repairs.
- Experience and support: Note when a newer technician is paired with a senior employee.
- Callback rate: A fast initial visit isn’t profitable if the customer needs a return trip.
- Schedule conditions: Emergency calls and late-day work can change travel and labor.
A good weekly review asks, “What explains this difference?” It doesn’t ask, “Who’s the worst technician?” The first question points to an operational fix. The second can push people to rush, avoid complex jobs, or record time inaccurately.
Find job types that erode margin
Job-type analysis can reveal a pricing or process problem that isn’t tied to one person. For example, several technicians may run over the estimated time for the same type of water heater installation. That can point to an estimate template that misses disposal, access challenges, or the time needed for a particular setup.
Group jobs into categories that are specific enough to guide action but broad enough to build a useful sample. If the list has dozens of nearly identical labels, reporting will be noisy. If it has only “service” and “installation,” the comparisons won’t help much.
For each category, review:
- Quoted hours versus actual technician hours
- Estimated materials versus materials recorded
- Discounting and change orders
- Callback or warranty work
- Margin by technician and service area
Warranty visits deserve their own treatment. They may bring in no new revenue but still use labor and parts. Link them to the original work so you can see whether a pattern points to an installation issue, a product concern, or a job that was underpriced. The guide to warranty tracking for trades businesses covers that workflow in more detail.
See which service areas pay their way
A job with healthy labor and materials can still produce a weak result if it takes too long to reach the customer. Compare service areas using travel time, job density, revenue, and direct costs, not just total sales.
A map can make the problem visible. One area may have plenty of work but long drives between appointments. Another may have fewer jobs but allow the crew to complete more visits in a day. That affects the cost of serving each customer and the capacity available for the next call.
Use the comparison to test practical changes:
- Set different dispatch windows for distant areas.
- Group routine appointments by neighborhood.
- Review minimum charges or travel fees where policy allows.
- Keep parts and equipment on the right vehicles to avoid supply runs.
- Check whether an area needs a tighter service radius or dedicated crew.
Routing also affects customer experience. Repeated calls asking when the technician will arrive can interrupt dispatch and distract the office. You can reduce “Where Is My Technician?” calls by giving customers reliable appointment updates and clear arrival windows.
What automated tracking looks like end to end
An AI agent for profitability tracking should do more than generate a monthly chart. It should help keep the underlying records connected, flag exceptions, and get the right question in front of the right person.
A practical workflow looks like this:
- A job is booked. The dispatch record gets a job ID, work category, service address, assigned technician, and estimate.
- The work is completed. The technician records start and finish time, materials used, job status, and any follow-up needed. The system matches those details to the job record.
- The invoice is finalized. Revenue and discounts connect to the same ID. Materials and labor costs are added using the company’s chosen rules.
- The record is checked. The agent flags missing time, unassigned costs, unexpected material use, unbilled work, or a callback that isn’t linked to the original job.
- The numbers are grouped. A scheduled report compares margin by technician, job type, and service area, with sample size and relevant context.
- Exceptions go to a person. The owner or operations manager receives a short list of jobs to review, rather than a spreadsheet full of unexplained rows.
- A decision is recorded. The manager notes whether the cause was pricing, scheduling, training, data quality, or a one-off condition. That helps distinguish a recurring issue from noise.
Automation doesn’t decide that a technician needs retraining or that a service area should be dropped. It prepares cleaner evidence so a manager can make that call. Start with one team or job category, verify the cost rules, and then expand once the results match what people see in the field.
For calls that arrive while the crew is on the tools and the owner is dispatching, call-handling automation may help capture more opportunities. Better call capture also helps make the work mix more complete. Follow-up on open estimates can help keep them from being overlooked, though results depend on estimate quality, timing, and customer demand.
Those agents address missed calls and unworked estimates, while profitability tracking addresses the margin on jobs you do win. Together, they give you a clearer picture of where the business is losing capacity or margin.
Turn the report into a weekly operating habit
A report only matters if someone uses it. Set aside 30 minutes each week with the owner, service manager, or dispatcher who can act on what it shows. Review a small number of exceptions instead of trying to investigate every job.
A useful meeting can cover three questions:
- Which technician, job type, or service area moved furthest from the expected margin?
- What evidence explains the change, and what still needs checking?
- Who will make the operational change, and when will you review the result?
Keep the action specific. “Improve profitability” isn’t an action. “Review the labor allowance for this installation category before Friday” is. Or, “Change the route sequence for the west service area next week and compare drive time” gives the team something testable.
Put the potential leakage in business terms
Small job-level gaps can matter. A few extra labor hours each week, unrecorded parts, repeat visits, or drive time that isn’t reflected in pricing can accumulate across the year. Use your own records to estimate the potential impact rather than treating a general figure as a promise of savings.
Start by estimating the gap in your own records. Choose a recent month, pull a sample of completed jobs, and compare billed revenue with labor and materials actually used. Then look for the same pattern across a full quarter. If the source records don’t agree, treat data cleanup as part of the work rather than presenting the first result as fact.
An Omni Audit is a focused way to map that work and identify a practical next step for your systems and team. No deck. Book a 60-min Omni Audit to map the records and workflows behind technician profitability. You can also see Omni for trades businesses.
Use the after-hours checklist for missed work
Profit tracking starts with jobs you know about. Calls that never get answered don’t show up in your job analysis, even when they could have become valuable work. The After-Hours Call Recovery Plan for Trades is a practical worksheet for checking how calls are answered, routed, and followed up when the office is closed. Download the plan and use it alongside your job-level review.
Choose a starting point and verify it
Don’t wait for perfect data across the whole company. Pick one service area, a common job type, or a team with consistent records. Make sure each job has the technician, time, invoice, and materials attached. Compare the results with the service manager’s understanding of the work, then investigate the gaps.
Once the measure holds up, use it to make a small change and check what happens. Adjust an estimate, refine a dispatch zone, or improve parts capture. Track the result over enough jobs to separate a real pattern from a few unusual calls.
A 60-minute review can help you decide which data to connect first and which workflow is worth automating. Book my Omni Audit and see the AI audit for trades businesses.
Your guide is ready
Check your downloads folder. If it did not open automatically, use the button below.
Download the GuideYour guide is ready
Check your downloads folder. If it did not open automatically, use the button below.
Download the GuideTalk it through
Talk it through with Sam
30 minutes on what a Command Centre would look like for your business.
Book a call