In our first post in this series, we laid out the core thesis: most performance pay programs don't fail because crews were unmotivated. They fail because nobody checked whether the numbers underneath the program were true before building on top of them. Of the six checks we run before helping an operator launch, this is the one that comes first — and the one most owners skip entirely, because it feels like it shouldn't need checking.
Ask any contractor what their labor cost runs as a percentage of revenue and they'll give you an answer fast. It's usually a number they've quoted for years — something close to what their pricing model assumes, or what a consultant told them a decade ago, or what "feels right" based on how the business has always felt profitable. It's rarely a number anyone has pulled fresh from the last twelve months of actual job data.
Where the assumed number and the real number come apart
Pricing assumptions and performance baselines are built for different jobs, and that's where the trouble starts. A pricing model exists to win work at a margin that keeps the business alive — it's built once, adjusted occasionally, and treated as directionally correct rather than precise. A performance baseline exists to measure what a crew actually did, on actual jobs, against actual hours logged. When a company launches a bonus program off the pricing number instead of the performance number, it's aiming at a target that was never built for this purpose.
The gap shows up in a specific, predictable way. Pricing assumptions tend to reflect the business at its best — the crew that's fully staffed, the job with no surprises, the day nothing goes wrong. Real job history includes all of that plus the callbacks, the rain delays, the new hire still learning the route, and the punch-list job that ran long. Averaged out, real data almost always tells a less flattering story than the number in the pricing sheet — and a bonus program set against the flattering number is a program that very few crews can actually reach.
Checking the baseline is about setting a fair, reachable target for the incentive layered on top of pay. It has nothing to do with base wages, which stay fully intact for every hour worked regardless of what this analysis finds. This is a target-setting exercise, not a pay-cutting one.
How we actually check it
This isn't a complicated calculation, but it does require pulling real data rather than trusting memory. The process we run with an operator looks like this:
- Pull twelve months of actual labor hours and actual revenue, synced from the operation's own timekeeping and job data — not the estimate used to price the work.
- Calculate real labor cost as a percentage of revenue, company-wide first, to get the headline number.
- Break it down by branch, crew, and job type. A company-wide average can hide as much as it reveals — one division running lean can offset another running hot, and the blended number looks reasonable while neither piece actually is.
- Compare the real number to the assumed number the owner has been operating on, and size the gap in percentage points, not just dollars — because that gap is what a bonus target would have to close.
The output isn't a single verdict. It's usually a spread — some parts of the business running close to the assumed baseline, others running meaningfully worse, and occasionally a pocket running better than anyone expected. That spread is exactly what a company-wide bonus target would flatten out and miss.
What this looked like on a real operation
Here's a composite, built from patterns we've seen across engagements and stripped of anything identifying: an HVAC company came to us assuming labor ran about 32% of revenue across the business — the number baked into their pricing model for years. When we pulled twelve months of real data and split it by job type, the picture split in two directions at once.
| Job type | Assumed labor % | Actual labor % | Gap |
|---|---|---|---|
| Installs | 32% | 29% | 3 pts better than assumed |
| Service calls | 32% | 41% | 9 pts worse than assumed |
| Blended (company-wide) | 32% | 34% | Looks close — and hides both problems |
The blended number — 34% against an assumed 32% — looked like a minor miss, the kind of thing an owner might shrug off. It wasn't. It was two very different stories canceling each other out on paper. A single company-wide bonus target would have handed install crews an easy win for doing nothing differently, while setting a service-call target that was already out of reach before the program launched.
"The blended number is almost never the number to build a program on. It's an average of two or three different businesses that happen to share a P&L."
Why this is the check that has to come first
Every other check in this series — budget variance, where the hours go, staffing ratios, payout modeling — depends on having an honest baseline to measure against. Run those analyses against a baseline that's wrong and you get answers that are precise, confident, and wrong in exactly the same way. This is why it's the first move, not an optional first step.
It also does something for trust that no amount of program design can substitute for. A crew can tell, usually within the first pay cycle, whether a target reflects their real work or someone's guess about it. A target built from the operation's own twelve months of history is one a foreman can defend to their crew without having to take management's word for it — because the data is the operation's own.
Where this stands today
This is one of the checks our team runs directly with an operator's synced job data, and it's also one of the first pieces becoming self-serve inside the platform as our automation rolls out — so more of this becomes something an owner can pull up directly rather than wait on. Right now, if you're evaluating performance pay, this is analysis our team does with you before a target is ever set.
What's ahead in this series
Frequently asked questions
What exactly counts as "labor cost as a percentage of revenue"?
Total labor hours paid, valued at fully loaded cost, divided by the revenue those hours generated — measured from actual timekeeping and job records, not from the estimate used to price the work.
Why can't we just use the number in our pricing model?
Pricing models are built to win work at a sustainable margin — they reflect the business on a good day and get adjusted occasionally. A performance baseline needs to reflect what actually happened across a full year of real jobs, callbacks and all. The two numbers are built for different purposes and usually don't match.
What if our hours aren't tracked cleanly by job type?
That's a common starting point, not a disqualifier — it's often the first thing this check surfaces. Even a partial breakdown by branch or crew is usually enough to see whether a company-wide average is hiding meaningful spread underneath it.
Is a gap between assumed and actual labor cost a sign something is broken?
Not necessarily — small gaps are normal. What matters is whether the gap is even across the business or concentrated in specific job types, because that determines whether a single company-wide bonus target will work or backfire.
Find out what your real baseline says
Before you set a target, let's run your last twelve months against what your pricing model assumes. Most operators are surprised by what the gap actually looks like.