Visibility
8 min
By
Stuart Trier

You Can Die in a Lake That Averages Two Feet Deep

A foundation and waterproofing company was selling $338,000 a month while its crews produced $160,000. Nobody had connected those two numbers until someone pulled up a Builder Prime report and realized that the business had never tracked what a single job actually cost to complete.

A foundation and waterproofing company was selling $338,000 a month. Its crews were producing $160,000. Nobody had connected those two numbers until Stuart Trier pulled up a Builder Prime report on an advisory call and started asking questions nobody had thought to ask.

The gap between those two figures had nothing to do with sales effort or crew capacity. The business had no job-level data — no way to see what a completed job actually cost in labor, materials, and subcontractor time, and no way to know which foreman was running tight crews and which was quietly bleeding margin. Builder Prime tracked leads, proposals, and deposits, while production data — what happened after the crew left the lot — lived nowhere.

We'll call the company Crestline Foundation & Waterproofing and the owner Victor — he's asked us to keep the details anonymous, but the numbers are real. Victor had brought in Danny, a former salesperson, to take over production management and finally get a handle on what the field was actually doing. The consequences of flying blind were stacking up in ways Victor could feel but couldn't yet quantify.

Key Takeaways

  • Tracking monthly gross profit is not the same as knowing whether your jobs are profitable. Averages hide the depth — and somewhere inside your monthly number are jobs that cost more to complete than they generated in margin.
  • Direct labor percentage per job is the foreman scorecard metric. If one foreman consistently runs 4 points higher than the others, that's a pattern worth a conversation — not a disciplinary one, a diagnostic one.
  • The gap between sales volume and production output is its own metric. Selling $338,000 while producing $160,000 doesn't just mean the business is behind — it means the backlog is building in a way that will eventually push customers to a competitor with a shorter wait time.
  • Fully burdened labor cost is rarely what owners think it is. $25 an hour on a timesheet is closer to $45–$50 once taxes, benefits, and overhead burden are applied. Drive time is labor cost. It shows up on the job-level costing sheet whether it's tracked or not.
  • Commercial subcontractor work generates top-line revenue and compresses margins. Without job-level data, the compression is invisible. With it, the business can make a deliberate decision about which work to take and which to price higher or decline.
  • The job-level costing sheet doesn't require new software. It requires discipline: tag the crew lead, pull the hours, cost the materials, close the job within a week. Ten minutes per job. The feedback loop it creates is worth more than any dashboard.

What $338,000 in sales was hiding

Crestline's fiscal year runs from October to September. By April, the company was slightly behind its $3 million annual target — close enough that a strong busy season would get them there, but close enough to be uncomfortable. Victor had sold $338,000 the prior month. Stuart's next question was simple: how much did you produce?

The answer was $160,000.

"If sales are hitting $300,000 a month, production can't be stuck at $160,000. You'll be booked out eight weeks, and customers will stop waiting."

To hit $3 million on a fiscal year starting in October, Crestline needed to average $250,000 a month in production. They were running at $160,000. The busy season would help, but the production gap ran deeper than seasonality: the business had no way to measure what production actually was, which meant Danny had no way to know whether the gap came from not having enough work scheduled, not having enough crew capacity, or not executing efficiently on the jobs they did have.

Stuart's framing was direct. The production number doesn't tell you why the gap exists. But it creates the decision tree. Danny could look at the number and ask: can we improve how much we're booking for the crews? If the schedule is the problem, that's one conversation. If sales isn't generating enough pipeline, that's a different one. Without the number, every week starts from scratch.

The problem with averages

Stuart has a line he uses when explaining why job-level data matters more than monthly totals.

"You can die in a lake that averages two feet deep. You just need to know where it's six feet deep — that's where you're going to drown."

Averages hide the depth. A contractor who knows their monthly gross profit percentage but has never looked at it on a job-by-job basis is working from an average. And somewhere in that average are jobs running at a 13% margin — jobs where, once you add rent, insurance, and fixed overhead on top of direct costs, the business paid to do the work.

Hassy Jamal, Clear Results' Director of Financial Strategy, put it plainly on the same call:

"Once you add rent, insurance, and everything else it costs to run the business, they paid to do that job. They lost money on it."

At Crestline, nobody had looked at job-level margin because nobody had built the system to track it. Builder Prime showed invoices. It didn't show which crew did the job, what materials they used, how many days they were on site, or what the actual labor cost was after accounting for overtime and burden. The monthly gross profit number looked fine. Somewhere inside it were jobs that were quietly bleeding.

Building the scorecard from scratch

The goal Stuart and Hassy set for Danny was specific: build a job-level costing sheet that tracked every completed job against five buckets — commission, materials, direct labor, subcontractor costs, and finance fees. Total those costs, subtract from the job revenue, and you have gross profit per job. Divide gross profit by the number of crew days on site, and you have gross profit per day. Tag the foreman, and you have a foreman scorecard.

"I'd rather build the system and hand it to you — so you have the data and you're tracking whether the crews are consistently hitting the right output per week, per month."

The mechanics weren't complicated. Stuart had built the same sheet for other clients and estimated it takes about ten minutes to cost a job once the system is running. The hard part was getting clean inputs — specifically labor, which required pulling hours from ExactTime and multiplying by the fully burdened rate.

Hassy was direct about what "fully burdened" actually means:

"Paying $25 an hour doesn't cost you $25. It's more like $45 to $50 an hour once you factor everything in."

When two crew members drive an hour to a job site, that's $100 in labor cost before a shovel touches the ground. Most owners know this in the abstract. Almost none of them have it showing up on a job-level costing sheet.

What direct labor percentage actually measures

Direct labor percentage is the share of a job's revenue that goes to paying the people who did the physical work — not including materials, subcontractors, commissions, or overhead.

The formula: total crew wages for the job divided by total job revenue, expressed as a percentage.

If a $10,000 job took four crew days at a fully burdened cost of $400 per day, direct labor was $1,600, and direct labor percentage was 16%.

The reason this number matters at the job level rather than the monthly average: the same business can have foremen running at 17% direct labor on some jobs and 21% on others. A 4-point difference looks small. On a $200,000-a-month production volume, it's $8,000 in margin, every month. The foreman scorecard turns that invisible difference into a manageable one.

Target range for most foundation and waterproofing contractors: 15%–20% direct labor. Above 22% on a recurring basis signals a crew efficiency problem worth investigating.

The foreman scorecard

The foreman scorecard

Stuart's pitch for why foreman-level tracking matters was diagnostic, not disciplinary.

""Their number is their direct labor percentage. If you have 15 jobs, the foreman's name, and the direct labor percentage for each one, you can see the pattern: every time a certain foreman runs a job, direct labor comes in at 21%, while everyone else is at 17%. That's the conversation — not because he's a bad foreman, but because we don't know yet. That's exactly what we're trying to find out." 

Victor's crews had a structural problem that made this harder: when production slowed, crew members bounced between jobs, sometimes sending four different crews to the same site in a single week, each doing their specialty. That made it nearly impossible to assign accountability to a single foreman. The fix was straightforward in principle — tag every completed job to the crew lead who ran it, not to every person who touched it — but it required discipline in the CRM that didn't currently exist.

Kayla, the office administrator, was manually reconstructing material usage after jobs closed because field crews weren't consistently filling out material sheets. That's a data integrity problem sitting directly upstream of the costing sheet. Danny's job was to close that loop: get the labor hours from ExactTime, get the materials from Sage and the field sheets, and enter both into the costing sheet within a week of job completion. Not a monthly financial autopsy — a rolling weekly picture.

From 13% jobs to a 55% floor 

Stuart pulled up a completed costing sheet from another client on the same call to show Victor what the output looks like when the system is running. The gross profit percentages on recently completed jobs: 55%, 60%, 47%, 52%, 70%.

"By March, there were no jobs in the 30s. Everything was coming in at 55% or higher gross profit. That's what a working feedback loop looks like — that's how you dial up production."

The contrast with a 13% job was immediate and concrete — the difference between a job that contributed to the business and a job the business paid to complete. Knowing which jobs are which and why makes the feedback loop possible. A job that came in at 42% instead of the expected 50% gets a conversation: what went wrong? Sometimes the answer is a crawlspace that was tighter than the estimate allowed for, and no action is required. Sometimes it's a crew that consistently underperforms on waterproofing installs, and a training conversation is overdue. Without the data, neither conversation happens.

Victor had one more structural problem the costing sheet would eventually surface: commercial subcontractor work. Crestline was running $300,000–$500,000 in commercial jobs per year, drawn by the top-line revenue. The margins on that work were demonstrably worse than those for direct-to-homeowner residential work.

"Contractor work doesn't pay quite as well — the profits aren't as good. So we're trying to do more of that big stuff directly for homeowners."

Job-level costing would let Victor see exactly how much worse, job by job, and make a deliberate decision about whether the volume was worth the margin compression — rather than running the commercial work because it felt like growth.

What this looks like across other trades

The job-level costing problem isn't specific to foundation repair. Any trade running hourly crews on project-based work has the same blind spot.

HVAC installation and replacement: A contractor running three installation crews knows their monthly gross profit margin. They don't know that one crew lead consistently runs 4% higher on direct labor than the other two, or that jobs in a specific zip code run long because of older duct configurations. The monthly average hides both patterns. A job-level costing sheet exposes them within a quarter.

Roofing: A roofing company knows which months are profitable. They don't know which job types are. Tear-off and replace on a 30-square shingle roof looks identical in the monthly revenue line to a 30-square standing seam metal install — but the labor cost, material cost, and crew hours are completely different. Without job-level tracking, the company prices both the same way and wonders why some months don't pencil out.

Plumbing: A residential plumbing company running service calls and remodel work has two revenue streams with different margin profiles. Service calls are high-margin, high-volume, low-revenue. Remodel work is lower-margin, lower-volume, higher-revenue. If both are pooled into a single monthly gross profit figure, the business has no way to know which stream is actually driving profitability — or which sales rep is quoting remodel work too thin.

Electrical: An electrical contractor doing commercial tenant improvements alongside residential panel upgrades faces the same commercial-versus-residential margin compression Victor was seeing. The $200,000 commercial TI job looks great in the revenue line. The job-level costing sheet reveals that the 14-week timeline, the subcontractor coordination, and the change order disputes brought it in at 31% gross profit. The residential panel upgrades it displaced were running at 58%.

The diagnostic is the same across all of them: pull the last 20 completed jobs, cost each one against labor, materials, and subcontractors, calculate gross profit and gross profit per day, tag the crew lead. What you find in the first pass almost always changes something about how the business prices, schedules, or assigns work.

Symptom In Your Trade System Installed Version
Monthly gross profit looks fine; bank account doesn't match HVAC contractor with healthy monthly margins but three jobs per quarter quietly running below breakeven Visibility Job-level costing sheet tracking gross profit and direct labor percentage per completed job, reviewed weekly
No way to know which foreman runs the tightest crews Roofing company with four crew leads; no data on who consistently hits margin and who consistently runs over on labor Visibility Every completed job tagged to a single crew lead; foreman scorecard showing direct labor percentage by foreman, updated each pay period
Selling $300K a month, producing $160K Plumbing company booking remodel work faster than crews can complete service calls already on the schedule Direction Revenue targets reverse-engineered into crew capacity and production benchmarks before the sales team goes to market
Commercial work filling the schedule; margins quietly compressed Electrical contractor running commercial TI work at 31% gross profit while residential panel upgrades run at 58% Profit Engine Minimum gross margin rule applied per job type; commercial work accepted only when it meets the same margin floor as residential
Drive time eating margin before the work starts Foundation contractor dispatching a two-man crew an hour away; $100 in labor cost before a shovel touches the ground Profit Engine Schedules route-optimized by geography; job-level costing flags labor overruns caused by dispatch inefficiencies
Field crews not logging materials; office reconstructing costs manually Waterproofing company where the office administrator is rebuilding material costs from memory and Sage after every job closes Operations Engine Field crews log materials used on a per-job sheet before leaving site; jobs costed and reviewed within seven days of completion

Take the diagnostic

If your monthly numbers look fine but the bank account tells a different story, the job-level costing sheet is the first thing to build — not the last.

The free diagnostic  identifies your primary constraint across all five systems in five minutes, including whether Visibility is where to start.

Client details have been anonymized at the company's request. All figures are drawn from the engagement record. Individual results vary; this article describes one client's situation and is not a guarantee of future results.

Frequently asked questions

I track gross profit monthly. Why do I also need it by job?

Monthly gross profit tells you the average depth of the lake. Job-level costing tells you where it's six feet deep. A healthy monthly average can coexist with several jobs per quarter that are running below breakeven — and those jobs will never surface in a monthly report. The job-level sheet is what lets you have the right conversation with the right foreman about the right project, rather than making general adjustments that may or may not address the actual problem.

Read More: Job Costing for Contractors: How to Stop Losing Money on Profitable Jobs →

What's the minimum I need to track per job to make this useful?

Five buckets: commission paid to the sales rep, materials used, direct labor (hours × fully burdened rate), subcontractor costs, and any finance fees. Add job revenue, calculate gross profit and gross profit percentage, note how many crew days were on site, and tag the foreman. That's the complete picture. You don't need software beyond a spreadsheet in the first pass — the goal is clean data, not a complex system.

Read More: The Weekly Scorecard: How to Know If Your Business Is Healthy in 5 Minutes →

My crews don't log materials consistently. How do I fix the data problem before building the costing sheet?

Make the material sheet a condition of job close-out, not a courtesy. The foreman doesn't mark a job complete until the material log is submitted. If the office has to reconstruct material costs manually, the foreman gets a reminder and then a documented conversation. The behavioral change usually takes two to three pay periods once it's tied to something the field team cares about — like a performance bonus that requires clean job data to calculate.

Read More: Profit Leakage: The 5 Places Home Service Businesses Lose Money →

How do I handle jobs where multiple crews touched the same site?

Tag the job to the crew lead who was on site the most days, or the foreman who had primary accountability for the outcome. The goal isn't to perfectly allocate labor across four crew members who bounced through — it's to establish a pattern over time. One messy job doesn't tell you anything. Twenty jobs tagged to the same foreman, all running 4 points high on direct labor, tells you something actionable. Start with the foreman who ran the most work in the last 90 days and build from there.

Read More: How to Build Accountability Without Micromanaging →

We do a mix of residential and commercial work. Should I track them separately?

Yes, from day one. Commercial subcontractor work and direct-to-homeowner residential work have different margin profiles, different sales costs, and different production rhythms. If they're pooled in the same costing sheet without a job-type tag, the monthly average will obscure which revenue stream is actually driving profitability. Run the same five-bucket costing model for both, but filter your monthly summary by job type so you can see the margin difference clearly.

Read More: How to Price Home Service Jobs for Real Margin (Not Just Revenue) →

What direct labor percentage should I be targeting?

For most foundation repair and waterproofing contractors, 15%–20% is a healthy range. Above 22% on a recurring basis across a foreman's jobs is a signal worth investigating — either the jobs are being underquoted, the crew is running inefficiently, or drive time and setup overhead are eating into productive hours. The number will differ by trade: HVAC installation crews typically run higher than service call technicians, and roofing tear-off runs differently than commercial flat work. The benchmark that matters most is your own historical average, once you have enough jobs costed to establish it.

Read More: Strategic Planning for Home Service Businesses: A Step-by-Step Framework →

Stuart Trier

Founder & CEO

Stuart Trier has built, bought, and sold multiple companies, scaling his first from $0 to $8M in revenue in just three years. He then grew his second company to 28 locations in 12 months before a successful exit to a publicly traded company. Drawing on nearly 1,800 coaching calls since 2023, he helps home service business owners achieve double and triple-digit growth by implementing the systems, strategies, and accountability that drive scalable results.

view on linkedin

Get Your Business Score

Answer 10 questions. Get a clear picture of where your business stands and where to focus next.
TAKE THE FREE DIAGNOSTIC

Book the Call

CEO Stuart Trier will show you exactly what is holding your business back and which system to fix first.
Clear Results official corporate logo on dark background
Strategic advisory for home service companies doing $3M to $10M in revenue. We install and operate the systems required to scale.
get started
Home service companies doing $3M to $10M in revenue. Canada & United States.
take the diagnostic
© 2026 Clear Results Corp. All rights reserved.
Privacy Policy