Methodology
moldcostguide.com is a data publisher. Every cost figure on the site is modeled from public data and a documented cost model — not surveyed, not scraped from quotes, and not a national average with a city name attached. This page explains exactly how the numbers are built, and publishes the model’s assumptions in full so anyone can check our work.
The three inputs
Each metro’s estimate draws on three public datasets. Only one of them — local labor — prices the job. The other two never touch the dollar figure; they describe the local conditions that make a mold problem more or less likely, and where it tends to hide. We publish them because they are the context around the number, and because they drive the risk rankings on each metro page — but the price itself moves only with the local wage.
1. Climate — NOAA hourly climate normals (1991–2020) Risk signal
Mold is a moisture problem, so we measure the outdoor moisture load buildings in the area routinely contend with. The key figure is the number of hours a year the outdoor dew point sits at or above 60° F, taken from the nearest weather station’s 30-year hourly normals (with NOAA’s 15-year normals as a fallback where the 30-year product doesn’t reach).
We use dew point rather than rainfall on purpose. Rainfall measures water falling from the sky; dew point measures water already in the air, which is what condenses on cool surfaces and keeps materials damp. They are not the same — the Pacific Northwest is very rainy but rarely humid by dew point, while the Gulf Coast is both. Our data reflects that distinction: coastal Southern metros log several thousand humid hours a year; dry Western metros log a few dozen.
2. Housing — US Census (ACS 5-year) Risk signal
The age and form of a metro’s housing shape where mold hides and how likely a problem is to take hold. An older home with a vented crawl space or a finished basement tends to have more of the damp, hidden, cellulose-rich assemblies mold needs than newer slab-on-grade or multifamily stock. We pull two tables: year built (B25034) and units in structure (B25024). This is a risk-and-context signal — it feeds the moisture-and-housing index and the metro rankings on each page, not the price of the work.
3. Labor — BLS OEWS wages (metro & state) The cost input
Labor is priced at the local rate. We use Bureau of Labor Statistics Occupational Employment and Wage Statistics for construction laborers (SOC 47-2061) and first-line construction supervisors (SOC 47-1011), blended, for each metro — not a national figure with a markup. Smaller micropolitan areas that BLS doesn’t publish metro wages for use their state’s OEWS rate for those occupations, which is labeled as such in our data.
The cost model
The model combines the local labor rate with a fixed set of assumptions to produce a low–typical–high range for each remediation scope. Climate and housing don’t enter this formula — they inform the risk context above, not the price. The formula is:
where labor = crew size × on-site hours × ( base wage × labor burden ) × the metro’s local wage multiplier.
The assumptions below are published verbatim — they are the product. Contractor feedback that corrects them is welcome, and any change bumps the model version stamped on every figure.
Global assumptions
- Labor burden: 1.8×. BLS wages are base pay. Contractors bill a loaded rate covering payroll tax, insurance (high for remediation), PPE, vehicles and overhead.
- Contractor margin: 25% on total job cost.
- Equipment day rates (national — rental pricing varies little by metro): commercial dehumidifier $75/day, HEPA negative-air scrubber $65/day, air mover $25/day.
- National base wage for the illustrative figures below is roughly $32/hour; each metro scales from its own BLS wage.
Per-scope assumptions
Crew, on-site hours, equipment (machine-days), and materials/disposal are fixed per scope. The low/high multipliers produce the published range — scope is by far the biggest source of spread, because the same location can mean a surface cleaning or a full material removal.
| Scope | Crew | Hours | Equipment (machine-days) | Materials | Disposal | Range |
|---|---|---|---|---|---|---|
| Surface mold, single room | 2 | 6 | scrubber×1, mover×2 | $120 | $90 | 0.65–1.75 |
| Attic | 2 | 16 | scrubber×2, mover×3 | $320 | $280 | 0.55–2.00 |
| Crawl space | 2 | 20 | dehumidifier×3, scrubber×3, mover×4 | $450 | $350 | 0.55–2.30 |
| Basement | 3 | 24 | dehumidifier×4, scrubber×3, mover×6 | $520 | $480 | 0.55–2.10 |
| HVAC system | 2 | 30 | scrubber×2 | $900 | $250 | 0.60–1.90 |
| Whole house | 4 | 72 | dehumidifier×7, scrubber×6, mover×12 | $1,600 | $1,800 | 0.55–3.00 |
On-site hours are triangulated from RSMeans-style crew productivity for demolition and surface cleaning, and from IICRC S520 containment practice. They are the model’s weakest input, and the first thing we adjust on credible contractor feedback.
What the model does not do
- It is a modeled estimate, not a quote. Actual price turns on contamination class — how far growth has spread and whether it sits behind finished surfaces — which can matter as much as square footage, or more.
- It covers remediation only: containment, removal, cleaning, disposal and post-remediation verification. Rebuilding what came out, and fixing the moisture source, are quoted separately.
- It does not make health claims. We report cost and building science, not medical guidance.
Coverage and honesty
The dataset covers 729 US metro and micro areas. Where the nearest station lacks dew-point data, we use the closest station that has it and note the distance; a small number of markets in complex terrain (mountain rain shadows) can carry a station that over- or under-states local moisture, and we flag those rather than hide them.
We sanity-check model output against published aggregator ranges — a typical project runs about $1,384–$6,384 — but those ranges are a check only, never an input.
Found an error?
If a figure looks wrong, tell us. We publish our sources and our model precisely so they can be checked, and we version the model so any correction is visible. See Sources for the underlying datasets, or send a note via our Corrections page.