Turning Field-Service Data Into Profit
Field-service platforms capture massive amounts of operational data, but many contractors still struggle to turn that information into profitable decisions. mihailomilovanovic / E+ / Getty Images
A practical framework for plumbing and HVAC contractors.
by Tatenda Mpofu
Walk into almost any plumbing or HVAC shop today and you'll find ServiceTitan, Housecall Pro, Jobber or a similar platform humming in the background, logging every job, every invoice, every technician hour. The software is doing exactly what it was designed to do; the question is whether anyone is using what it has logged.
In my work with home-services contractors, companies doing anywhere from $1 million to $15 million in annual revenue, I encounter the same situation repeatedly: a business generating strong top-line revenue, running a full schedule, and still struggling to understand where the money is actually going. The data to answer that question exists…in their field-service platform. The gap is not a data problem; it is a translation problem.
What I dig into below is a practical framework for closing the gap, one that contractors can implement using systems they already operate and pay for, and without a need to add headcount or overhaul internal processes.
The Monthly P&L Is Not Enough
Most contractors review a monthly profit and loss statement, calling the process “financial management.” The P&L has its place, but is limited at its core: it averages everything together. A contractor doing $150,000 in monthly revenue at a 38% gross margin looks healthy on paper. But, the 38% is a blended number. It is often masking a maintenance call running at 24% and an emergency repair running at 61%; two very different profiles of business hidden inside the same number and shared on one report.
A second limitation is that the P&L tells you what happened financially. It does not tell you where it happened; and in a field-service business where profitability lives and dies at the individual job level, that distinction is everything.
What is the first step in building a more useful financial picture? That is straightforward: break revenue and cost down by job type. Not by month, not by technician, but by the category of work itself. Maintenance agreements. Standard service calls. Emergency calls. Installations and replacements. Each of these has a fundamentally different cost structure, margin profile and strategic value to the business. Treating them as a single number means making pricing, staffing, and marketing decisions without the information that actually matters.
The Four Numbers Every Job Should Capture
Accurate job-level costing requires four inputs: labor, materials, subcontractor costs and overhead allocation. The first three are relatively straightforward. The fourth is the one most contractors under-allocate; and where the margin picture is most often misleading.
Labor is the most commonly miscalculated. Field-service software captures time on site. It rarely captures the full picture of how technician time is consumed; the drive from the previous job, the preparation and quoting time, the return trip for a callback. A technician paid $28 per hour has a fully-burdened cost closer to $45 to $55 per hour once employer taxes, workers’ compensation, health benefits and truck allocation are factored in. When contractors use the wage rate rather than the true cost rate, every margin calculation is optimistic by a meaningful margin.
Overhead allocation is the second commonly missed input. Every completed job should carry a proportional share of the fixed costs that made it possible; office staff, software subscriptions, insurance, vehicle depreciation, facility costs. The simplest approach is to calculate a total overhead rate (total monthly overhead divided by total monthly billable hours) and apply it to each job based on hours spent. It is not a perfect science, but even a directional allocation is more accurate than no allocation at all.
Once these four inputs are applied consistently, a contractor can calculate true job profit: revenue minus all four cost categories. Grouped by job type, that number tells you both where your margins are actually coming from, and where they are being quietly eroded.
The Metric Most Contractors Never Track: Margin Per Hour
Once job-level margin is visible, a more powerful concept becomes available: margin per technician-hour; the gross profit generated per hour of skilled labor, and it is the most useful single metric for evaluating which work a contractor should be growing.
Consider two common job types. A full-day system installation generates $1,800 in revenue at 38% margin; $684 in gross profit over eight hours, or $85.50 per technician-hour. An emergency diagnostic call generates $350 at 62% margin; $217 in gross profit over 90 minutes, or $145 per technician-hour. The installation is ten times larger in dollar terms. The diagnostic call is 70% more productive per unit of the business’s most constrained resource.
This changes how decisions should be made. All-day installation jobs should be priced to reflect their true capacity cost; the margin forgone by not running four service calls in the same window. Dispatch decisions should account for which technician is best matched to which job type based on conversion rates, cross-sell rate and efficiency. Marketing spend should be directed toward the channels and service categories that generate the highest-margin-per-hour work, not just the highest call volume.
None of this requires new software. It is enabled by a reporting framework that surfaces the right numbers — and the discipline to review them on a regular cadence.

Tracking profitability by job type, technician performance, and margin per hour can help contractors move beyond reactive decision-making. stevanovicigor / iStock / Getty Images Plus
Pricing That Reflects Reality
One of the most common findings when contractors build true job-level margin visibility is that certain job types are virtually always underpriced. Examples include diagnostic-heavy calls that carry a flat service fee, small repairs with high-drive time relative to on-site time, after-hours calls priced identically to standard business-hours visits. These are not pricing philosophy failures; they are the natural result of setting prices without the cost data to support them.
Value-based pricing is the correction. A licensed technician who arrives on time, diagnoses correctly on the first visit, and completes the work cleanly is delivering an outcome worth more than the parts and labor that went into it. Pricing should reflect the outcome, not just the cost. Emergency calls, after-hours dispatches, and high-complexity diagnostics should carry pricing premiums that reflect their urgency and the expertise required.
The diagnostic fee structure is a particularly high-leverage lever. Charging a clear, transparent diagnostic fee — typically in the $89 to $150 range — accomplishes two things simultaneously. It compensates the business for technician time and expertise regardless of whether the customer proceeds with the work, and it filters the lead funnel toward customers who are prepared to pay for professional service, which correlates strongly with higher same-trip conversion rates on the repair work itself.
Stop Reacting. Start Attacking the Day.
Here is where most contractor businesses leave the most value on the table—and where the right data infrastructure creates a genuine competitive advantage.
Most owners and dispatchers approach the morning schedule the same way: jobs are lined up, technicians are assigned roughly in sequence, and the day is executed from top to bottom. The schedule drives the business. The business is reactive in its very nature, and it is the default mode for the majority of field-service businesses.
The alternative is the complete opposite; proactive dispatch: using job-level data not just to understand what happened last month, but to make sharper decisions about what happens tomorrow morning.
With the right data and tooling in place, historical margin per job type, technician-level performance metrics, estimated job duration by category, a dispatcher or owner can look at the day’s schedule before the first truck leaves the yard and make deliberate decisions aligned with the business’s actual priorities.
Consider what this looks like in practice. A plumbing business whose stated priority is maximizing contribution margin reviews the morning board and sees five jobs scheduled. Job three is a complex water heater diagnostic in an older home with a history of upsell conversions; exactly the kind of job where the technician’s cross-sell rate matters most.
The natural instinct is to assign whoever is available.
ADVERTISEMENT
ADVERTISEMENT
The proactive approach is to assign the technician with the highest documented conversion rate on premium replacement jobs, even if it requires a small rerouting adjustment.
Job five is a non-emergency drain cleaning in a commercial account with flexible timing.
The reactive approach runs it as scheduled.
The proactive approach holds it as buffer; a job that can be rescheduled without consequence if a higher-margin emergency call comes in during the afternoon. That flexibility has real dollar value: an emergency service call generating $145 per technician-hour is worth pulling a technician off a $70-per-hour maintenance job to take, every time.
The list of decisions that become available with this kind of visibility extends further. Which jobs have the highest probability of a callback, based on technician history and job category? Route those to your most technically precise tech, not your fastest. Which customers have the highest lifetime value (“LTV”), based on repeat purchase history and service agreement attachment rates? When a scheduling conflict requires bumping someone, bump the lower-LTV account. Which jobs are likely to run long based on historical duration data for similar work? Front-load the schedule with those to protect afternoon flexibility.
None of this is guesswork. It is pattern recognition applied to the data that already exists in your field-service platform. The difference between a contractor who reacts to the day and one who attacks it is not talent or effort; it is whether the data is structured to support the decision.
Emerging workflow tooling is beginning to make this kind of proactive dispatch more accessible. Systems that surface estimated job profitability, technician match scores, and schedule optimization recommendations before the day starts are moving from enterprise-grade contractor platforms into the mid-market. For businesses with the data infrastructure in place to feed them, the impact on margin-per-truck is measurable within the first quarter.
The difference between a contractor who reacts to the day and one who attacks it is not talent or effort; it is whether the data is structured to support the decision.
A Monthly Reporting Cadence That Actually Gets Used
The most sophisticated financial framework is worthless if it generates reports that no one opens. The goal is not reporting volume — it is decision clarity. A basic monthly review that covers five things is enough to drive meaningful change:
- Revenue and gross margin by job type. Which service lines are performing, and which are lagging?
- Bottom five jobs by margin. The lowest-performing jobs each month are almost always the same job type or the same technician.
- Technician performance. Average ticket value, diagnostic-to-repair conversion rate,
- Callback frequency, and revenue per day. Not to manage by fear, but to inform dispatch decisions.
- Overhead cost trends. Is overhead as a percentage of revenue staying flat or creeping up?
- Month-over-month trend lines. A single month of data is a snapshot. Three months is a pattern. Six months is a business story.
This review does not require a financial analyst or a new software platform. It can live in a spreadsheet built from exports out of whatever field-service software the business already uses. The key is consistency — the same review, the same questions, every month.
The Data Is Already There
Plumbing and HVAC contractors are not data-poor businesses. They are data-rich businesses with an infrastructure gap between the data they generate and the decisions that data should inform. Field-service platforms are capturing job costs, technician hours, service categories and customer information continuously.
The work is in structuring that data so that it answers the questions that actually drive profitability — and reviewing it often enough to act on what it shows. Not just in the rearview mirror at month’s end, but in the morning, before the first truck rolls, when the decisions that determine the day’s margin are still within reach.
In a market defined by rising labor costs, tight technician availability, and increasing competition from private equity-backed platforms, the contractors who close that gap will have a meaningful structural advantage over those who are still running on gut feel and a monthly P&L.
The data is there. The framework is straightforward. The question is whether it gets used.
Tatenda Mpofu is the founder of Oryx Horn LLC, a data analytics and fractional CFO advisory firm working exclusively with home-services contractors. He previously worked in the Private Equity practice at McKinsey & Company and on the investment team at Cranemere International. At Oryx Horn, he builds the reporting infrastructure, proactive dispatch workflows, and job-level financial visibility systems described in this article. You can learn more about his work at oryx-horn.com. He can be reached at info@oryx-horn.com.
