Open dataset · CC BY 4.0
U.S. metro migration — who moves in & out
How many people and households moved into and out of 65 major U.S. metros — plus the income (AGI) that moved with them, the net change, and the single county each metro pulls from and loses to most. Aggregated from the IRS county-to-county migration files (2022-2023). Free to download and cite.
Largest net movement
Download
Take the whole dataset
All 65 metros, every column, machine-readable. Free for any use — including commercial — under CC BY 4.0, as long as you credit ReloMath with a link back.
How to cite
Free to republish and adapt with credit. Suggested citation:
ReloMath. "U.S. Metro Migration — Who Moves In & Out (IRS, 2022–2023)." ReloMath, reviewed October 4, 2026, https://relomath.com/data/metro-migration.
License: Creative Commons Attribution 4.0. Attribution = a visible credit linking to this page.
Key findings
Biggest net gain
Dallas-Fort Worth-Arlington, TX
+36,370 people
Biggest net loss
New York-Newark-Jersey City, NY-NJ
-153,065 people
Metros gaining
34 of 65
31 losing population
People tracked moving
3,517,803
in, 3,786,493 out
Across the 65 metros tracked, 34 gained population and 31 lost it between 2022-2023. The five biggest net gainers are Dallas-Fort Worth-Arlington, TX (+36,370), Houston-Pasadena-The Woodlands, TX (+22,511), Tampa-St. Petersburg-Clearwater, FL (+22,456), Phoenix-Mesa-Chandler, AZ (+21,218), Austin-Round Rock-San Marcos, TX (+17,386). The five biggest net losers are New York-Newark-Jersey City, NY-NJ (-153,065), Los Angeles-Long Beach-Anaheim, CA (-101,293), Miami-Fort Lauderdale-West Palm Beach, FL (-48,945), Chicago-Naperville-Elgin, IL-IN (-34,215), San Francisco-Oakland-Fremont, CA (-31,047). Figures count individuals (IRS n2) and are lower bounds — the IRS suppresses small county-to-county flows.
The full dataset
Search a metro, sort any column, see where people come from and go to.
Showing 65 of 65
| Top origin (in) | Top destination (out) | ||||
|---|---|---|---|---|---|
| Dallas-Fort Worth-Arlington, TX | 179,893 | 143,523 | +36,370 | Harris County, TX | Harris County, TX |
| Houston-Pasadena-The Woodlands, TX | 138,236 | 115,725 | +22,511 | Travis County, TX | Travis County, TX |
| Tampa-St. Petersburg-Clearwater, FL | 102,203 | 79,747 | +22,456 | Polk County, FL | Polk County, FL |
| Phoenix-Mesa-Chandler, AZ | 134,148 | 112,930 | +21,218 | Pima County, AZ | Pima County, AZ |
| Austin-Round Rock-San Marcos, TX | 88,399 | 71,013 | +17,386 | Harris County, TX | Harris County, TX |
| San Antonio-New Braunfels, TX | 71,456 | 55,441 | +16,015 | Travis County, TX | Travis County, TX |
| Jacksonville, FL | 50,064 | 34,748 | +15,316 | Broward County, FL | Orange County, FL |
| Charlotte-Concord-Gastonia, NC-SC | 61,486 | 48,859 | +12,627 | Wake County, NC | Catawba County, NC |
| Las Vegas-Henderson-North Las Vegas, NV | 76,116 | 64,720 | +11,396 | Los Angeles County, CA | Los Angeles County, CA |
| Raleigh-Cary, NC | 58,216 | 46,941 | +11,275 | Durham County, NC | Durham County, NC |
| Riverside-San Bernardino-Ontario, CA | 131,188 | 120,025 | +11,163 | Los Angeles County, CA | Los Angeles County, CA |
| Boise City, ID | 22,417 | 13,417 | +9,000 | Orange County, CA | Maricopa County, AZ |
| Orlando-Kissimmee-Sanford, FL | 98,448 | 89,859 | +8,589 | Polk County, FL | Polk County, FL |
| Nashville-Davidson--Murfreesboro--Franklin, TN | 41,461 | 34,236 | +7,225 | Montgomery County, TN | Montgomery County, TN |
| Atlanta-Sandy Springs-Roswell, GA | 101,551 | 96,300 | +5,251 | Hall County, GA | Hall County, GA |
| Denver-Aurora-Centennial, CO | 76,550 | 71,819 | +4,731 | Boulder County, CO | Weld County, CO |
| Richmond, VA | 17,287 | 13,106 | +4,181 | Fairfax County, VA | Fairfax County, VA |
| Sacramento-Roseville-Folsom, CA | 54,154 | 50,434 | +3,720 | Santa Clara County, CA | San Joaquin County, CA |
| Oklahoma City, OK | 22,853 | 19,241 | +3,612 | Tulsa County, OK | Pottawatomie County, OK |
| Tucson, AZ | 26,671 | 23,587 | +3,084 | Maricopa County, AZ | Maricopa County, AZ |
| Knoxville, TN | 14,075 | 11,169 | +2,906 | Sevier County, TN | Sevier County, TN |
| Indianapolis-Carmel-Greenwood, IN | 31,073 | 28,366 | +2,707 | Cook County, IL | Cook County, IL |
| Columbia, SC | 17,623 | 15,300 | +2,323 | Mecklenburg County, NC | Mecklenburg County, NC |
| Des Moines-West Des Moines, IA | 10,907 | 8,657 | +2,250 | Story County, IA | Story County, IA |
| Tulsa, OK | 14,609 | 12,802 | +1,807 | Oklahoma County, OK | Oklahoma County, OK |
| Kansas City, MO-KS | 25,350 | 23,656 | +1,694 | Douglas County, KS | Douglas County, KS |
| Spokane-Spokane Valley, WA | 13,592 | 12,204 | +1,388 | Kootenai County, ID | Kootenai County, ID |
| Asheville, NC | 9,495 | 8,343 | +1,152 | Mecklenburg County, NC | Haywood County, NC |
| Providence-Warwick, RI-MA | 25,130 | 24,039 | +1,091 | Plymouth County, MA | Plymouth County, MA |
| Omaha, NE-IA | 11,455 | 10,976 | +479 | Lancaster County, NE | Lancaster County, NE |
| Albuquerque, NM | 14,380 | 13,907 | +473 | Santa Fe County, NM | Maricopa County, AZ |
| Madison, WI | 17,081 | 16,626 | +455 | Rock County, WI | Rock County, WI |
| Manchester-Nashua, NH | 13,577 | 13,206 | +371 | Middlesex County, MA | Rockingham County, NH |
| Savannah, GA | 9,652 | 9,443 | +209 | Liberty County, GA | Liberty County, GA |
| Fresno, CA | 16,527 | 16,896 | -369 | Tulare County, CA | Tulare County, CA |
| Birmingham, AL | 14,852 | 15,251 | -399 | Tuscaloosa County, AL | Tuscaloosa County, AL |
| Columbus, OH | 34,613 | 35,355 | -742 | Cuyahoga County, OH | Cuyahoga County, OH |
| Louisville/Jefferson County, KY-IN | 13,437 | 14,337 | -900 | Hardin County, KY | Hardin County, KY |
| Hartford-West Hartford-East Hartford, CT | 24,518 | 25,624 | -1,106 | South Central Connecticut Plannin, CT | Naugatuck Valley Planning Region, CT |
| Portland-Vancouver-Hillsboro, OR-WA | 50,455 | 52,242 | -1,787 | Marion County, OR | Marion County, OR |
| Minneapolis-St. Paul-Bloomington, MN-WI | 39,985 | 42,208 | -2,223 | Stearns County, MN | Stearns County, MN |
| Cincinnati, OH-KY-IN | 19,165 | 21,639 | -2,474 | Montgomery County, OH | Montgomery County, OH |
| Buffalo-Cheektowaga, NY | 11,157 | 13,688 | -2,531 | Queens County, NY | Monroe County, NY |
| El Paso, TX | 19,722 | 22,963 | -3,241 | Doña Ana County, NM | Doña Ana County, NM |
| Milwaukee-Waukesha, WI | 20,379 | 23,639 | -3,260 | Racine County, WI | Racine County, WI |
| Pittsburgh, PA | 21,444 | 24,872 | -3,428 | Indiana County, PA | Mercer County, PA |
| St. Louis, MO-IL | 20,174 | 23,833 | -3,659 | Cook County, IL | Cook County, IL |
| Cleveland, OH | 24,351 | 28,393 | -4,042 | Summit County, OH | Summit County, OH |
| Urban Honolulu, HI | 26,170 | 31,589 | -5,419 | San Diego County, CA | Clark County, NV |
| Baltimore-Columbia-Towson, MD | 49,870 | 55,413 | -5,543 | Prince George's County, MD | Prince George's County, MD |
| Memphis, TN-MS-AR | 13,798 | 20,112 | -6,314 | Davidson County, TN | Davidson County, TN |
| Philadelphia-Camden-Wilmington, PA-NJ-DE-MD | 79,601 | 86,001 | -6,400 | Mercer County, NJ | Berks County, PA |
| Seattle-Tacoma-Bellevue, WA | 101,301 | 107,866 | -6,565 | Los Angeles County, CA | Thurston County, WA |
| Salt Lake City-Murray, UT | 35,887 | 43,131 | -7,244 | Utah County, UT | Utah County, UT |
| New Orleans-Metairie, LA | 11,696 | 19,316 | -7,620 | St. Tammany Parish, LA | St. Tammany Parish, LA |
| Detroit-Warren-Dearborn, MI | 45,837 | 56,968 | -11,131 | Washtenaw County, MI | Washtenaw County, MI |
| San Diego-Chula Vista-Carlsbad, CA | 95,628 | 110,935 | -15,307 | Los Angeles County, CA | Riverside County, CA |
| San Jose-Sunnyvale-Santa Clara, CA | 57,946 | 77,747 | -19,801 | Alameda County, CA | Alameda County, CA |
| Boston-Cambridge-Newton, MA-NH | 86,195 | 108,171 | -21,976 | Worcester County, MA | Worcester County, MA |
| Washington-Arlington-Alexandria, DC-VA-MD-WV | 113,322 | 136,397 | -23,075 | Anne Arundel County, MD | Anne Arundel County, MD |
| San Francisco-Oakland-Fremont, CA | 102,323 | 133,370 | -31,047 | Santa Clara County, CA | Santa Clara County, CA |
| Chicago-Naperville-Elgin, IL-IN | 95,208 | 129,423 | -34,215 | Maricopa County, AZ | Maricopa County, AZ |
| Miami-Fort Lauderdale-West Palm Beach, FL | 116,179 | 165,124 | -48,945 | Orange County, FL | St. Lucie County, FL |
| Los Angeles-Long Beach-Anaheim, CA | 193,272 | 294,565 | -101,293 | San Bernardino County, CA | San Bernardino County, CA |
| New York-Newark-Jersey City, NY-NJ | 181,995 | 335,060 | -153,065 | Los Angeles County, CA | Palm Beach County, FL |
Figures are derived from official IRS county-to-county migration data (Statistics of Income), mapped to metro areas via the U.S. Census CBSA crosswalk, and reflect filing years 2022–2023. Only disclosed domestic flows crossing the metro boundary are counted; suppressed, foreign and within-metro flows are excluded. Net is the balance of observed flows, not total population change. IRS changed its matching method in this period; do not compare directly with the old extract. The IRS suppresses small county-to-county flows, so per-metro totals are lower bounds — verify locally before relying on these figures.
Browse cost-of-living data for these metros or compare any two cities side by side.
Embed
Put this table on your site
Free to embed on blogs, guides, and resource pages. Paste this snippet where you want the table — it includes a credit link back to this dataset (that link is the only thing we ask for).
Live preview
How we built this
The raw data is the IRS Statistics of Income (SOI) county-to-county migration
files for filing years 2022-2023 — the agency's tabulation of address changes
between consecutive years' tax returns. n1 counts returns (households),
n2 counts exemptions (individuals), and AGI is the adjusted gross income that
moved, in thousands of dollars.
We aggregate those county flows up to metros using the U.S. Census CBSA delineation (July 2023): each disclosed domestic county flow is mapped to its metropolitan statistical area; within-metro, foreign and suppressed flows are excluded before inflows/outflows are summed per metro. The top origin column is the single county sending the most people into a metro; the top destination column is the single county receiving the most people who leave. Because the IRS suppresses small county-to-county flows for privacy, inflow/outflow counts are partial counts, not exhaustive totals. Their difference is only an observed balance. IRS introduced a new return-matching method for 2022–2023; values are not directly comparable with the old extract.
This is a single-source dataset: every figure derives from the one IRS SOI release (irs.gov SOI migration data), combined with the Census crosswalk — so we credit those two sources at the dataset level rather than inventing a separate official link per row. Last reviewed October 4, 2026. Figures are derived from official IRS county-to-county migration data (Statistics of Income), mapped to metro areas via the U.S. Census CBSA crosswalk, and reflect filing years 2022–2023. Only disclosed domestic flows crossing the metro boundary are counted; suppressed, foreign and within-metro flows are excluded. Net is the balance of observed flows, not total population change. IRS changed its matching method in this period; do not compare directly with the old extract. This is general information, not financial, legal, or tax advice — verify locally before relying on it.