Methodology
Every number on TradeSalary comes from a public government dataset, and every page says which one and for what date. We don't estimate, survey, or adjust figures ourselves, except where a page says so and shows how.
Pay: BLS Occupational Employment and Wage Statistics
Pay figures come from the U.S. Bureau of Labor Statistics (BLS) Occupational Employment and Wage Statistics (OEWS) program. OEWS surveys about 1.1 million employers over three years and publishes employment and wages for about 830 occupations nationally, for every state, and for metropolitan and nonmetropolitan areas. The current figures are for May 2025, loaded on September 27, 2026.
For each trade and place we show what BLS publishes:
- the median (half earn more, half less) and the mean, hourly and yearly;
- the 10th, 25th, 75th and 90th percentiles, which we draw as the tape-measure range from the 10th to the 90th;
- employment, rounded by BLS to the nearest 10.
What it excludes. OEWS counts wage and salary workers. Self-employed tradespeople, owners of their own shops, and independent contractors are not included. BLS wages include base pay, incentive pay, commissions, and tips, but not overtime pay, shift differentials, nonproduction bonuses, or employer-paid benefits. Yearly figures are the hourly wage times 2,080 hours.
Occupations. Each trade is one BLS occupation code: electricians 47-2111; HVAC technicians 49-9021 (heating, air conditioning, and refrigeration mechanics and installers); welders 51-4121 (welders, cutters, solderers, and brazers); linemen 49-9051 (electrical power-line installers and repairers); plumbers 47-2152 (plumbers, pipefitters, and steamfitters); diesel mechanics 49-3031 (bus and truck mechanics and diesel engine specialists); carpenters 47-2031; wind turbine technicians 49-9081 (wind turbine service technicians); elevator mechanics 47-4021 (elevator and escalator installers and repairers); heavy equipment operators 47-2073 (operating engineers and other construction equipment operators); auto mechanics 49-3023 (automotive service technicians and mechanics); roofers 47-2181; ironworkers 47-2221 (structural iron and steel workers); millwrights 49-9044; boilermakers 47-2011.
Missing values. When BLS doesn't publish a figure, usually because too few employers reported it to be reliable, we show “not published”, never a zero or a guess. When a wage is at or above the BLS reporting cap ($239,200 a year or $115.00 an hour for May 2025), BLS publishes only that it's above the cap, and so do we.
Starting pay
BLS doesn't report pay by license level. We label the 10th-percentile wage as an estimate of apprentice or entry-level pay. It is an approximation: pay at any level varies with union status, employer, specialty, and local demand.
Cost of living
The “after cost of living” figure divides the median by the Bureau of Economic Analysis (BEA) Regional Price Parity for the state or metro, where the U.S. average is 100. We use BEA's 2024 figures for all items. A $70,000 median where prices are 10% above average (a parity of 110) buys about what $63,640 buys nationally. BEA publishes one parity for the rural part of each state rather than for BLS's nonmetropolitan areas, so rural rows don't get an adjusted figure.
Pay over time
National and state pages show the median for each May release since May 2021, and the change from the first year to the latest, before and after inflation. The inflation adjustment divides the change in pay by the change in the Consumer Price Index for All Urban Consumers (CPI-U, U.S. city average, all items, not seasonally adjusted) between the same two Mays.
BLS cautions against comparing these estimates year to year: each release pools three years of survey responses, so consecutive years overlap, and methods and occupation definitions change from time to time. That's why we compare a span of several years rather than one year to the next, and start in May 2021, when BLS's current estimation method and occupation codes were in place. Metro pages don't show a trend because metro area boundaries were redrawn in 2023, so older metro figures cover different areas.
Rankings, job outlook and training
Our rankings compare the skilled trades using BLS national median wages for the same May 2025 release. We count as trades the construction occupations and installation, maintenance, and repair occupations (BLS major groups 47 and 49), plus welders, and leave out first-line supervisors, helpers, and mining and oil-and-gas extraction jobs. “Best states” pages rank each state by its median after cost of living, as described above.
Job outlook, typical education, and typical training come from the BLS Employment Projections program, which projects employment ten years ahead and counts yearly openings from growth, retirements, and people changing careers. Unlike the wage figures, its job counts include self-employed workers.
The “what they do” lists on each trade page are the highest-rated tasks from the O*NET Database, rated by people working in the occupation. This site includes information from the O*NET Database by the U.S. Department of Labor, Employment and Training Administration (USDOL/ETA), used under the CC BY 4.0 license. O*NET® is a trademark of USDOL/ETA.
Which pages exist
We build a salary page for a trade and place only when BLS publishes a median for it, and, for metro areas, when BLS estimates at least 50 people work in the trade there, so no page rests on a handful of employers. Smaller metros still appear in their state's table. Today that is 15 national pages, 707 state pages, and 3,834 metro pages. We ask search engines to list a metro page only when at least 1,000 people work in the trade there (796 of them today); the rest stay on the site, linked from their state's page. A metro area that crosses state lines has one page, under the state BLS names as its primary state, and appears in the tables of the other states it reaches. Rural (nonmetropolitan) areas appear as rows on their state's page.
Updates and corrections
BLS releases new OEWS figures each spring, and BEA updates price parities each year. We load each release through automated checks (percentiles in order, no zero or negative wages, hourly and yearly figures consistent) before it goes live, and every page shows the date it was updated. If you spot an error, email support@tradesalary.com.