BathWindowsRoofingFlooringGuttersSidingDoors

How We Calculate Costs

Our cost ranges are built from federal wage data and current published material pricing — not copied from anyone else's cost guide. Here is the whole method.

The Short Version

The ranges in our cost calculators are calculated, not collected. We price the materials a job actually needs, add the labor hours it actually takes at the wage that trade actually earns in the United States, and then account for the fact that a contractor has to cover insurance, vehicles, overhead and profit on top of that. That is the method this page documents.

Be clear about which figures those are. The eight cost calculators run the model live in your browser and recompute for your metro. The ranges you see elsewhere — on city pages, state pages, vertical guides and in article prose — are researched ranges: what the market charges, gathered per city and per trade, and sanity-checked against this model rather than produced by it. They will not always match the calculator to the dollar, and where they differ the calculator is the one whose arithmetic you can inspect below.

We publish a range rather than a single number because the honest answer spans a wide market. The low end reflects a lean independent contractor fitting mid-grade material. The high end reflects a national in-home-sales company fitting premium material. Both are real prices that real homeowners pay for the same nominal project.

These are planning estimates, not quotes. No formula can see your house. Get at least three written quotes before you commit to anything.

The Formula

Installed cost = (material × quantity × waste allowance)
    + accessories
    + (labor hours × hourly wage × employer cost load)

Price you are quoted = installed cost × overhead-and-profit multiplier

That last line is the one most cost guides leave out, and it is the reason online estimates so often come in below real quotes. A contractor does not bill you their cost. They bill you their cost plus everything it takes to run a business that shows up.

Where Each Number Comes From

Source and confidence for each input in the cost model
InputSourceHow confident we are
Hourly wagesUS Bureau of Labor Statistics, Occupational Employment and Wage Statistics, May 2025. We use the specific trade for each job — roofers for roofing, glaziers and carpenters for windows, plumbers for bathrooms, sheet metal workers for gutters.High. A federal survey of actual wages, updated annually, free to anyone.
Material pricesCurrent listed prices from retailers and manufacturers, captured on a stated date. We record the product, the price and the page for every single one.High for the price itself. Note that retail is not contractor pricing — contractors buy at a trade discount but mark materials up, and the two effects broadly offset.
Employer cost loadBLS Employer Costs for Employee Compensation. Wages are about 67% of what a construction employer actually pays per hour worked; the rest is payroll tax, insurance and benefits.High. Also federal data.
Labor hoursPublished installation references and trade sources where they exist. Where they do not, we state our own assumption rather than dress it up.This is our weakest input. See below.
Overhead & profitOur own assumption, expressed as a range from lean independent contractor to national in-home-sales company.Assumption. It is the single biggest driver of the final number.

What We Are Not Sure About

Most cost guides do not have a section like this. We think that is a mistake, so here is ours.

Labor hours are genuinely hard to source. Trade associations publish detailed standards for how to install a product — fastener patterns, flashing details, clearances — but almost none of them publish how many hours it takes or how many people it needs. Where we could not find a published figure, the hours in our model are our own estimate, cross-checked against what contractors describe. That is an honest gap and we are working to close it against a published estimating reference.

Two line items have no public price at all. Subfloor preparation and tearing out an existing floor are quoted separately by nearly every flooring contractor, and no one publishes what they cost. That absence is worth knowing about: if a flooring quote comes in far above the per-square-foot price you saw advertised, this is usually why.

Local variation is real and we are still improving how we handle it. Labor is the part of a job that varies most by market, and wages differ substantially between metros. We are moving our city pages onto per-metro federal wage data so that a local estimate reflects local labor rather than a blanket adjustment.

What We Do Not Do

We do not republish anyone else's cost data. Several well-known cost datasets are licensed products, and their terms do not permit dropping them into a calculator or a database. Building our own model from public wage data and published prices means we can show you the arithmetic instead of asking you to trust a number we borrowed.

We do not quietly change our numbers. Wages refresh annually when the BLS publishes. Material prices are re-captured on a stated schedule and adjusted between refreshes using the federal producer price index for construction materials.

We do not pretend a range is a quote. Every cost figure on this site is a planning estimate. The only number that reflects your actual home is a written quote from a contractor who has seen it.

Questions About Our Cost Estimates

These are the questions homeowners ask most often before starting this project - what it costs, how long it takes, what a fair quote looks like and which details change the price. Each answer below is written to stand on its own, so you can read just the one you need.

Several reasons, and most of them are legitimate. Scope is the biggest one - a quote may include tear-out, disposal, permits, trim, or repairs to something the installer found once work started, and our estimate covers a standard job with none of those surprises. Material grade is the second: the spread between builder-grade and premium is often larger than the labor cost of the whole job. Third is who is quoting - a national in-home-sales company carries marketing and commission costs in its price that an independent contractor does not. If a quote is far outside our range in either direction, ask for a written scope breakdown.

Yes. Every figure on this site is an installed price - material plus labor plus the contractor's overhead and profit. This matters because many advertised prices are material only, which is why an advertised floor at $2 per square foot can become an $8 per square foot installed job.

Wages update annually with the BLS Occupational Employment and Wage Statistics release. Material prices are re-captured on a stated schedule, and adjusted between refreshes using the federal producer price index for construction materials. The review date appears on the cost pages themselves.

Because the market genuinely is that wide, and narrowing it would mean guessing which end you will land on. The same nominal project - say, replacing ten windows - is a meaningfully different purchase depending on material grade and the type of company you buy from. A single average number would be wrong for almost everyone. A range tells you what to expect and where in it you probably sit.

Partly. City pages apply a local adjustment to the national range. Labor is the component that varies most between markets, and we are moving that adjustment onto per-metro federal wage data so it reflects actual local labor cost rather than a general index.

We are a lead-matching service - if you request quotes, we connect you with contractors who pay for that introduction. That is exactly why the method is published here in full. You can check the arithmetic rather than take our word for it, and nothing about how we are paid changes what the formula returns.

Method version: 2026-08-12 ·Wage data: BLS OEWS, May 2025 ·Material pricing captured: 2026-08-12
Questions about the method, or think an input is wrong? We would rather hear it — contact us and say which number and why.