Skip to main content
2,200+ service businesses benchmarked. Do you know your gross profit per labor hour? See where you stand →
Level

Case Study

How an $8M HVAC contractor uncovered $140K in misallocated overhead 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. This is based on one real Level engagement; names are withheld and figures are adjusted for confidentiality.

$140K

Misallocated overhead identified in 48 hours

34 → 18 days

Invoice-to-payment cycle reduction

28

Operational data points in real-time dashboards

6 wk

Rolling cash flow forecast, reviewed weekly against actuals

The Challenge

$8M in revenue. Limited visibility into job-level profit.

Limited job-level costing

The P&L showed the business was profitable overall, but overhead, drive time, callbacks, and warranty work weren't broken out at the job level. Job margins were estimated, not measured.

Inconsistent expense tracking

Expenses were categorized inconsistently in QuickBooks, the chart of accounts had grown organically over years, and reconciliations were running 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 their field service platform and QuickBooks in under an hour. No IT department needed. Access to work orders, invoices, technician logs, customer records, and equipment history through vendor authorization, using read-only scopes or user permissions where available. QuickBooks accounting OAuth itself is not read-only; confirm the permissions and operational controls for each system.

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, the owner could ask 'Which customers are profitable this quarter?' and get an answer in seconds, drawn from posted data and controller-reviewed allocation rules.

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 as costs are posted, rather than waiting 60 days after closeout. Dashboard answers depend on timely inputs and controller review of allocation rules. 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 6-week cash flow forecast designed to flag expected dips before they hit, and compared it each week with actual bank balances.

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, reported service margins rose and reported project margins fell to a more realistic level, so both service and project pricing could be set on accurate costs. Total profit did not change; the pricing signal did.

#1 → #3

Their largest customer by revenue ranked third by margin after overhead allocation

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

In this one adjusted engagement, invoice-to-payment days fell from 34 to 18, a 16-day (about 47%) reduction (measurement basis and window are not published), after AR aging dashboards, automated follow-up triggers, and priority flagging on aging invoices were added. Seasonality and customer mix were not isolated, so treat these changes as contributors, not proven sole causes. A shorter cycle is a one-time cash timing gain, not new recurring profit.

6-week

rolling cash flow forecast, reviewed weekly against actuals

Built on historical seasonality, AR aging curves, and project schedules, so seasonal dips are planned for rather than discovered in the bank balance. To score a forecast like this on your own books, compare each week-6 projected ending cash balance with the actual ending balance, and track the average absolute dollar miss over at least 8 to 12 weeks, adding a percentage measure only when actual balances are well above zero.

Which of our jobs and customers actually make money once overhead, callbacks, and warranty work are counted, and is our biggest account really our best one?

The question behind this engagement

Paraphrased owner question, not a direct quote

What the Data Revealed

What the numbers showed

Highest-revenue customer ranked third by margin after overhead allocation

Once overhead was properly allocated, the largest account by revenue ranked third by margin after overhead allocation. Volume was high, but callbacks, extended warranties, and gradual scope creep on service agreements had compressed margins over time. Two mid-size commercial accounts with less revenue but tighter scopes were generating better returns per dollar.

$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. To check this on your own books, here is a fictional example: $600K of shop overhead is charged entirely to $3M of service revenue, while $5M of project revenue carries none. Labor hours split 40% service and 60% project. Using labor hours as the driver, service is assigned $240K and projects $360K. Service margin after overhead rises by $360K / $3M = 12 points, and project margin falls by $360K / $5M = 7.2 points. Total profit is unchanged.

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 the owner 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.

Based on a real Level engagement. Names are withheld and exact figures are adjusted to protect client confidentiality, the same discretion we bring to your data.

Simple pricing

Three tiers, one ladder.

$500+/mo

Bookkeeping

The clean data layer: monthly books, reconciliations, and organized financials AI can work with.

$1,500-$5,000/mo

Scale

The full AI operating layer: custom agents, weekly actions, and benchmarks to grow margin per hour.

Custom

Platform / Multi-Office

Multi-branch benchmarking and scorecards for PE-backed and multi-location groups.

Think your numbers might be off?

Same process we ran for this case study. 48-hour turnaround once system access is in place.

2,200+ contractors in the research universe$13.25B in job revenue analyzedWeekly action cadenceContractor research basis and metric-specific samples, not a count of client engagements

No credit card. 15-min audit. We only follow up if we can actually help.

No commitment. Real numbers, not generic advice.