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

How to Read a Contractor P&L

The benchmark numbers are only useful if you can compute your own. This is a fully worked, representative $6M HVAC contractor P&L with the exact math behind every metric, job margin, WIP, labor variance, collection rate, and quote conversion. Representative company, real method. Re-run it on your own books.

This is a representative scenario. It is a composite $6M HVAC contractor built from real patterns across Level's contractor research, with no single company named. The computation and the benchmark ranges it is anchored to are real (contractor median gross margin 44.3%, collection rate 85.1%, labor share ~29%, and so on, from Level's contractor benchmark research). Machine-readable benchmark data: contractor.json.

Illustrative annual P&L, $6M HVAC contractor

Anchored to contractor-median cost structure. Every downstream computation below traces back to these lines.

LineAmount% of revenueNote
Revenue$6,000,000100.0%Service + install + service agreements
Direct labor (loaded)$1,740,00029.0%At contractor median labor share of ~29%
Materials$1,980,00033.0%Median materials share ~33%
Equipment + subs$600,00010.0%
Total cost of revenue$4,320,00072.0%
Gross profit$1,680,00028.0%Company-wide GM, below the 44.3% job median because of overruns
Overhead (SG&A)$1,140,00019.0%
Operating profit$540,0009.0%

The math behind each metric

Every formula, worked on the numbers above. Reproducible by construction.

Job gross margin

(Revenue − Direct cost) ÷ Revenue

One job billed $18,000 with $10,260 direct cost → ($18,000 − $10,260) ÷ $18,000 = 43%. That's right at the contractor median (44.3%). Company-wide GM lands lower (28%) because the loss-making minority of jobs drags the blended number down.

Labor-hour variance

Actual hours ÷ Budgeted hours

A job budgeted at 80 hours used 100 → 125% of budget (one of the 40% of jobs that go over). The extra 20 hours at a $65 loaded rate = $1,300 of margin erased on that job alone.

WIP / underbilling

Earned revenue − Billed revenue, where Earned = Contract × % complete

A $400,000 project 60% complete has earned $240,000. If only $200,000 was billed, $40,000 sits in underbilled WIP, work done, cash not yet requested.

Collection rate

Cash collected ÷ Amount billed

Bill $6,000,000, collect $5,106,000 → 85.1% (the contractor median). Closing the gap to a 94% target would free roughly $530,000 of cash currently stuck in AR.

Quote conversion

Won ÷ (Won + Lost) vs Won ÷ All quotes issued

Of decided quotes, 74% convert (near the 73.9% median). But counting every quote issued, including the ones that never got a decision, only ~38% turn into revenue. The other 62% was estimating effort that earned nothing.

Frequently Asked Questions

How do you calculate gross margin on a contractor job?

Job gross margin = (job revenue minus job cost) divided by job revenue. Job cost includes direct labor at fully-loaded rates, materials, equipment, and subcontractors, not overhead. In the worked example below, a job billed at $18,000 with $10,260 of direct cost has a gross margin of ($18,000 - $10,260) / $18,000 = 43%, right at the contractor median of 44.3%. The mistake most owners make is leaving unbilled labor or under-applied burden out of job cost, which overstates margin.

How is WIP (work-in-process) calculated for a contractor?

For a job billed on percentage-of-completion, earned revenue = total contract value multiplied by percent complete (costs incurred to date divided by total estimated cost). WIP is the difference between earned revenue and what you've actually billed. Underbilling means you've done more work than you've invoiced, cash you're owed but haven't asked for. In the example, a $400,000 project 60% complete has earned $240,000; if only $200,000 was billed, $40,000 sits in underbilled WIP.

What is labor-hour variance and why does it matter?

Labor-hour variance = actual hours divided by budgeted hours for a job. At 100% you're on budget. The contractor data shows 40% of jobs exceed their budget and 18% run past 150%. Because the hours were sold at a fixed price, every over-budget hour comes straight out of gross margin. In the worked example, a job budgeted at 80 hours that used 100 ran at 125%, the extra 20 hours at a $65 loaded rate erased $1,300 of margin.

Is this a real company, and can I trust the math?

It is a representative $6M HVAC contractor, a composite built from real patterns across Level's contractor research, with no single company named. The method and the benchmark ranges it is anchored to are real (contractor median gross margin 44.3%, collection rate 85.1%, and so on, from Level's contractor research). The point is reproducibility: every figure is computed from the line items shown, so you can re-run the same math on your own books and see where you land.

From clients

What contractors say after working with us.

Thought we were running 22% net. Real number was 11 once Sam allocated overhead correctly across labor and materials. Painful conversation but I needed it. We've been repricing every job since.
Owner · $6M commercial roofing & exteriors
We had 40 service contracts and no idea which ones actually made money once you included drive time and callbacks. Sam ran the analysis, three of our biggest were underwater. Repriced or dropped them, net margin went from 8% to 14% in one quarter.
Owner · $8M HVAC service & install
My CPA is great at taxes but nobody was looking at the actual business. Sam found $140K in overhead we were eating on service calls because our flat rates were 3 years out of date. Repriced the menu in 30 days. The pricing fix alone covers his fee for years.
CEO · $12M commercial electrical

Simple pricing

Three tiers, one ladder.

$99-$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.

Want this run on your actual books?

We'll compute your job margin, WIP, labor variance, and collection rate the same way, and show you where the money leaks. Free audit included.

2,200+ service businesses benchmarked$13.25B in revenue analyzedWeekly action cadence

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

No commitment. Real numbers, not generic advice.