Table of Contents
- Why Labor Profitability Decides Whether a Plumbing Job Makes Money
- The Plumbing Labor Cost Formula: From Hourly Wage to Loaded Labor Rate
- Step-by-Step: Using a Plumbing Labor Cost Calculator
- Building a Plumbing Job Costing Template That Tracks Estimate vs Actual
- Materials Markup, Labor Markup, and the Plumbing Profit Margin You Actually Keep
- Flat-Rate vs Hourly Pricing: Which Model Protects Labor Profitability
- Post-Job Variance Analysis and a Job-Level Profitability Dashboard
- Sensitivity Analysis: Testing Pricing Scenarios Before You Quote
- Frequently Asked Questions
Last Updated: October 18, 2026
Why Labor Profitability Decides Whether a Plumbing Job Makes Money
Labor profitability is what a plumbing job actually earns after every hour of field time is paid for, including the hours you never bill.
Most plumbing companies price off an hourly wage and a gut feel for materials, which hides the real cost of a technician: payroll burden, drive time, callbacks, and hours waiting on parts.
Below, we’ll show you how to calculate labor profitability for plumbing jobs step by step, track estimate versus actual, and test a price before you quote it.
The Plumbing Labor Cost Formula: From Hourly Wage to Loaded Labor Rate
The plumbing labor cost formula starts with the loaded labor rate: the hourly wage plus every cost tied to employing that technician, divided by the hours you can actually bill.
Loaded labor rate = (hourly wage + payroll burden per hour) ÷ billable efficiency
Three inputs feed it, and each one trips up most owners.
Adding Payroll Burden and Nonbillable Time
Payroll burden is everything you pay on top of the wage: in Canada, Canada Pension Plan contributions, Employment Insurance premiums, vacation pay, statutory holiday pay, and any benefits or workers’ compensation coverage your province requires, plus tools, vehicle, phone, and training.
Nonbillable time is the second trap. Technicians get paid for drive time, shop time, parts runs, and training, none of which lands on an invoice.
Pricing off the hourly wage alone is the single most common way plumbing shops lose money. A job that looks like it clears a healthy margin can wipe out that margin once drive time and callbacks are counted.
Recovering Overhead Through Billable Efficiency
Overhead costs are the indirect costs of running the business: rent, insurance, office staff, software, marketing, and vehicle upkeep. You recover overhead through billable efficiency, the share of paid hours that reach an invoice.
Billable efficiency = billable hours ÷ total paid hours
A crew that bills 60 of 80 paid hours runs at 75% efficiency. Every hour of overhead must be recovered across those billable hours, not the paid ones.
Step-by-Step: Using a Plumbing Labor Cost Calculator
A plumbing labor cost calculator turns the formula into a quotable rate.

Step 1: Enter the hourly wage. [Time: 2 minutes] Use the technician’s actual base rate, not an average.
Step 4: Allocate overhead per billable hour. [Time: 10 minutes] Divide total annual overhead by total annual billable hours.
Expected Result: A loaded labor rate you can use on every quote, built from your own numbers rather than an industry average.
Building a Plumbing Job Costing Template That Tracks Estimate vs Actual
A plumbing job costing template records what you estimated for a job and what it actually cost, side by side. Most shops track the estimate and ignore the actual, which is why the same estimating mistakes repeat quarter after quarter. The template only earns its keep if it closes the loop: capturing actual hours accurately, calculating variance, and reviewing it on a schedule.
The Columns That Matter
Set up columns for estimated and actual labor hours, estimated and actual materials, the loaded rate applied, and realized gross profit per job. Here is the structure that works:
| Field | What It Captures | Why It Matters |
|---|---|---|
| Estimated hours | Quoted labor time | Sets the baseline |
| Actual hours | Real time on site | Exposes variance |
| Loaded rate | True cost per hour | Prices the labor |
| Estimated materials | Quoted parts and supplies | Sets the materials baseline |
| Actual materials | Real parts and supplies used | Exposes materials variance |
| Labor variance (hours) | Actual minus estimated hours | Shows estimating drift |
| Labor variance (CAD) | Hours variance × loaded rate | Puts the drift in dollars |
| Realized gross profit | Revenue minus direct costs | Shows true margin |
| Realized gross margin % | Gross profit ÷ revenue | Compares jobs of different sizes |
Two derived columns do most of the diagnostic work. Labor variance in hours shows whether your crew runs long or short against the estimate; labor variance in dollars converts that into money. A job running two hours long at a $95 loaded rate has quietly given away $190 of margin.
A Worked Example
Quote a bathroom rough-in at 14 estimated labor hours at a $95 loaded rate, so quoted labor cost is $1,330. The job takes 17 hours, so actual labor cost is $1,615. The labor variance is three hours, or $285, straight out of the gross profit you thought you had. Add $40 more in fittings and the combined variance is $325, enough to erase a meaningful share of a 35% gross margin on one job.
Turning Variance Into Better Estimates
A template is only useful if someone reads it. Review every completed job against its estimate weekly and sort variances into three buckets:
- Estimating error. The job was scoped wrong from the start. Fix the estimate template or scoping checklist.
- Execution friction. The estimate was reasonable but the crew lost time to parts runs, access problems, or waiting on another trade. Fix scheduling or staging.
- Scope creep. The customer added work that was never quoted. Fix the change-order process.
Shops that skip this step tend to blame the crew, which is usually wrong and always demoralizing. Most overruns trace back to estimating or scheduling, not effort.
Keeping the Data Clean
The template only works if actual hours are accurate. Automated timesheets tied to dispatch cut the guesswork, because technicians clock in and out against the job rather than reconstructing their day at 6 p.m.
Review variance weekly, not quarterly. A weekly cadence catches estimating drift while the jobs are still fresh enough to explain, and it keeps the template from becoming another report nobody opens.
Materials Markup, Labor Markup, and the Plumbing Profit Margin You Actually Keep
Materials markup and labor markup are not the same lever, and mixing them up distorts your plumbing profit margin. Materials markup covers parts plus handling, sourcing, and warranty risk.
Gross profit is revenue minus direct costs (labor and materials); gross profit margin is that figure as a share of revenue, while net profit margin is what remains after overhead. Job-level decisions run on gross profit.
Review your labor markup and materials markup separately each quarter. When margins slip, the cause is usually one of the two, and splitting them shows you which one to fix.
Flat-Rate vs Hourly Pricing: Which Model Protects Labor Profitability
Flat-rate pricing quotes a fixed price per job, while hourly pricing bills by time spent. Flat-rate protects labor profitability better in most cases, because the price is set before work starts and does not shrink when a technician works efficiently.
| Model | Best For | Risk |
|---|---|---|
| Flat-rate | Repeatable service calls | Underestimating job complexity |
| Hourly | Open-ended repairs | Rewards slow work |
| Hybrid | Mixed service and install work | Needs clean job data |
Whichever model you choose, the loaded labor rate stays the foundation. Flat-rate pricing only works when your labor time estimate is accurate, and that accuracy comes from tracking actual hours job by job.
Post-Job Variance Analysis and a Job-Level Profitability Dashboard
Post-job variance analysis compares estimated labor hours to actual hours on every completed job. If jobs consistently run long, your estimates are off or your crews are hitting field friction. A job-level profitability dashboard puts this on one screen so you see the pattern across jobs, not one invoice at a time. Setting the rate is only half the job; measuring what you kept is where the money hides.
The KPIs Worth Tracking
You do not need a wall of metrics. Five tell you most of what you need about labor profitability at the job level:
- Labor gross margin. Job revenue minus direct labor cost, divided by job revenue. The cleanest read on whether a job type is worth doing.
- Revenue per billable hour. Job revenue divided by billable hours, showing what the market actually pays for an hour of your crew’s time.
- Estimate-to-actual variance. Actual minus estimated hours, in hours and dollars. Track the average and the spread, because a few big misses can hide behind a healthy average.
A Sample Tracking Template
A dashboard is only as good as the rows feeding it. A simple job log with these fields gives you everything above without buying software:
| Field | Example Entry |
|---|---|
| Job number | 1042 |
| Job type | Service call / install / emergency |
| Technician(s) | Name and hours each |
| Estimated hours | 6.0 |
| Actual hours | 7.5 |
| Loaded rate (CAD/hr) | 95 |
| Job revenue (CAD) | 1,450 |
| Direct labor cost (CAD) | 712.50 |
| Materials cost (CAD) | 210 |
| Labor gross margin % | 50.9% |
| Revenue per billable hour (CAD) | 193.33 |
| Variance (hours) | +1.5 |
| Callback? | No |
Roll those rows up by job type and technician and you have a dashboard. A shop might find service calls clear a healthy labor gross margin while installations drag it down, or that one technician’s variance is consistently positive because their jobs are under-scoped at the estimate stage.
Reading the Dashboard
A few patterns are worth watching for:
- High revenue per billable hour but low labor gross margin. You are charging well but the hours cost more than you think, usually because the loaded rate is stale or burden is undercounted.
- Healthy labor gross margin but falling billable efficiency. Jobs are priced fine, but the crew is losing paid hours to drive time, shop time, or waiting. The fix is scheduling, not pricing.
- Wide variance spread with a healthy average. Averages hide outliers. Look at the worst quartile, not just the mean.
Closing the Loop
The dashboard feeds three decisions: which job types to pursue, which estimates to re-scope, and which technicians need support or training. Review it monthly with the same discipline you apply to the books, and update your loaded rate whenever wages, burden, or billable efficiency move.
At YourRadar, our workforce management tools feed dispatch mapping and automated timesheets into exactly this kind of view, so owners see job-level labor profitability without building reports by hand.
The rate you set is a hypothesis. The dashboard is how you find out whether it was right. Track labor gross margin, revenue per billable hour, and estimate-to-actual variance on every job, and you will know within a month which jobs are funding the business and which ones are quietly draining it.
Sensitivity Analysis: Testing Pricing Scenarios Before You Quote
Sensitivity analysis means testing how your profit changes when one input moves. Before committing to a quote, run the numbers at a few labor rates and efficiency levels to see where the job stops making money. Ask three questions:
- What happens to profit if the job runs two hours longer than estimated?
- What happens if billable efficiency drops because of a callback?
- What price do you need to hold your target margin if materials rise?
A job that only works at perfect efficiency will lose money in the real world. Testing the downside protects you from surprises.
Labor profitability is not a single number you set once. It is a habit: know your loaded rate, track every job against the estimate, and test the price before you quote. That discipline separates shops that grow from shops that stay busy and broke.
Frequently Asked Questions
What is a good profit margin for plumbing?
Most plumbing companies aim for a gross profit margin of roughly 35 to 50 percent on service work, with net profit margin typically landing between 10 and 20 percent after overhead. The right target depends on your crew size, call volume, and how much nonbillable time you carry. Track gross profit margin per job, not just company-wide, because a handful of underpriced jobs can quietly erase the profit from dozens of well-priced ones. Review your margin monthly and adjust labor rates when actual job hours consistently exceed estimates.
How do you calculate a plumber’s billable hourly rate?
Start with the technician’s hourly wage, add payroll burden (CPP, EI, vacation pay, benefits, and workers’ compensation), then divide total annual overhead by the number of billable hours the crew actually produces. Add your target profit margin on top. For example, if a technician earns $32 per hour and burden adds 25 percent, the loaded cost is $40. If overhead recovery requires another $18 per billable hour, your break-even rate is $58, and a 30 percent margin pushes the billed rate higher. Use a plumbing labor cost calculator to run this for each role.
How can plumbers compare estimated labor hours with actual hours?
Record estimate labor hours on the job ticket before dispatch, then capture actual clock-in and clock-out time per technician per job. At job close, calculate the variance: actual hours minus estimated hours, divided by estimated hours. A 15 percent overrun on a four-hour job means 0.6 extra hours of unpaid labor cost. Review variance weekly by job type and technician so you can correct estimates and pricing. Automated timesheets tied to jobs make this comparison reliable instead of relying on memory or paper notes.
What percentage of a plumbing job should go to labor?
Labor typically represents 40 to 60 percent of the total price on residential service calls, with materials and overhead making up most of the remainder. Repair-heavy jobs skew toward labor, while fixture replacements and rough-ins carry more material cost. The percentage matters less than the absolute gross profit per job. If labor consumes 60 percent and overhead another 25 percent, only 15 percent is left for net profit. Use a plumbing job costing template to see the split on every job, then adjust labor markup where the ratio eats your margin.
Pricing plumbing work by feel leaves money on the table every week. YourRadar gives trades businesses the field data to price with confidence, from dispatch mapping that shows where hours go to automated timesheets that make job costing accurate. Backed by KDI’s more than 25 years of industry experience, our platform helps you lift billable hours and see real labor profitability job by job. Request a demo and see how YourRadar fits your crew.





