2,200+ contractors benchmarked. How do your margins stack up? See where you stand →
Level

Case Study

How an $8M HVAC contractor found $140K in hidden costs in 48 hours

This commercial HVAC shop was doing $8M+ in revenue. They had a full team, a packed schedule, and no idea which jobs were making them money. Here is how Level changed that.

$140K

Misallocated overhead identified in 48 hours

34 → 18 days

Invoice-to-payment cycle reduction

28

Operational data points in real-time dashboards

5%

Cash flow forecast accuracy over 6-week horizon

The Challenge

$8M in revenue. Zero visibility into profit.

No job-level costing

Every job looked profitable on a P&L, but nobody had broken out overhead, drive time, callbacks, or warranty work at the job level. Profitability was a guess.

Messy books

QuickBooks was a dumping ground. Expenses were categorized inconsistently, chart of accounts had grown organically over years, and reconciliations were always behind.

60-day lag on financials

By the time the books were closed and the P&L was ready, the quarter was already over. Decisions were being made on gut feel, not data.

Cash flow surprises

Seasonal dips hit without warning. Big invoices sat unpaid for weeks. AR management was reactive, and the line of credit was the backup plan.

What We Did

From blind spots to real-time clarity

We connected to their existing systems, built a data pipeline, and had answers within 48 hours. No new software to learn. No months of onboarding.

01

Connected to their systems

We plugged into BuildOps and QuickBooks in under an hour. No IT department needed. Read-only access to work orders, invoices, technician logs, customer records, and equipment history.

02

Built a unified data pipeline

We ingested 28 operational data points from both platforms and normalized everything into a single financial model. Job costs, labor hours, material spend, overhead allocation, and revenue by customer, tech, and service type.

03

Deployed AI-powered financial dashboards

We stood up a dashboard that answers natural-language business questions. Instead of waiting for monthly reports, Mike could ask 'Which customers are profitable this quarter?' and get an answer in seconds.

04

Ran a full profitability audit

Within 48 hours, we had job-level and customer-level profitability broken out with proper overhead allocation. That is when the surprises started.

05

Set up real-time job costing

We replaced the old close-the-books-and-hope approach with live job costing. Profitability is visible during the job, not 60 days after closeout. If a job is trending unprofitable, the team knows before it is too late.

06

Built a 6-week cash flow forecast

Using historical patterns, AR aging, and seasonal trends, we built a rolling cash flow forecast that predicts dips 6 weeks before they hit. Accuracy within 5%.

Results

The numbers speak for themselves

$140K

in misallocated overhead identified in the first 48 hours

Overhead was being absorbed by service calls instead of properly allocated to projects. Once we reallocated, project margins jumped and service pricing became accurate.

#1 → #3

Their largest customer by revenue was only their third most profitable

High volume masked thin margins. After overhead allocation, two mid-size accounts were significantly more profitable per dollar of revenue.

34 → 18 days

invoice-to-payment cycle reduction

AR aging dashboards, automated follow-up triggers, and priority flagging on aging invoices cut collection time nearly in half.

5% accuracy

on 6-week rolling cash flow forecasts

Built on historical seasonality, AR aging curves, and project schedules. Seasonal dips that used to be surprises are now predicted 6 weeks out.

We were doing $8M and had no idea which jobs were profitable. Level broke it down by job, by customer, by tech. Turns out our biggest account was losing us money.

Mike H.

Owner, $8M Commercial HVAC Contractor

What the Data Revealed

The surprises nobody expected

Their biggest customer was their biggest problem

This one shocked everyone. The account that brought in the most revenue was actually their third most profitable customer once overhead was properly allocated. The volume was there, but the margins were razor thin. Callbacks, extended warranties, and scope creep on service agreements had eroded profitability over years without anyone noticing. Two mid-size commercial accounts with less revenue but tighter scopes were generating significantly better returns.

$140K in overhead was hiding in the wrong place

Overhead was being absorbed by service calls instead of allocated to construction and project work. That meant service margins looked worse than they were, and project margins looked better. The team was making pricing decisions on bad data. Service rates were too high (losing bids), and project bids were too low (winning unprofitable work). Fixing the allocation alone changed the way they priced every job going forward.

Real-time visibility changed behavior, not just reports

Once the team could see job profitability in real time, they started making different decisions. Service managers flagged jobs trending over budget before they closed out, not 60 days after. The office manager started prioritizing collections on the oldest invoices instead of the biggest ones. And Mike stopped guessing about cash flow and started planning around it. The data did not just produce better reports. It changed how the business operates day to day.

Company Profile

Company

Anonymized

Trade

Commercial HVAC & Refrigeration

Revenue

$8M+

Platform

BuildOps + QuickBooks

Think your numbers might be off?

We will connect to your books and deliver a profitability audit within 48 hours. Same process we ran for this case study. Free, no strings attached.