TL;DR (60 seconds):
Most plumbing contractors track one number religiously: quoted versus actual job cost. They compare what they estimated against what they spent, declare victory when actual comes in under budget, and assume the job was profitable.
Most plumbing contractors track one number religiously: quoted versus actual job cost. They compare what they estimated against what they spent, declare victory when actual comes in under budget, and assume the job was profitable.
This number misleads more than it informs.
According to Level's job costing analysis, 91% of contractor jobs in their dataset have revenue but lack allocated labour and overhead costs. The quoted-versus-actual comparison only captures direct materials and labour hours. It ignores vehicle costs, insurance, callbacks, administrative time, and the opportunity cost of tying up skilled workers on a job that drags past its scheduled completion.
A plumbing contractor might hit 98% of quoted costs and celebrate, while the job actually lost money once all costs are properly allocated. The real margin calculation requires tracking what Level calls the "phantom costs" that never make it into the initial comparison.
We will examine what costs the quoted-versus-actual number misses, show how a seemingly profitable job can destroy margin when fully costed, and explain which tracking method actually predicts cash flow. The goal is not perfect job costing on every call-out, but identifying which jobs consistently eat profit so you can price them properly or stop taking them.
For plumbing contractors running on thin margins, this distinction determines whether growth builds wealth or just scales losses.
The number you already trust
Gross margin percentage. Most plumbing contractors track this religiously, and for good reason. It tells you immediately whether a job made money or lost it. Calculate revenue minus direct costs, divide by revenue, and you have a number that fits on a dashboard and compares cleanly across jobs.
Gross margin percentage earned its place because it works with the data you already collect. Material costs come straight from supplier invoices. Labour hours get tracked for payroll. Vehicle expenses show up on fuel cards and service bills. The calculation needs no new systems, no additional reporting, and no behaviour change from the crew.
It also moves fast enough to matter. While quoted-versus-actual analysis requires waiting until every invoice arrives and every timesheet gets processed, gross margin percentage gives you a reading within days of job completion. When you are pricing the next similar job, you remember whether the last one hit 35% or scraped 18%.
Why it works most of the time
Gross margin percentage and quoted-versus-actual job cost agree under predictable conditions. When your crew works the expected hours, materials arrive at quoted prices, and no hidden costs surface weeks later, both metrics point the same direction.
The alignment holds strongest on standard jobs. Replacing a water heater or clearing a blocked drain follows known patterns. Your 45% Job Was Really a 24% Job explains how contractors operate with reliable gross margins on routine work because scope, materials, and labour requirements stay within familiar boundaries.
Gross margin percentage also tracks reality when overhead allocation stays consistent. If you spread vehicle costs, insurance, and administrative time the same way across jobs, the metric maintains its predictive power. A job that delivers 32% gross margin this month should deliver similar results next month, assuming comparable scope and execution.
The substitute works particularly well for capacity planning. When gross margin percentage stays above your threshold across multiple jobs, you know the business model functions. Job Costing for Contractors: Why 91% of Jobs Lack Cost Data reveals that most contractors rely on gross margin tracking precisely because it provides operational guidance without complex cost allocation systems.
Small plumbing operations especially benefit from this simplicity. With limited administrative capacity, gross margin percentage delivers actionable insight without requiring dedicated bookkeeping resources or sophisticated project management software.
Where the two disagree
The substitute metric and proper quoted-versus-actual job cost diverge when indirect costs hit jobs unevenly, but the substitute treats all jobs as carrying the same overhead burden. This happens most sharply when a plumbing contractor takes on jobs requiring different skill levels, customer sites with varying access challenges, or projects where material delays create labour inefficiencies that don't show up in the basic comparison.
The divergence condition is precise: when job-specific factors drive actual costs away from the quoted baseline, but those factors don't affect revenue. Revenue-per-job or margin percentages will suggest one job is performing normally while the proper quoted-versus-actual analysis reveals significant overruns.
Take a quoted bathroom renovation at $8,500 with $3,400 in materials and $2,800 in labour budgeted. The substitute metric shows revenue arrived as expected and gross margin hit 27%. The job looks successful.
The actual cost breakdown tells a different story. Materials came in at $3,200, saving $200. But the customer's second-floor location required carrying tools up narrow stairs, the old pipework fought removal, and a delayed delivery meant the plumber returned twice. Actual labour: $4,100. The job lost $600 against quote, a 7% overrun that doesn't appear in the revenue-focused view.
Both readings are honestly derived. The substitute correctly reports that revenue targets were met and materials came in under budget. The quoted-versus-actual analysis correctly identifies that the job consumed more resources than planned, eroding profitability.
The mechanism behind the gap
The substitute metric aggregates away the very cost variances that quoted-versus-actual analysis exists to capture. Job costing for contractors reveals that 91% of jobs in their dataset have revenue but lack allocated labour hours, meaning most contractors track what came in but not what went out at the job level.
Revenue-based metrics assume that hitting the quoted price means hitting the quoted profit. This holds only when actual costs track exactly to budget, which happens rarely in field work. Every callback, every difficult access situation, every material substitution that requires extra fitting time creates cost variance that revenue figures cannot see.
The substitute double-counts efficiency improvements while missing inefficiencies entirely. When a skilled plumber completes work faster than quoted, both revenue and apparent margin look strong. When the same plumber hits complications and works longer, revenue still arrives as expected but actual margin shrinks invisibly.
Labour allocation creates a particular blind spot. The substitute metric sees total labour costs across all jobs, then assumes even distribution. In reality, complex jobs consume disproportionate time while simple jobs finish quickly. Analysis shows that while median actual labour hours hit 99.4% of budget, the mean reaches 108%, indicating that some jobs significantly overrun while others finish under budget.
Material handling compounds the problem. The substitute tracks material costs when purchased, not when installed. Jobs requiring multiple site visits to complete installation spread actual costs across time periods, making current job profitability appear stronger than it actually is. The quoted-versus-actual view captures these costs when they hit the specific job, revealing the true resource consumption.
Administrative time presents another aggregation error. Customer queries, permit delays, and coordination calls consume hours that revenue-focused metrics assign to general overhead. Proper job costing allocates this time to the jobs that generate it, often revealing that apparently profitable small jobs become loss-makers when fully loaded.
How long the gap can hide
The divergence between substitute metrics and actual job costs can persist for months without detection, particularly in plumbing contractors running multiple concurrent projects. [Research indicates that contractors operating with phantom margin often don't discover the gap until cash flow problems force
Which one to act on
Use actual job cost as your primary decision-making metric, with one exception: when quoting new work in a market you know well.
Actual job cost drives operational decisions because it tells you what happened with real money. When Level's analysis shows a quoted 45% margin shrinking to 24% actual, that 21-point gap represents cash that left your account. The actual number reveals where your estimating consistently fails, which crews work efficiently, and which job types genuinely make money.
Quoted-versus-actual only matters for two decisions: refining your estimating process and identifying systematic problems. If your residential service calls consistently run 30% over labour estimates, that pattern tells you to adjust future quotes or examine your scheduling. But it does not tell you whether to take more service calls this month.
Switch to actual job cost for resource allocation, crew performance reviews, and pricing strategy. Instead of celebrating a job that came in "under budget" at 85% of quoted cost, calculate whether that job contributed enough gross margin to cover your overhead. Instead of assuming your best estimator produces your most profitable work, track which jobs actually generated cash after all costs.
The exception holds when estimating familiar work in stable conditions. Your quoted costs for standard bathroom renovations, developed over dozens of similar jobs, probably predict actual costs within 10%. Here, quoted-versus-actual analysis helps you spot anomalies: the job that ran 150% of estimate signals a problem worth investigating.
What changes operationally: Your weekly job reviews focus on actual gross margin per job, not whether you beat the estimate. You track labour productivity by actual hours against actual output, not budgeted hours. You price new work based on what similar jobs actually cost, adjusted for current material and labour rates.
You stop using estimated job costs for anything except the estimate itself. Monthly financial reviews examine actual job margins, actual overhead absorption, and actual cash generation. Performance bonuses tie to actual profitability, not estimated efficiency.
This shift requires tracking actual costs per job, which Level reports happens on only 9% of contractor jobs. Without that tracking, you cannot make the switch. But once you can measure actual job costs consistently, every operational decision improves because you know what your work actually costs and actually returns.
The quoted number remains useful for identifying where your estimating breaks down. The actual number tells you whether your business makes money.
Next Steps
Revenue per job tells you nothing about whether that job made money, and Level's analysis of contractor job costing confirms that 91% of jobs have revenue data but lack allocated labour and material costs.
Start with three jobs you completed in the last month. Calculate the true cost of each by adding quoted materials, actual labour hours at your fully loaded rate, equipment time, and any rework or callbacks. Compare this to what you collected.
You will know this exercise worked if you find at least one job where the margin was 15 percentage points different from what you assumed. Most contractors discover they have been celebrating jobs that lost money and worrying about jobs that were profitable.
Once you see the pattern, track every job this way for eight weeks. Look for the work types, crew combinations, or client behaviours that consistently underperform. The data will show you exactly where to tighten estimates or change processes.
Do not automate job costing until you have manually tracked 30 jobs. The numbers need to make sense to a person before software can help.
If manual tracking reveals consistent cost overruns worth more than $2,000 per month, we can show you where automation fits. Our free 20-minute diagnosis identifies whether your job costing problem needs better processes, different software, or actual AI to solve.
About AutoSpark
AutoSpark helps established small and mid-sized businesses find the one place AI or automation is genuinely worth applying, then builds and deploys it. The method is plain: interview the people doing the work, find where work repeatedly gets stuck, rank the problems by what they cost, and only build when the maths shows a clear payback.
AutoSpark is led by Patrick Nesbitt, a CA(SA), CFA and former private-equity investor, so AI is treated as an investment rather than a trend. Not an AI audit. Not a transformation programme. A short, evidence led diagnosis of where the money is leaking and what fixing it returns.
Start here: autospark.ai
