Methodology & Data Sources
How NailThePrice turns national cost data into a fair, local estimate, and how to read what we publish.
How these prices are built
I'm Matt Kovalik, a licensed Minnesota journeyworker electrician. Every price on this site is one of three kinds, and every page tells you which kind you're looking at. Here's how each one is built, where the numbers come from, and how often they change.
What are the three kinds of prices?
Observed, your city's own records. For a few projects in a few cities, I have the city's own building permit records: the job values contractors declared when they pulled the permit. When your city has enough of those permits, the page shows them as they are, no adjustment. The label says "What N permits show." A permit value is what the contractor declared when they pulled the permit. It's close to the job price, but it isn't the final bill.
Observed, adjusted to your city. For 21 projects I have real job prices, either from city permit records or from the Census Bureau's American Housing Survey, where homeowners reported what they paid for work done from 2021 to 2023. Those numbers come from a national or regional pool, not from your city. I adjust them to your city with the two local factors below, and the page says so: "Permit median, adjusted for Denver" or "Census median, adjusted for Denver."
Estimate. For the rest of the projects there's no public record of what people paid, so the national number is an estimate. I build it from published cost guides, cross-checked against each other, and for 7 electrical jobs it's my own number from the work I do. Estimates get the same two local factors and a clear "Estimate" label.
How do you adjust a price to my city?
Two factors, both from federal data, both public, and neither one set by hand.
Labor. The labor factor is your metro's average hourly wage for the trade that does the job, divided by the national average for that trade. It comes from the Bureau of Labor Statistics Occupational Employment and Wage Statistics, May 2025. Electrical jobs use electricians' wages, plumbing jobs use plumbers', HVAC jobs use HVAC mechanics', roofing uses roofers', insulation uses insulation workers', and carpentry-type work (windows, doors, interior and exterior jobs) uses carpenters'. Pools and outdoor work use the all-construction average. If your metro pays electricians 17% more than the national average, the labor side of an electrical job goes up 17%.
Materials. The material factor is the Bureau of Economic Analysis Regional Price Parity for goods in your metro, 2024. It says how much more or less physical goods cost where you live than the national average. I apply it at full strength.
The split. Each project has a labor share and a material share, for example 55% labor and 45% materials for an EV charger install. Those shares are mine. They're modeled from how these jobs usually break down, not taken from a data source, and the page labels them that way.
So a city price is the national price times (labor share x labor factor + material share x material factor), rounded to the nearest $10.
What if my city doesn't fit the data cleanly?
Sometimes the government doesn't publish a number for a trade in a small metro, usually insulation workers or roofers, because the sample is too small. Then I use your metro's all-construction wage ratio instead. A few cities aren't in a metro area at all, like Concord, New Hampshire and Juneau, Alaska, so they use the state's nonmetropolitan area. Toms River, New Jersey sits in the New York City metro on paper, but New York City wages don't describe Ocean County, so it uses the Atlantic City metro next door. Every one of these is written down with the reason, and none of them is a number I made up.
Why don't regional prices get counted twice?
When an observed price comes from a regional pool of cities, say permit records from Seattle standing in for the West, those prices already carry Seattle's wages. So before I adjust to your city, I take Seattle's factor back out. A national figure doesn't need that step.
How are permit fees handled?
For the cities where I've read the actual fee schedule (Minneapolis, Phoenix and Atlanta), the page shows the real fee. Everywhere else, the page tells you a permit is usually required and to get the current fee from the building department or your contractor. I don't print a fee I haven't seen.
What's the Minneapolis line on Twin Cities pages?
On the 19 Twin Cities pages, Minneapolis included, you'll also see a line with Minneapolis building permit values for a few project types: roofs, windows, siding, decks, egress windows and basement finishes. Those come from the City of Minneapolis's open permit data. Unlike the other permit cities, I haven't cross-checked them against the national Census survey. That's why they're labeled that way and shown as a local reference, not as the headline price.
How often does this get updated?
The wage factors update each May, when the new BLS wage survey comes out. The material factors update each December, when BEA releases new price parities. Permit records update monthly as cities publish them. Every page shows the month of the newest data behind its price, so you can see how fresh it is.
What are the limits?
These are planning numbers, not bids. They can't see your house, your contractor's schedule, what's in your walls, or the finishes you pick. Use them to budget and to check quotes, and always get at least two written bids from licensed local contractors before you sign anything.
Who reviews this?
I do. If a number looks wrong for your city, tell me on the Contact page. I treat every report like a bug.
Updated October 23, 2026