Wage Benchmarking for Owner-Operators (No HR Department Required)
By Rovaryn Digital · June 28, 2026 · 9 min read

You're the Whole HR Department — So Let's Make This Fast
You just got off the phone with a journeyman electrician who seemed like a great fit. He asked what the position pays. You said you'd get back to him by tomorrow — and now you're staring at your laptop wondering whether the number in your head is competitive or embarrassing.
This is the moment wage benchmarking for owner-operators actually matters. Not as an abstract HR concept, but as a five-minute answer to a concrete question: what do I offer this person tomorrow morning?
If you're running a specialty trade shop with a handful of crews and no dedicated HR staff, you've probably been setting pay by feel — what you paid the last hire, what a competitor mentioned at a supply-house counter, or what a candidate's résumé made you think they'd accept. Sometimes that works. Sometimes you lose the hire or, worse, onboard someone who leaves six months in because they found out a competitor was paying more.
This guide gives you a faster, more defensible way to set the number — using free government data and a method you can repeat every time you make an offer.
Why "What Did I Pay Last Time?" Isn't a Benchmark
Here's what most owner-operators are actually doing: carrying a mental anchor from the last hire and adjusting it up a little each year. The problem isn't the direction — wages are rising. According to the Bureau of Labor Statistics Employment Cost Index, private-industry wages and salaries grew 3.4% year-over-year as of March 2026. The problem is that a single past data point has no relationship to what your local market is paying right now for that specific trade occupation.
Worse, acting on a stale anchor has real consequences. Replacing a skilled trade employee costs roughly 50%–200% of their annual salary, according to SHRM benchmarks — for a worker earning $60,000, that's somewhere between $30,000 and $120,000 in recruiting, onboarding, and lost productivity costs. That's the illustrative model; your actual number depends on how long the seat stays empty and how quickly the replacement gets productive. But even at the conservative end, one mis-priced departure is a significant hit to a small shop.
That's the cost of getting it wrong. The good news: getting it right doesn't require an HR team.
The Data Source You Already Have Access To — And Why It's Hard to Use
The Bureau of Labor Statistics publishes Occupational Employment and Wage Statistics (OEWS) — median wages, percentile breakdowns, and job counts for more than 800 occupations, sliced by national, state, and metro area. It's built from a sample of approximately 1.1 million establishments and covers roughly 55% of total national employment. It's authoritative, it's free, and it's updated annually.
For trade occupations, it's exactly what you need. A few May 2024 national medians to give you a sense of the range:
- Electricians (SOC 47-2111): median $62,350/yr; 10th percentile $39,430; 90th percentile $106,030
- Plumbers, pipefitters & steamfitters (SOC 47-2152): median $62,970/yr
- HVAC mechanics & installers (SOC 49-9021): median $59,810/yr; 10th percentile $39,130; 90th percentile $91,020
- Welders, cutters, solderers & brazers (SOC 51-4121): median $51,000/yr; 10th percentile $38,130; 90th percentile $75,850
- Carpenters (SOC 47-2031): median $59,310/yr
- Sheet metal workers (SOC 47-2211): median $60,850/yr
(All figures: BLS OEWS, May 2024, national. These are national medians — your local rate may differ meaningfully. For your state or metro, go to bls.gov/oes and filter by area.)
A percentile is the cut point where a given share of workers earn less. The 75th percentile means three out of four people in that occupation earn below that number — it's the anchor you reach for when you're hiring someone experienced and you can't afford to lose them to a counter-offer.
The catch: pulling this data by hand is a multi-step process. You need to know the SOC code (the government's six-digit occupation identifier), navigate tab-delimited files, find the right metro, and translate raw percentiles into an offer. Most owner-operators don't have two hours on a Tuesday night for that.
The whole process of turning raw BLS data into a usable offer number is exactly what SkilledMarkets automates — but even if you're doing it manually today, the method below gives you a repeatable starting point.
A Simple Three-Step Method for Setting a Trade Offer
You don't need a compensation consultant. You need a method that you can run in under fifteen minutes, every time a candidate walks through the door.
Step 1: Anchor to the right percentile for the role
Start with the national median for the trade from bls.gov/oes. Then decide where this hire should sit relative to the market, based on two factors: how competitive your local labor market is, and how experienced the candidate is.
A rough guide:
- Below median (25th–49th percentile): Entry-level or apprentice-stage candidate; your market isn't especially tight.
- Median (50th percentile): Journeyman-level candidate in a moderate market. A defensible starting point.
- Above median (75th percentile): Experienced candidate in a competitive market, or a role that's been open a long time.
- Near the 90th percentile: Specialists, lead tradespeople, or roles where losing the hire costs you a contract.
For more detail on which percentile to anchor to for different hiring scenarios, see Which Percentile Should You Pay?
Step 2: Adjust for your geography
The national median is a reference point, not a local fact. Wages vary significantly by state and metro area. If you're in a high-cost metro, the national median likely understates your local market. If you're in a rural area, it may overstate it.
Go to bls.gov/oes, select your state or metro area (called an MSA — Metropolitan Statistical Area), and look up the same SOC code. That local figure is your real anchor. Where the BLS suppresses a metro-level estimate (this happens for smaller geographies with fewer than roughly ten estimated workers in an occupation), fall back to the state figure. Where the state figure is also unavailable, use national and say so when you make the offer.
Step 3: Build a three-number band — don't just pick one figure
A single number is a take-it-or-leave-it offer. A salary band is a min/midpoint/max range that gives you room to negotiate and a clear ceiling.
Here's a worked example anchored on a real library figure. Say you're hiring a journeyman electrician and you've decided the 50th-percentile national median ($62,350, BLS May 2024) is your starting anchor.
Apply a simple spread buffer — a percentage above and below your anchor — to build the band:
| Band position | Calculation | Result |
|---|---|---|
| Minimum | $62,350 × 0.90 | ~$56,100 |
| Midpoint (anchor) | $62,350 | $62,350 |
| Maximum | $62,350 × 1.10 | ~$68,600 |
This is an example using a 10% spread buffer — your actual buffer should reflect how much negotiating room your margins allow. Some shops use 15%; some use 8%. The point is you have a floor you won't go below and a ceiling that keeps payroll predictable.
For a deeper walkthrough of the band construction process, How to Build a Salary Band for Trade Roles covers the full methodology.
What This Looks Like in Practice
Let's say you're offering a position to an HVAC technician in a competitive metro. The national median for HVAC mechanics and installers (SOC 49-9021) is $59,810/yr (BLS, May 2024, national). Your state median, which you looked up at bls.gov/oes, is somewhat higher. You decide to anchor to your state's 75th-percentile figure because you've had two qualified candidates ghost you in the last month.
You run the band, you know your floor and your ceiling before the conversation starts, and when the candidate counters, you know exactly how much room you have — and when to hold firm because you're already at your max.
That's not HR sophistication. That's fifteen minutes of prep that keeps you from losing a hire you actually needed.
The Hidden Cost of Skipping the Step
There's a version of this where you just make a gut-feel offer, it's too low, and the candidate says no. That's a recoverable situation — you counter, or you move to the next candidate.
There's another version where the candidate says yes, starts, and leaves inside six months because a competitor was paying $7,000 more. According to SHRM benchmarks (presented here as an illustrative model), that departure costs you 50%–200% of their annual salary to replace — not counting the lost productivity while the seat was open.
The Trades Hiring Cost Calculator can help you put a number on what a specific role costs to re-fill, based on the salary and a few other inputs. It's a useful gut-check before you make an offer — knowing the replacement cost makes the case for getting the offer right the first time.
For a fuller picture of how these costs accumulate, The Real Cost of a Bad Skilled Trades Hire walks through the math.
You Don't Have to Do This in a Spreadsheet Every Time
If you're making more than a couple of offers a quarter, the manual BLS lookup process starts to add up. SkilledMarkets is built specifically for trade contractor shops that want BLS-grounded wage benchmarks without the spreadsheet work — instant lookup by SOC code and geography, percentile breakdowns, and a salary band generator that does the arithmetic for you.
The Essentials plan starts at $199/mo, which is designed to fit a small-shop budget. There's a 14-day free trial — no commitment while you see whether it saves you the time it claims to.
If you're not ready for a platform, the method in this article gives you a repeatable process using bls.gov/oes directly. Either way, the next time a candidate asks what the position pays, you'll have a real answer ready.
And if you want to see how SkilledMarkets stacks up against your current process before committing, the ROI calculator lets you model out the time and cost savings for your specific hiring volume.
This article includes information from O*NET OnLine, developed by the U.S. Department of Labor, Employment and Training Administration. O*NET is a registered trademark of the U.S. Department of Labor, Employment and Training Administration.
Ready to go beyond the guide? Benchmark trade wages with live BLS data.
Get free wage guides in your inbox
BLS data explainers and salary band tips for trade contractors.


