Most small contractors set pay by asking around, matching the last hire or guessing. The problem shows up later: a job ad that sits for six weeks, or a new hire who leaves for two dollars more down the road. A better way to benchmark trades pay is free and comes from the federal government. The Bureau of Labor Statistics' Occupational Employment and Wage Statistics program (OEWS) surveys about 1.1 million employers over three years and publishes what workers in each occupation earn, by state and metro area. This guide shows how to read it for a trade job before you post one.
What OEWS data is, and the current release
OEWS publishes estimates once a year with a May reference date. The newest set, for May 2025, came out on May 15, 2026. It covers about 830 occupations across the nation, every state and roughly 530 metropolitan and nonmetropolitan areas.
Each estimate pools six survey panels collected over three years. For May 2025, that runs from November 2022 through May 2025, with older wages adjusted forward. That design makes local figures possible, but it also means the data trails a fast-moving local market. If wages in your area jumped this year, OEWS will show only part of it.
For trade employers, the occupations you will use most sit in two groups: construction and extraction (electricians, plumbers, carpenters, and so on) and installation, maintenance and repair (HVAC technicians, industrial machinery mechanics, and others). Each occupation has a six-digit SOC code, such as 47-2111 for electricians.
Step 1: Match the job to the right occupation code
Start by matching the duties in your job, not the title on your trucks. A "service tech" at a plumbing and HVAC shop might belong under plumbers or under HVAC mechanics depending on what they spend most of their day doing. A "lead" who mostly runs crews and schedules may fit first-line supervisors of construction trades, which pays noticeably more. That group's annual mean wage was $86,450 in May 2025, according to the national OEWS release.
If a role really splits across two codes, pull both and weight them roughly by time spent. Do not average a helper code with a journeyman code to justify a lower number; that is how ads end up underpriced.
Step 2: Benchmark trades pay by percentile, not the average
OEWS gives a mean wage and five percentiles: 10th, 25th, 50th (median), 75th and 90th. The percentiles are where the real value is. A BLS guide on using the data for wage discussions makes the point plainly: newer workers tend to sit near the 10th or 25th percentile, and experienced workers near the 75th or 90th. The mean gets pulled up by a few high earners, so it is a poor anchor for a single hire.
Here is what the national spread looked like for three common trades in May 2025, from the BLS Occupational Outlook Handbook:
| Occupation | Bottom 10% earned less than | Median | Top 10% earned more than |
|---|---|---|---|
| Electricians | $42,640 | $63,190 ($30.38/hr) | $108,510 |
| Plumbers, pipefitters and steamfitters | $44,150 | $63,800 ($30.67/hr) | $108,420 |
| HVAC mechanics and installers | $40,050 | $61,010 ($29.33/hr) | $95,210 |
That spread is the point. For electricians, the gap between the 10th and 90th percentile is more than $65,000 a year nationally. "What does an electrician make" has no single answer. "What does a seven-year journeyman make in my metro" does.
Rule of thumb for placing a hire: apprentice or first-year helper near the 10th percentile; newly licensed journeyman around the 25th to 50th; experienced, self-directed journeyman around the 50th to 75th; lead or specialty skill (controls, medium voltage, commercial refrigeration) at the 75th and up. Adjust based on how hard the role has been to fill.
Step 3: Use your metro or nonmetro area, not the national figure
National numbers hide large local differences. BLS publishes OEWS wages for every metropolitan and nonmetropolitan area precisely because the same trade can pay very differently from one market to the next, so a national median can be far too high in one place and far too low in another.
Use the BLS OEWS data search to pull the occupation for your metropolitan area. If you work in a rural county, look for the nonmetropolitan area that covers it. If you draw workers from two metros, pull both, since your applicants will compare you with whichever pays more.
Sometimes a local estimate is missing. BLS withholds figures that do not meet its quality standards or that could identify a single employer. In that case, use the state figure and, if you can, the nearest metro with published data.
Step 4: Check pay in your industry
OEWS also breaks occupations out by industry, and the difference can be large. Electricians working for government earned a median of $79,820 in May 2025, and those in manufacturing earned $74,550. Those in electrical contracting earned $61,570. For HVAC, wholesale trade paid a median of $71,190 against $60,030 at plumbing, heating and air-conditioning contractors.
This matters because your competition for a worker is not just the shop across town. A plant maintenance department or a city facilities crew may be offering more base pay plus a pension. If you are a contractor losing techs to in-house maintenance jobs, the industry table shows you exactly how big that pull is.
Step 5: Adjust for what OEWS leaves out
This step is where most employers misread the data. OEWS measures straight-time gross pay. According to the May 2025 technical notes and the OEWS FAQ, it includes base rates, commissions, production bonuses and tips. It excludes:
- Overtime and holiday or weekend premium pay
- Shift differentials and on-call pay
- Tool and clothing allowances
- Non-production and year-end bonuses
- Employer-paid benefits such as health insurance and retirement contributions
Annual figures assume a full-time schedule of 2,080 hours. That cuts both ways. If your techs routinely work 50-hour weeks and take on-call rotations, their real earnings will be well above the OEWS annual figure for the same base rate. If your work is seasonal, they may earn less.
OEWS also does not break pay out by union status or years of experience. In union-heavy markets, a median can understate what a worker gives up by leaving a union job, which we cover in why BLS medians understate union total comp.
A one-page benchmarking checklist
- Write down the three or four duties that take most of the job's time.
- Pick the SOC occupation that matches those duties (and a second one if the role really splits).
- Pull your metro or nonmetro area's 10th, 25th, median, 75th and 90th percentile hourly wages.
- Pull the same occupation for your industry, and for the industry that keeps poaching your people.
- Place the hire on the distribution based on licensing, years and specialty skills.
- Add a premium if the data is more than a year old and your market is tight, or if your last posting at a similar rate drew no qualified applicants.
- Price out what you offer beyond base pay: overtime, on-call, truck, tools, health coverage, retirement match.
- Put the base range in the ad. Experienced workers skip ads without a number.
Once you have a range, build the rest of the offer around it. Our guide to what to put in a pay offer besides the hourly rate covers the extras that close the gap when you cannot simply raise base pay.
Mistakes that make benchmarks backfire
- Using the national median for a local ad. In a high-cost metro, it can price you below the 25th percentile without your knowing.
- Comparing years as a trend line. BLS advises against using OEWS for year-over-year comparisons because of method and classification changes. Use the current release as a snapshot.
- Treating it as a prevailing wage. OEWS is not the wage determination for public-works or Davis-Bacon jobs. Those come from separate determinations.
- Ignoring the mean-to-median gap. When the mean is far above the median, a few high earners are pulling it up. Benchmark off the median and percentiles.
Bottom line
Spend twenty minutes with OEWS before you write a trade job ad. Pull your metro's percentiles for the right occupation, place the role on that spread honestly, and remember that the survey leaves out overtime and benefits, which are often your best selling points. If your base rate sits below the local 25th percentile for an experienced role, raise it or expect to keep reposting.