Methodology
How we compute the rankings on the Where to Live page — every data source, the scoring math, and the limitations we know about. We publish this so you can decide whether the rankings should influence your decisions.
How scoring works
Two modes: by city, or by state
In city mode, the candidate pool is every US place above 25,000 population — currently 1,910 places (1,618 incorporated cities + 292 Census-Designated Places). In state mode, the candidate pool is all 51 states plus DC, with each state's metric values computed as a population-weighted rollup of its in-scope cities (for crime, disaster risk, unemployment, air quality, and health) or pulled directly from the source for state-native metrics (tax burden, BEA state RPP).
State mode does not score climate. Within-state climate variance — Texas spans humid subtropical to arid desert — makes a single state-level temperature target misleading. The form shows an info note explaining this when state mode is selected.
Per-metric percentile within the candidate pool
For every metric except climate, each city or state's raw value is converted to a 0–100 percentile rank against the same-mode pool — your results are scored against the cities or states they are actually competing with, not against an external reference. Six of the seven scoring metrics are minimize (lower raw value = better); only health outcomes is maximize. County Health Rankings publishes its z-score with lower = better, so we sign-flip it at data ingestion to keep the scoring layer's direction uniform.
Importance weights (0 to 10)
The seven importance sliders multiply each metric's percentile score. An importance of 0 excludes that metric entirely; 5 is the midpoint; 10 is the maximum weight. The total score is a weighted average across the metrics you weighted above 0.
At least one factor has to matter (some importance > 0, or a climate preference set) — otherwise we have no signal to rank with. The form catches this before submitting.
Climate is target-closeness, not percentile
Climate doesn't have a universal "better" direction the way crime or cost of living do. When you pick a climate preference, we score each city by how close its annual mean temperature is to the target — 70°F for warm, 60°F for temperate, 45°F for cold — over a 50°F full range. A city exactly at target scores 100; a city 50°F off scores 0. The implied weight for climate in the total score is 5, the midpoint of the importance scale, when a preference is set; nothing when it's set to "No preference."
Housing budget filter
Before scoring, we filter out cities (or states) whose median housing exceeds your monthly budget under a buffer — 10% in city mode, 25% in state mode. State mode uses a larger buffer because within-state housing prices vary widely. For buy mode, we estimate monthly payments with a 7% annual rate, 20% down, 30-year fixed. For rent mode, we use median rent directly. The candidate pool you see at the top of the results panel reflects how many cities or states actually made it through the filter.
When a metric is missing for a city
Federal data is uneven. Some metrics — like Census population — cover every city. Others — like EPA air quality monitors — only cover a subset of counties. We handle missing data in a three-step fallback so the scoring stays comparable across cities even when data sparseness varies:
1. First choice: the most-precise published source. For most metrics that's a county or metro-area number. (Confidence: high.)
2. If that's missing: a state-level fallback. For air quality, that means averaging the monitored cities in the same state. For cost of living, BEA publishes a state-level price index we substitute directly. (Confidence: medium. A flag appears on the result card explaining what was used.)
(A subtle point: when we compute a state-level average, we only include cities that have real measurements at the more-precise level. Cities that received the state-average fallback themselves don't feed back into the state aggregate — that would be circular. This keeps the fallback's confidence honest: a “medium-confidence” state average means N real measurements averaged, not N + M echoes of itself.)
3. If neither is available: the metric is excluded for that city. The city competes on its other metrics; the result card's Notes section lists which factor was unavailable.
Cities don't get a free pass on missing data — the medium-confidence flag and the Notes section are explicit signals that the score is less precise than a fully-measured city's.
Data sources
Some agencies have reorganized their websites since data was acquired. URLs below are the ones we used at acquisition time; if a link no longer resolves, navigate from the agency's homepage to the named data product. All nine sources were downloaded on 2026-05-20; the "as of" dates below reflect each source's most recent published period at that time.
1. BEA Regional Price Parities
As of
Composite cost-of-living index, US average = 100. Powers the cost of living metric.
Source: https://www.bea.gov/data/prices-inflation/regional-price-parities-state-and-metro-area
Known limitations
- Cities outside any defined Metropolitan Statistical Area fall back to BEA's state-level Regional Price Parity — the same composite index at lower geographic precision (medium confidence). This fallback is built into the system; at the current pool size every city has an MSA, so it doesn't fire today, but it's ready for when we expand to smaller cities that don't.
2. Zillow Research — ZHVI + ZORI
As of
Median home value (ZHVI) and median rent (ZORI), pulled from Zillow's published city-level data. Used to filter out cities and states whose housing exceeds your monthly budget — 10% buffer in city mode, 25% in state mode.
Source: https://www.zillow.com/research/data/
Known limitations
- Zillow publishes both metrics at the city level directly; we use those rollups as-is. Coverage is broad for home values (~21,400 US cities) and narrower for rent (~4,400 cities) — at our current pool size this is rarely a problem, but rental coverage will be the first to thin out if we expand to smaller cities.
3. Tax Foundation State-Local Tax Burdens
As of
State and local taxes as a share of income, percentage. Powers the tax burden metric.
Source: https://taxfoundation.org/data/all/state/facts-figures/
Known limitations
- Published at the state level — every city in a state shares the same value. Within-state variation is not captured.
4. FBI Uniform Crime Reporting (Table 8)
As of
Total index crime rate per 100k inhabitants — violent + property, equal weight — published by city. Powers the crime composite.
Source: https://cde.ucr.cjis.gov/
Known limitations
- NIBRS reporting is incomplete. Cities whose police department didn't report — or whose service is by county sheriff — get null with low confidence rather than a fabricated value.
- FBI attaches reporting-change footnotes to certain city rows. We surface these as Notes on the affected city's result card.
5. FEMA National Risk Index
As of
Composite Risk Score on a 0–100 scale (higher = more risk), county-level. Powers the disaster risk metric.
Source: https://hazards.fema.gov/nri/data-resources
Known limitations
- Risk Score is heavily driven by exposure (population × building value), so most large urban counties cluster between 95 and 100. Discrimination will improve as smaller cities enter the pool. A per-capita variant is on the roadmap.
6. BLS Local Area Unemployment Statistics
As of
County-level unemployment rate, annual average. Powers the unemployment metric.
Source: https://www.bls.gov/lau/
Known limitations
- Annual averages smooth over seasonal variation — month-to-month differences in tourist or agricultural economies aren't captured in this composite.
7. NOAA U.S. Climate Normals (1991–2020)
As of
Annual mean temperature (°F) and annual precipitation (inches), joined to each city via nearest-neighbor search by haversine distance against COOP and airport WBAN stations. Powers the climate preference matching.
Source: https://www.ncei.noaa.gov/products/land-based-station/us-climate-normals
Known limitations
- Sunshine / clear-days columns (PSUN, TSUN) were dropped from the 1991–2020 product compared to 1981–2010 due to observer-network changes. We store sunDaysPerYear as null universally rather than fabricate a proxy. NREL's National Solar Radiation Database is the candidate source if we add the signal back.
- Climate uses target-closeness against an absolute temperature target (warm 70°F, temperate 60°F, cold 45°F) rather than percentile rank, since climate preference isn't a single direction — "best" depends on what you want.
8. EPA Air Quality System (AQS)
As of
Median annual AQI from EPA monitoring stations, county-level. Powers the air quality metric.
Source: https://aqs.epa.gov/aqsweb/airdata/download_files.html
Known limitations
- About 996 of the ~3,144 US counties have monitor data. Cities in unmonitored counties receive a state-level fallback — the population-weighted average of monitored cities in the same state (medium confidence). In the current pool, 213 cities — about 13% — use this state-level fallback; their result cards show a flag explaining the substitution.
- Connecticut planning regions: Connecticut switched from 8 traditional counties to 9 federally-recognized planning regions in 2022. EPA still publishes by the old county names; a Connecticut-specific bridge maps each planning-region city to the corresponding old-county monitor data.
9. County Health Rankings (RWJF / UWPHI)
As of
Population Health and Wellbeing composite z-score, county-level. Powers the health outcomes metric.
Source: https://www.countyhealthrankings.org/health-data
Known limitations
- CHR's z-score has lower = better health, because every underlying measure is a "bad outcome" (premature death, poor health days, low birthweight). We sign-flip at ingestion so the stored value is higher = healthier, matching the scoring layer's uniform "maximize" direction for this metric.
- Connecticut planning regions: CHR uses the new federally-recognized planning regions while some city records reference the older county FIPS. A bridge maps each city to the correct county data regardless of which FIPS version it carries.
Known limitations beyond any single source
City coverage
The current pool is every US place with population at least 25,000 — 1,910 places (1,618 incorporated cities + 292 Census-Designated Places) across all 51 states plus DC. State-level rankings cover all states uniformly. Smaller places aren't in scope today; expanding to a roughly 5,000-city pool that includes cities down to 10,000 population is on the roadmap.
If your top results cluster geographically, here's why
Several metrics in this tool are published by the federal government at the county or state level, not the city level. Air quality, health outcomes, disaster risk, and unemployment come from county-level sources — every city in a county receives the same number. Tax burden and (when the state-level fallback fires) cost of living come from state-level sources — every city in a state shares those values.
That has a visible consequence in the rankings: when the metrics you weight most happen to favor a particular county or state, you'll see several cities from that area cluster in your top results. A top-5 with three South Dakota cities, for example, isn't a scoring bug — those cities share their state's tax burden and (often) their county's health, disaster, and air quality scores. The scoring is working correctly against the data we have.
To see what actually differs between cities clustered this way, look at the per-metric bars on each card. The metrics where the cities diverge — cost of living, crime, climate, housing cost — are where one city distinguishes itself from its neighbors.
You see this most directly in the “Nearby cities” section under each winner card. In city mode across all states, we show the four geographically-closest other cities within 100 miles of each winner, scored under your same preferences. Their totals often land close to the winner's because they share the same county-level data (health, air quality, unemployment, disaster risk) and sometimes the same state-level data (tax burden, cost of living when the state-fallback fires). Where a winner's per-metric bars diverge from its neighbors shows which metrics distinguish that city locally.
In states with many adjacent CDPs sharing a county, a state-filtered search can return several similarly-scored nearby places — they share the same county-level health, disaster risk, unemployment, and air quality values. The per-metric bars and the housing-cost columns are where these clustered CDPs distinguish themselves. See the Census-Designated Places card below for more on how CDP metrics work.
Census-Designated Places (CDPs) are included by default
About 290 of the ~1,900 places in our pool are Census-Designated Places — unincorporated communities the Census Bureau tracks as distinct places even though they aren't legally incorporated cities or towns. They're common in metropolitan suburbs and in states with few incorporated municipalities, where many people actually live.
Because CDPs aren't legal cities, most data sources don't publish city-specific numbers for them. We inherit their metrics from the surrounding county or metro area — air quality from the county's EPA monitor, health outcomes from the county's CHR rank, cost of living from the metro's BEA index, and so on. Each CDP result card carries an “Unincorporated area” badge near the city name and a sentence in the justification explaining that the metrics reflect the surrounding area rather than the place itself.
If you'd rather see only legally incorporated cities, check “Show incorporated places only” in the form. By default this checkbox is off — we surface CDPs because (a) measuring showed they don't crowd incorporated cities out of all-states results in practice, (b) some state-level searches depend almost entirely on CDPs (states with few or no incorporated municipalities), and (c) the per-card badge and disclosure sentence let you tell at a glance which results are CDPs.
Some scores come from sparser data
Every metric value carries a confidence tier (high / medium / low). High = direct measurement at the city or county geography that matches our pool. Medium = a fallback method, like substituting a state-level average when a city has no county-level monitor data. Low = no data.
Today, when a city uses a fallback method, its result card shows a confidence indicator on the per-metric bar for the affected metric, plus an entry in the “Notes” section explaining what was substituted.
Different "as of" dates across sources
Federal data publishing cadences vary — BLS annual averages lag by a year, NOAA climate normals refresh every decade, FEMA NRI is updated less often than EPA AQS. The per-source dates above reflect each one's most recent publication at acquisition time; we don't hold back fresh data to align dates artificially.
Future improvements
- Per-capita FEMA disaster risk variant, to discriminate better between large urban counties.
- NREL National Solar Radiation Database for the sunshine / clear-days signal that the 1991–2020 NOAA Climate Normals product dropped.
- Expansion to a roughly 5,000-city pool including cities down to 10,000 population.