Trade Wage Guides

Millwright Salary Guide for Employers (SOC 49-9044)

By Rovaryn Digital · October 6, 2026 · 9 min read

The Friday afternoon millwright problem

A maintenance supervisor at a mid-size plant gives two weeks' notice on a Tuesday. By Friday, the plant manager is staring at a job posting draft with a blank salary field, because the last millwright hire was made four years ago off a referral and nobody wrote down what the number should have been. A quick search turns up a national "average millwright salary" figure on a job board, a wildly different number on a different job board, and a state wage number that's two releases old. None of it says where it came from or when it was collected. The offer goes out anyway — low enough that a strong candidate assumes the shop is cutting corners, or high enough that it blows the department budget before the plant manager even finds out.

This happens because millwright pay (SOC 49-9044 in the federal occupational system) isn't a single number — it's a spread that moves by metro, by plant type, and by how scarce industrial-maintenance skill is in that local labor market at that moment. The fix isn't a better guess. It's knowing exactly where to pull the real percentile data, how to read it, and how to turn it into a band you can defend. That's what this guide walks through.

Building a millwright salary guide for employers: what BLS OEWS actually covers

The Occupational Employment and Wage Statistics (OEWS) program, run by the U.S. Bureau of Labor Statistics, is the federal government's wage survey of record — built from employer payroll responses, not self-reported job-board estimates. For every occupation it tracks, OEWS reports five wage percentiles: the 10th, 25th, median (50th), 75th, and 90th. Annual wage figures are calculated as the hourly mean rate times 2,080 hours (a standard work year), so you can cross-check hourly and annual figures against each other for the same occupation and area (BLS OEWS News Release, bls.gov/news.release/pdf/ocwage.pdf).

The five-percentile structure exists precisely so an employer doesn't have to rely on a single "average" number — the 10th-to-90th spread tells you the realistic floor and ceiling in a given labor market, not just the midpoint.

The current OEWS release covers the May 2025 reference period and was published May 15, 2026 — later than its usual spring release date because of the federal government shutdown that ran October 1 through November 12, 2025. BLS has confirmed response rates stayed within the normal range and no methodology changes were required because of the delay (BLS, "Occupational Employment and Wage Statistics," archived May 2026 release notes, bls.gov/news.release/archives/ocwage_05152026.htm). Whenever you quote an OEWS figure to a hiring manager or in an offer letter justification, say which release it came from — "May 2025 OEWS" is not the same number as "May 2024 OEWS," and the two will not match.

OEWS covers over 800 occupations across roughly 530 metropolitan and nonmetropolitan areas nationwide (bls.gov/oes), drawing on a rolling sample of roughly 1.1 million establishments surveyed across six semiannual panels over three years, representing about 55% of national employment (BLS OEWS Technical Note, May 2025 release, bls.gov/news.release/ocwage.tn.htm). Millwright (SOC 49-9044) is one of those occupations, tracked at the national, state, and metro level with the same five-percentile structure as every other occupation in the dataset.

How to pull the current millwright wage percentiles yourself

This guide intentionally does not reprint a specific dollar figure for SOC 49-9044 here, because the right number for your offer is the one in the current release, for your specific metro or state — not a number copied from an article that may already be a release cycle out of date. Here's the fastest path to the real data:

  1. Go to the BLS OEWS occupation query tool at bls.gov/oes and search "Millwrights" or SOC code 49-9044.
  2. Choose your geography level — national, state, or metropolitan/nonmetropolitan statistical area. Not every area has a published figure for every occupation; low-employment occupations in small metros are sometimes suppressed for statistical reliability.
  3. Note the release date printed on the page. If it says "May 2025" or a later vintage, you're looking at current data; if a source you're comparing it to says "May 2024," treat the two as not directly comparable without adjustment.
  4. Record all five percentiles, not just the median. You'll need the spread for the banding step below.

If your plant or shop operates in more than one metro, or you're hiring in several states, repeat this per location — millwright pay in a manufacturing-heavy Midwest metro and a coastal industrial corridor are not the same number, and OEWS will show you that directly if you pull both.

Why the median alone won't build you an offer

A single median figure tells you what the typical millwright in that area earns — it says nothing about what you should offer a candidate with eight years of PLC-integrated conveyor experience versus one two years out of a registered apprenticeship. That's what the rest of the percentile spread is for. The 10th and 25th percentiles generally reflect entry-level or lower-experience workers in that occupation and area; the 75th and 90th reflect senior, highly credentialed, or high-demand specialists. Where you anchor your offer inside that spread is a deliberate choice, not a default — see our guide to choosing a percentile anchor for how to make that call based on your local labor market tightness and the specific candidate's experience level.

Turning percentiles into a band: a worked example

Here's how the math works once you have real percentile figures in hand — using round, illustrative numbers rather than a specific OEWS figure, since your actual anchor should come from the live data for your metro.

Say your current local 50th-percentile figure for millwrights comes out to $32.00/hour. A common approach is to apply a spread buffer — a percentage range above and below that anchor — to set a band rather than a single number. Using a ±15% buffer as an example:

  • Minimum: $32.00 × 0.85 = $27.20/hour
  • Midpoint: $32.00/hour (your anchor)
  • Maximum: $32.00 × 1.15 = $36.80/hour

That band gives you room to place a less-experienced hire near the floor and a highly specialized candidate near the ceiling, without re-deriving the whole structure for every requisition. For the full method — including how to pick a buffer width and adjust it by role seniority — see how to build a salary band for trades roles.

Where millwright pay sits in the broader industrial-maintenance labor market

Millwrights don't hire in a vacuum, and a few broader labor-market data points are worth knowing even though they aren't millwright-specific figures. Registered apprenticeship has grown substantially as a pipeline into skilled trades generally: the U.S. had roughly 680,000 active registered apprentices in FY2024, up 114% from a decade earlier, with annual program completers growing from about 46,000 to about 112,000 over the same period (U.S. DOL data via Community College Daily, 2025). Construction-adjacent apprenticeships accounted for the largest single industry share of enrollment between 2019 and 2022, and apprentices in that period earned an average of $18/hour at entry, rising to $32/hour at completion — a 77% increase across the apprenticeship term (same source). Registered programs typically require a minimum of 2,000 on-the-job hours plus 144 classroom hours per year, with most construction-related programs running two to four years (U.S. DOL Office of Apprenticeship data via IWPR, 2024). Millwright training commonly follows this same registered-apprenticeship structure, which matters for how you evaluate a candidate's experience level against the percentile spread above.

On turnover: the construction sector's quits rate — a general indicator of how easily workers in trade-adjacent occupations are moving between employers — sat at 1.8% in 2024 and 2025, down from 2.4% in 2021–2022 (BLS JOLTS, Table 22). That's a construction-industry figure, not a millwright-specific one, since millwrights work across manufacturing, utilities, and construction NAICS codes — but it's a useful directional signal that the hottest phase of trade-labor churn has cooled somewhat from its pandemic-era peak.

The O*NET side: Job Zone and skills profile

Wage data tells you what to pay; it doesn't tell you what the job actually requires. That's where ONET OnLine comes in — a free occupational database built by the National Center for ONET Development (part of the U.S. Department of Labor), licensed under CC BY 4.0. ONET doesn't carry wage data at all; it carries structured occupational profiles: required skills, typical tasks, knowledge areas, abilities, and work context, organized by Job Zone — a five-tier scale from Job Zone 1 (little or no preparation needed) to Job Zone 5 (extensive preparation needed) (ONET OnLine Help, onetonline.org/help/online/zones). The ONET-SOC taxonomy is aligned to the 2018 Standard Occupational Classification system and the underlying database is updated quarterly (National Center for ONET Development, onetonline.org/help/onet/). Millwright, like most skilled-trade occupations requiring a multi-year apprenticeship, sits in one of the higher Job Zones, reflecting the extended on-the-job and classroom training path described above.

If you're building out a full job description rather than just a wage band, cross-referencing the O*NET skills and task profile against your actual plant's equipment and processes is the fastest way to catch a mismatch before the offer stage. For a deeper walkthrough of how Job Zones map onto real hiring decisions across trades, see our O*NET Job Zones explainer.

What getting this wrong actually costs

Mis-pricing a millwright offer isn't a one-time error — it compounds. SHRM's research on recruitment costs put the average cost per hire at roughly $4,700 in 2022, and an earlier SHRM benchmarking study found an average of 42 days to fill a position at a cost per hire of $4,129 (SHRM, 2022; SHRM Human Capital Benchmarking Report, FY2015 data). On the retention side, Gallup's research treats 0.5 to 2 times an employee's annual salary as a conservative estimate of total replacement cost, and estimates that voluntary turnover costs U.S. businesses roughly $1 trillion a year — with 52% of departing employees saying their exit was preventable (Gallup, 2019). None of those figures are millwright-specific, but they describe the general cost structure you're exposed to every time a mis-priced offer walks out the door or a wrong lowball never gets accepted in the first place.

A millwright salary guide for employers only earns its keep if it turns into an actual, defensible number on an actual offer letter — not a bookmark to a BLS page you'll mean to revisit later. If you'd rather not rebuild this lookup-and-banding process from scratch every time a req opens, our Industrial-Maintenance / Millwright Wage & Hiring Kit packages the current SOC 49-9044 percentile pull alongside the O*NET skills profile and a ready-to-use banding worksheet, and our single-trade deep wage report does the same for one occupation and geography at a time. For the broader methodology behind benchmarking industrial-maintenance roles specifically, see our industrial-maintenance wage benchmarking guide.

Browse our templates →

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.