The Bureau of Labor Statistics surveys wages for construction and extraction occupations in every metropolitan area in the country. It is the best free picture there is of what a trade hour costs where you live, and it sits underneath every city page on this site.

The range is wider than most people expect. At the top, San Jose, CA at $45.42 an hour, +44.6% against the national mean. At the bottom, Gadsden, AL at $20.60 an hour, -34.4% against the national mean. Between those two ends sit 385 metro areas, each with its own figure.

The mistake almost every cost guide makes

The obvious move is to take a national average price and multiply it by the local wage ratio. It is also wrong, and it produces numbers that are badly off in both directions.

The reason is that materials do not have a local price. Shingles, panels, furnaces and cabinets are manufactured goods that cost roughly the same wherever they are delivered. Only the labour half of a job responds to the local wage. So a metro paying 30% above the national mean does not pay 30% more for a roof — it pays about 15% more, because roughly half of a roof is labour and the other half was bought at a national price.

Every city page here shows that calculation in the open: the local wage, the national mean, the labour share for that specific job, and the net effect. If you disagree with our labour share, you can see exactly what it did.

Which jobs the map moves most

Because labour share varies so much by trade, the same city premium produces very different effects depending on what you are having done:

  • Tree removal, at about 85% labour, tracks the local wage almost exactly. This is where geography matters most.
  • Foundation and waterproofing work, around 65%, follows closely behind.
  • Roofing and driveways, around 55%, sit in the middle.
  • HVAC at 35% and solar at 30% barely move. A high-wage city is not a disproportionately expensive place to install equipment.

If you are in an expensive metro and choosing what to spend on, that ordering is useful: the labour-heavy jobs are where your location is costing you, and the equipment jobs are where it mostly is not.

What the wage data does not tell you

Three things, and they matter. It does not capture permit costs, which are set locally and vary enormously. It does not capture demand — a metro rebuilding after a storm prices differently from the same metro in a quiet year. And it does not capture how many contractors are competing for your job, which in practice is often the largest single factor in what you are quoted.

Use it as a floor, not a forecast. The wage data tells you what the hours behind a job cost in your area. It does not tell you what the market will charge you for them this month. That is what three written quotes are for.

The data behind this

Figures come from the BLS Occupational Employment and Wage Statistics survey, occupation code 47-0000, covering all metropolitan areas. Our methodology page sets out how it is combined with material price indexes and, where we have them, observed local prices.