Data checked · source: US Bureau of Labor Statistics
For journalists and researchers
Everything on this page is free to quote. You do not need our permission, you do not need to ask, and we will not send you a follow-up email.
What we are: one person computing what US field work costs, from BLS wage data and verified retail prices. Not a marketplace, not a lead generator, no advertisers. How we make money.
Findings you can use today
These are calculated from the May 2025 OEWS release across 49 metro areas. We have not found anywhere else publishing the metro-level spread for these trades in one place.
1. The same trade pays 156% more in one US metro than another
Equipment Operators earn a median $59.97 an hour in San Francisco-Oakland-Fremont and $23.41 in Oklahoma City — a 2.56× gap for the same job title.
| Trade | US median | Highest metro | Lowest metro | Gap |
|---|---|---|---|---|
| Equipment Operator | $28.78 | San Francisco-Oakland-Fremont $59.97 | Oklahoma City $23.41 | 156% |
| Plumber | $30.67 | San Jose-Sunnyvale-Santa Clara $51.71 | Tampa-St. Petersburg-Clearwater $25.00 | 107% |
| Electrician | $30.38 | Portland-Vancouver-Hillsboro $50.53 | Orlando-Kissimmee-Sanford $24.43 | 107% |
| Roofer | $26.65 | Chicago-Naperville-Elgin $39.47 | Oklahoma City $21.00 | 88% |
| Tile Setter | $26.77 | Boston-Cambridge-Newton $39.54 | New Orleans-Metairie $21.22 | 86% |
| Carpenter | $29.12 | San Francisco-Oakland-Fremont $42.89 | Dallas-Fort Worth-Arlington $23.44 | 83% |
| Hvac Technician | $29.33 | San Jose-Sunnyvale-Santa Clara $39.45 | Tampa-St. Petersburg-Clearwater $24.30 | 62% |
| Painter | $23.75 | San Francisco-Oakland-Fremont $30.58 | San Antonio-New Braunfels $20.88 | 46% |
2. Chicago pays trades better than San Francisco or New York
Averaged across all eight trades we track, Chicago-Naperville-Elgin ranks #2 of 49 at $41.21 an hour — above San Francisco ($40.00) and New York ($36.31). Chicago roofers are the highest paid in the country at $39.47 an hour, ahead of every coastal metro. This runs against the usual coastal-cities-pay-most assumption, and it holds because Chicago's building trades are heavily unionised.
| Rank | Metro area | Mean of 8 trade medians |
|---|---|---|
| 1 | San Jose-Sunnyvale-Santa Clara, CA | $41.25 |
| 2 | Chicago-Naperville-Elgin, IL-IN | $41.21 |
| 3 | San Francisco-Oakland-Fremont, CA | $40.00 |
| 4 | Seattle-Tacoma-Bellevue, WA | $39.23 |
| 5 | Minneapolis-St. Paul-Bloomington, MN-WI | $37.65 |
| 6 | Boston-Cambridge-Newton, MA-NH | $36.89 |
| 7 | New York-Newark-Jersey City, NY-NJ | $36.31 |
| 8 | Portland-Vancouver-Hillsboro, OR-WA | $36.09 |
| 9 | Los Angeles-Long Beach-Anaheim, CA | $34.17 |
| 10 | Hartford-West Hartford-East Hartford, CT | $34.12 |
| … | ||
| 45 | Jacksonville, FL | $25.02 |
| 46 | Oklahoma City, OK | $24.80 |
| 47 | Tampa-St. Petersburg-Clearwater, FL | $24.25 |
| 48 | San Antonio-New Braunfels, TX | $24.23 |
| 49 | Orlando-Kissimmee-Sanford, FL | $23.94 |
49 metro areas where BLS publishes at least six of our eight trades. Top to bottom: 1.72×.
3. What the worker earns and what the customer pays are two different numbers
This is the calculation almost no cost guide performs. A wage is not a billed rate: the shop also pays payroll tax, workers' compensation, insurance, the truck, fuel, tools, dispatch and unbilled drive time. We model the difference as 1.3× labour burden and 1.7–2.45× overhead and profit — combined, 2.21× to 3.19×.
| Trade | Median wage | Modelled billed rate | Difference per hour |
|---|---|---|---|
| Plumber | $30.67 | $68–$98 | $37.11–$67.17 |
| Electrician | $30.38 | $67–$97 | $36.76–$66.53 |
| Hvac Technician | $29.33 | $65–$94 | $35.49–$64.23 |
| Carpenter | $29.12 | $64–$93 | $35.24–$63.77 |
| Equipment Operator | $28.78 | $64–$92 | $34.82–$63.03 |
| Tile Setter | $26.77 | $59–$85 | $32.39–$58.63 |
| Roofer | $26.65 | $59–$85 | $32.25–$58.36 |
| Painter | $23.75 | $52–$76 | $28.74–$52.01 |
Please attribute this one carefully. The wages are government data. The multiplier is our assumption, published in full on the methodology page. If you quote a billed rate, say it is a FieldPricing estimate, not a BLS figure.
How to cite us
FieldPricing, {page title}, August 13, 2026. https://fieldpricing.com/
Underlying wage data: US Bureau of Labor Statistics, Occupational Employment and Wage Statistics,
May 2025.
A link is appreciated and not required. We will never ask you to add one, and we will never follow up asking you to change how you credited us.
Download the data
Everything above, as CSV. No registration, no email address, no rate limit. Use it in a chart, a spreadsheet, a paper, or a story — commercial use included.
- trade-wages-by-metro.csv — 383 rows. Median hourly wage and estimated billed rate, eight trades × US metro areas.
- trade-wages-percentiles.csv — 24 rows. 25th, 50th and 75th percentile wage for each trade, US-wide.
- job-cost-lines.csv — 105 rows. Line-item breakdown for 14 jobs: equipment, parts, labour, permit, disposal.
- job-cost-summary.csv — 16 rows. Headline range and labour hours for every job we price.
- README.txt — column definitions, sources, and the limitations you should read first.
Need a cut we have not published — a single metro, a single trade, a different grouping? Ask and we will generate it. There is no charge and no conditions attached.
What we can help with
- A number for a specific metro and trade — we have 49 metro areas × eight trades, and can pull any cell with its BLS series ID.
- Why a quote looks high — we break jobs into equipment, parts, labour hours, permit and disposal, each sourced. See the job cost pages.
- The wage-to-invoice gap — the arithmetic above, for any trade.
What we cannot help with: anything we have not calculated. We will tell you we do not know rather than guess, and we will say when a figure is uncertain.
Known limitations — read before citing
We publish these on the methodology page in full. The short version: OEWS is a sample-based survey, not a census; metros where BLS suppressed a figure are omitted rather than estimated; self-employed workers are excluded, which understates owner-operator earnings; and our billed-rate multiplier is an editorial judgement, not a measurement.
If you need a line describing us
Copy either of these rather than writing your own. Both are accurate as of the date at the top of this page.
Short (20 words)
FieldPricing publishes what US trade work costs, computed from federal wage data with the
arithmetic shown. Independent, no advertising.
Longer (41 words)
FieldPricing computes what US field-service work costs — plumbing, electrical, HVAC,
roofing — from Bureau of Labor Statistics wage data and verified retail prices, showing the
arithmetic behind every figure. It is run by one person and carries no advertising, affiliates or
sponsors.
Contact
Mingo — contact page. One person, in a time zone that is probably not yours. If you are on deadline, say so in the subject line and I will answer first.