How we work
Methodology & Data Sources
How PlainCities collects, matches and presents data for 28,702 U.S. cities and places, the federal sources, the join keys, and the limits of each dataset.
Methodology detail
Data Sources
PlainCities builds city profiles from official federal government databases:
- U.S. Census Bureau American Community Survey (ACS) 5-Year 2023 - Population, demographics, household income, home values, poverty rates, education levels, labor force participation, and median age for 28,702 cities. Source: census.gov/acs
- FBI Uniform Crime Report (UCR) - Violent and property crime rates for 7,520 cities that report to the FBI's UCR program. Source: ucr.fbi.gov
- NOAA Climate Normals (1991–2020) - Average temperature, precipitation, and snowfall for 3,717 cities based on 30-year climate averages. Source: ncei.noaa.gov
- NCES Common Core of Data (CCD) - Public school counts for 15,098 cities from the National Center for Education Statistics. Source: nces.ed.gov/ccd
- U.S. Census Bureau Building Permits Survey (BPS) - Residential building-permit activity by city, 2019-2024, a leading indicator of local housing growth. Source: census.gov/construction/bps
- Bureau of Economic Analysis (BEA) Regional Price Parities (RPP) 2024 - State-level cost-of-living index (100 = national average) used for the cost-of-living comparisons on state and city pages. Source: bea.gov
- HUD Fair Market Rent (FMR) - State-average two-bedroom Fair Market Rent, published annually by the Department of Housing and Urban Development. Source: huduser.gov/portal/datasets/fmr.html
- FEMA National Risk Index (NRI) - County-level natural-hazard risk scores, averaged to the state level for the risk figures shown on state and city pages. Source: hazards.fema.gov/nri
- U.S. Energy Information Administration (EIA) 2023 State Averages - Residential electricity and natural gas cost estimates used for the monthly utility-cost figures. Source: eia.gov
Coverage
PlainCities covers 28,702 U.S. cities and places as the core Census geography. Not all data dimensions are available for every city, crime data covers 7,520 cities that report to FBI UCR; climate data covers 3,717 cities with NOAA monitoring stations; school counts cover 15,098 cities.
Census Tracts (Neighborhood Pages)
Neighborhood pages cover selected U.S. Census tracts – small, relatively permanent statistical subdivisions of a county designed by the Census Bureau to contain roughly 1,200 to 8,000 residents, with boundaries held stable across decades so figures can be tracked over time. Tract-level ACS 5-Year figures are rolling averages rather than single-moment snapshots, which reduces year-to-year noise in small areas but means the numbers describe the period ending in the reference year, not one specific date.
How We Process the Data
- Download raw datasets from each agency (Census ACS, FBI UCR, NOAA, NCES)
- Parse and normalize each dataset independently
- Cross-match cities across databases using FIPS codes (Census), geographic name matching (FBI, NOAA), and NCES place codes
- No data is modified, interpolated, or editorialized, we present exactly what each agency reports
- When a data point is unavailable for a city (e.g., no FBI crime reporting, no NOAA station), we display "Data not available" rather than estimating
- Load into our search-optimized database
Rankings Methodology
Rankings are computed from the underlying data points, not from subjective scoring systems. Crime rankings use FBI-reported rates per 100,000 population. Climate rankings use NOAA 30-year normals. All rankings compare cities within the same geographic set (e.g., cities with populations over 10,000) for fairness.
How Percentiles and Ranks Are Calculated
On every city and neighborhood page, we show two kinds of positional comparison. A national percentile counts every US city (population 1,000+, or every Census tract in the same parent city for neighborhood pages) with a non-null value for that metric, then computes what share of them fall below the entry's value: round(peers-below ÷ total × 100). Safety is inverted (percentile = share of cities with a higher crime rate) so a higher number always means safer. A state or city rank narrows that same comparison to only the cities PlainCities tracks in the same state (or tracts in the same parent city), breaking ties alphabetically or by GEOID. Ranks are ordered by raw value, highest first – a higher rank is not automatically "better" for every measure (e.g. rent, poverty rate); each metric's own context on the page clarifies the direction.
City profiles also publish a home-value-to-income ratio placement: ACS median home value divided by median household income among cities with both fields and population of 1,000 or more. Rank 1 is the lowest ratio (most compact). Size-class ranks reuse the same population tiers as the city ranker (micro / small / mid-size / large / major). Bands are <3.0× affordable, 3.0–5.0× moderate, and >5.0× pressured. The ratio is descriptive only, not a mortgage-affordability score.
City profile score
Each city profile with at least two published inputs shows a city profile score (0–100 with an A–F grade). The score is a weighted blend of up to five dimensions, each mapped to empirical percentiles among U.S. cities with population of 1,000 or more: median household income (higher better, weight 0.25), poverty rate (lower better, 0.20), bachelor's-or-higher share (higher better, 0.15), cost-of-living index from BEA state Regional Price Parities (lower better, 0.20; state grain, not city-unique), and FBI UCR violent-crime rate per 100,000 when published (lower better, 0.20). Missing dimensions drop out and their weight redistributes across the remaining inputs so incomplete coverage never silently deflates the total. Breakpoints for ACS/FBI dimensions are the empirical p10/p25/p50/p75/p90 among cities with population of 1,000 or more; the cost-of-living breakpoints are the same arithmetic applied to the state BEA index values carried on each city row. Scored dimensions are listed strongest-first so sibling pages do not share one fixed label order. The score is comparative arithmetic on published medians, not a livability rating, and not advice to relocate, buy, or declare a city "best."
Metric band labels
Headline stats on city profiles also carry a short band label (for example, “above median income” or “high cost”) with a hover tooltip that restates the exact value against the same empirical city percentiles used in the profile score for ACS/FBI fields, against state BEA RPP percentiles for cost of living, or against an explicit size class for population. Lower-is-stronger fields (poverty, cost of living, violent crime) invert the language so a higher band never implies “better” when the underlying metric is a burden. Labels are comparative context only.
Data Currency
The Census Bureau releases new ACS 5-Year estimates annually. FBI, NOAA, and NCES update on their own schedules. We update our database when new data from each source becomes available. ACS 5-Year 2023 data is the most recent available as of our last update.
Limitations
- Crime data covers only cities that voluntarily report to the FBI UCR, 7,520 of 28,702 cities
- NOAA climate data covers 3,717 cities with monitoring stations; other cities have no climate data
- ACS 5-Year estimates are derived from surveys with margins of error, exact values for small cities may have wide confidence intervals
- City boundary definitions can differ between agencies, affecting cross-source matching
How the Source Agencies Collect Data
The American Community Survey is conducted by the Census Bureau as a continuous survey of approximately 3.5 million U.S. households per year. ACS 5-Year estimates combine five years of survey data to produce reliable statistics for small geographic areas including cities, towns, and census-designated places. The survey covers demographics, income, education, housing, and employment through mailed questionnaires and follow-up interviews.
The FBI UCR program collects crime data from approximately 18,000 law enforcement agencies nationwide through voluntary reporting. Agencies submit monthly counts of offenses and arrests using standardized crime definitions. NOAA Climate Normals are computed from 30 years of weather station observations, using quality-controlled data from the Cooperative Observer Program and automated weather stations. NCES collects school data annually through mandatory surveys of all public school districts.
Data Accuracy Commitment
PlainCities presents government data without modification or interpolation. When data is missing for a city from any source, we display it as unavailable rather than estimating. Cross-source matching is performed using official geographic identifiers (FIPS codes) where possible, and geographic name matching where FIPS codes are not shared across datasets. If you find any data that appears incorrect, please contact us and we will verify against the source data.
Editorial Workflow
Content on PlainCities is compiled through a documented editorial process. Our pipeline uses automated tooling to join federal datasets (Census ACS, FBI UCR, NOAA Climate Normals, NCES) into readable city and neighborhood profiles, generate comparisons, and apply consistent templates across 28,702 cities and 85,381 census tracts. PlainCities documents its methodology, validates data integrity, and is responsible for its corrections process. Numbers on every page are derived directly from the cited source; no automated tooling is used to invent, interpolate, or estimate statistics. Narrative framing, guides, and explanatory text are written to explain the source data accurately and in plain language.
Data Licensing & Reuse
The underlying government data (Census ACS, FBI UCR, NOAA Climate Normals, NCES) is public domain and free to reuse under each agency's own terms. Every city, ranking, and comparison page publishes machine-readable Dataset structured data, so the source, vintage, and license for any figure you see is programmatically citable, not just visible on the page. Our own additions (comparisons, rankings, and editorial commentary) are original work; see our Terms of Use for reuse terms on that layer.
The compiled city-profile extract is the same plaincities-cities.csv file linked from this page (CC BY 4.0 on the compiled table). State summaries are on /data. There is no public API; contact us if you need a format the catalog does not already publish.
Contact
Questions about our methodology or found a data error? Reach us at hello@plaincities.com or through our contact page.
Download the city profile extract this methodology describes: plaincities-cities.csv. Catalog: /data.