US interstate migration: net flows, rates and wealth signals, annual
Annual US state migration intelligence from IRS Statistics of Income migration data (filing years 2017-2023, 50 states + DC): US interstate inflow/outflow of tax returns, individuals and adjusted gross income (AGI in $ thousands, year-2 return), net flows, SOI's net migration rate per 1,000 filing returns, per-year net ranks, a wealth signal (average AGI of in-migrants vs out-migrants), migration churn, the top-3 inflow/outflow corridors per state-year, and within-series year-over-year momentum. SOI's 2022-2023 matching update added ~5% more matched returns, so 2017-2021 and 2022-2023 are separate methodology series (2022 YoY cells null by design). Caveats: matched filers only (not the full US population); mailing addresses may not be residences; state detail flows under 10 returns are suppressed. IRS SOI data are US federal public domain (17 U.S.C. 105, commercial reuse allowed); source: IRS Statistics of Income.
- Source
- IRS Statistics of Income
- Rows
- 357
- Columns
- 38
- Source cadence
- Yearly
- Last refreshed
- Sep 26, 2026
- Theme
- demographics
| Column | Type | Description |
|---|---|---|
| filing_year | integer | The later filing year of the matched return pair (year-2 return); migration measured between filing_year-1 and filing_year addresses. (unit: year) |
| data_year | string | SOI data-year label for the matched pair, e.g. '2022-2023'. |
| state_fips | string | Two-digit FIPS code of the filing geography (50 states + DC); primary join key with filing_year. |
| state_abbr | string | USPS state abbreviation. |
| state_name | string | Provider-verbatim geography name from the SOI gross file. |
| country_code | string | ISO alpha-3 country code (USA for every row). (unit: ISO 3166-1 alpha-3) |
| method_series | string | SOI matching-methodology series: 'soi-2011' for filing years 2017-2021, 'soi-2022' for 2022-2023. The 2022-2023 matching update added ~5% more matched returns, so the two series are not directly comparable. |
| inflow_returns | integer | Number of matched returns that moved INTO the state from another US state between the two filing years (SOI origin code 97, 'Total Migration-US'). (unit: returns) |
| inflow_individuals | integer | Number of personal exemptions on in-migrant returns, approximating the number of individuals. (unit: individuals) |
| inflow_agi_k | float | Aggregate adjusted gross income of in-migrant returns, from the year-2 return. (unit: USD thousands) |
| inflow_foreign_returns | integer | Matched returns that moved into the state from a foreign address (SOI origin code 98). (unit: returns) |
| inflow_foreign_individuals | integer | Personal exemptions on foreign in-migrant returns. (unit: individuals) |
| inflow_foreign_agi_k | float | Aggregate AGI of foreign in-migrant returns. (unit: USD thousands) |
| outflow_returns | integer | Number of matched returns that moved OUT of the state to another US state (SOI destination code 97). (unit: returns) |
| outflow_individuals | integer | Personal exemptions on out-migrant returns. (unit: individuals) |
| outflow_agi_k | float | Aggregate AGI of out-migrant returns. (unit: USD thousands) |
| outflow_foreign_returns | integer | Matched returns that moved out of the state to a foreign address (SOI destination code 98). (unit: returns) |
| outflow_foreign_individuals | integer | Personal exemptions on foreign out-migrant returns. (unit: individuals) |
| outflow_foreign_agi_k | float | Aggregate AGI of foreign out-migrant returns. (unit: USD thousands) |
| net_returns | integer | US interstate net migration in returns: inflow_returns minus outflow_returns. Positive = net gainer. (unit: returns) |
| net_individuals | integer | US interstate net migration in individuals. (unit: individuals) |
| net_agi_k | float | US interstate net migration in aggregate AGI. (unit: USD thousands) |
| net_returns_total | integer | Net migration in returns including foreign flows. (unit: returns) |
| nonmigrant_returns | integer | Matched returns that did not change state between the two filing years (SOI gross file, all ages); denominator of the net migration rate. (unit: returns) |
| net_migration_rate_per_1000 | float | SOI's published net migration rate: net_returns / (nonmigrant_returns + outflow_returns) * 1000. Headline comparability metric across states of different sizes. (unit: per 1,000 returns) |
| net_rate_rank | integer | Per-filing-year rank of net_migration_rate_per_1000 across the 51 geographies (1 = strongest net inflow; deterministic: rate desc, state FIPS asc). (unit: rank) |
| net_returns_rank | integer | Per-filing-year rank of net_returns (1 = largest net inflow in returns; deterministic). (unit: rank) |
| avg_agi_inmigrant_usd | float | Average AGI per in-migrant return (inflow_agi_k * 1000 / inflow_returns). (unit: USD) |
| avg_agi_outmigrant_usd | float | Average AGI per out-migrant return. (unit: USD) |
| wealth_ratio | float | avg_agi_inmigrant_usd / avg_agi_outmigrant_usd. Above 1 means in-migrants are richer on average than out-migrants (income 'brain gain'). (unit: ratio) |
| migration_churn_pct | float | (inflow_returns + outflow_returns) / (nonmigrant_returns + outflow_returns) * 100: share of the filing population that moved interstate. (unit: percent) |
| inflow_top3_origins | string | Three largest state-to-state inflow corridors as 'ABBR:returns' pairs (e.g. 'NY:43187, GA:23475, CA:20241'); foreign and suppressed (<10 returns) flows excluded. |
| outflow_top3_dests | string | Three largest state-to-state outflow corridors as 'ABBR:returns' pairs. |
| inflow_yoy_pct | float | Year-over-year percent change of inflow_returns, computed only within a methodology series; null across the 2021->2022 series break and for 2017. (unit: percent) |
| outflow_yoy_pct | float | Year-over-year percent change of outflow_returns, within-series only. (unit: percent) |
| net_returns_yoy_delta | float | Year-over-year absolute change of net_returns (levels, since net crosses zero), within-series only. (unit: returns) |
| provenance_url | string | The IRS SOI migration-data page covering this data year (per-row provenance). |
| row_hash | string | Deterministic 16-hex row hash of state_fips + filing_year (idempotency). |
First 10 sample rows — a preview, not the complete dataset.
| filing_year | data_year | state_fips | state_abbr | state_name | country_code | method_series | inflow_returns | inflow_individuals | inflow_agi_k | inflow_foreign_returns | inflow_foreign_individuals | inflow_foreign_agi_k | outflow_returns | outflow_individuals | outflow_agi_k | outflow_foreign_returns | outflow_foreign_individuals | outflow_foreign_agi_k | net_returns | net_individuals | net_agi_k | net_returns_total | nonmigrant_returns | net_migration_rate_per_1000 | net_rate_rank | net_returns_rank | avg_agi_inmigrant_usd | avg_agi_outmigrant_usd | wealth_ratio | migration_churn_pct | inflow_top3_origins | outflow_top3_dests | inflow_yoy_pct | outflow_yoy_pct | net_returns_yoy_delta | provenance_url | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2,017 | 2016-2017 | 01 | AL | Alabama | USA | soi-2011 | 58,705 | 123,967 | 3,512,308 | 620 | 1,546 | 35,476 | 54,873 | 111,668 | 3,010,171 | 795 | 1,981 | 47,892 | 3,832 | 12,299 | 502,137 | 3,657 | 1,538,912 | 2.404 | 18 | 18 | 59,829.793 | 54,857.052 | 1.091 | 7.126 | GA:9421, FL:7949, TN:5030 | GA:9625, FL:8189, TN:5283 | — | — | — | https://www.irs.gov/statistics/soi-tax-stats-migration-data | dfb25417669bb129 |
| 2,017 | 2016-2017 | 02 | AK | Alaska | USA | soi-2011 | 17,479 | 35,838 | 912,392 | 399 | 952 | 19,374 | 23,997 | 51,120 | 1,509,996 | 557 | 1,244 | 28,670 | -6,518 | -15,282 | -597,604 | -6,676 | 252,515 | -23.572 | 51 | 38 | 52,199.325 | 62,924.366 | 0.83 | 15 | CA:1731, WA:1648, TX:1549 | WA:2973, TX:1825, CA:1819 | — | — | — | https://www.irs.gov/statistics/soi-tax-stats-migration-data | 08f205f7d39505bb |
| 2,017 | 2016-2017 | 04 | AZ | Arizona | USA | soi-2011 | 146,729 | 282,095 | 10,238,659 | 1,117 | 2,547 | 56,178 | 107,568 | 206,556 | 6,465,785 | 1,243 | 2,658 | 71,265 | 39,161 | 75,539 | 3,772,874 | 39,035 | 2,215,458 | 16.858 | 4 | 3 | 69,779.382 | 60,108.815 | 1.161 | 10.947 | CA:31675, TX:9974, CO:8216 | CA:18616, TX:9481, CO:6267 | — | — | — | https://www.irs.gov/statistics/soi-tax-stats-migration-data | 3d7fef0d27b33e8d |
| 2,017 | 2016-2017 | 05 | AR | Arkansas | USA | soi-2011 | 39,439 | 81,900 | 2,128,746 | 275 | 620 | 12,207 | 37,506 | 76,747 | 2,051,564 | 327 | 663 | 13,863 | 1,933 | 5,153 | 77,182 | 1,881 | 909,790 | 2.041 | 19 | 20 | 53,975.659 | 54,699.621 | 0.987 | 8.123 | TX:7701, MO:3514, OK:3501 | TX:7385, MO:3490, OK:3152 | — | — | — | https://www.irs.gov/statistics/soi-tax-stats-migration-data | 4137c9c05e501b4d |
| 2,017 | 2016-2017 | 06 | CA | California | USA | soi-2011 | 322,066 | 560,173 | 24,199,153 | 5,381 | 11,031 | 251,571 | 387,080 | 738,242 | 31,074,294 | 5,706 | 12,350 | 303,767 | -65,014 | -178,069 | -6,875,141 | -65,339 | 13,617,225 | -4.642 | 37 | 49 | 75,137.248 | 80,278.738 | 0.936 | 5.064 | TX:29370, NY:26718, WA:19598 | TX:41707, WA:32187, AZ:31675 | — | — | — | https://www.irs.gov/statistics/soi-tax-stats-migration-data | b6644715086ab970 |
| 2,017 | 2016-2017 | 08 | CO | Colorado | USA | soi-2011 | 147,031 | 264,701 | 10,193,373 | 1,439 | 3,342 | 75,326 | 121,458 | 231,954 | 7,750,002 | 1,467 | 3,660 | 86,767 | 25,573 | 32,747 | 2,443,371 | 25,545 | 1,856,952 | 12.926 | 7 | 7 | 69,328.053 | 63,808.082 | 1.087 | 13.571 | CA:17094, TX:16116, FL:9643 | TX:12922, CA:11966, FL:8263 | — | — | — | https://www.irs.gov/statistics/soi-tax-stats-migration-data | 1769bfb81092412b |
| 2,017 | 2016-2017 | 09 | CT | Connecticut | USA | soi-2011 | 50,107 | 89,877 | 4,654,132 | 271 | 604 | 9,137 | 62,664 | 109,623 | 6,770,363 | 370 | 714 | 16,313 | -12,557 | -19,746 | -2,116,231 | -12,656 | 1,349,614 | -8.891 | 44 | 43 | 92,883.869 | 108,042.305 | 0.86 | 7.985 | NY:15036, MA:6195, FL:4563 | FL:9855, NY:9690, MA:6530 | — | — | — | https://www.irs.gov/statistics/soi-tax-stats-migration-data | d42ad96053492f5b |
| 2,017 | 2016-2017 | 10 | DE | Delaware | USA | soi-2011 | 23,324 | 42,918 | 1,665,977 | 148 | 352 | 7,210 | 19,462 | 35,740 | 1,318,895 | 191 | 397 | 8,525 | 3,862 | 7,178 | 347,082 | 3,819 | 344,440 | 10.613 | 11 | 17 | 71,427.585 | 67,767.701 | 1.054 | 11.758 | PA:5992, MD:4865, NJ:2834 | PA:4222, MD:3258, FL:1830 | — | — | — | https://www.irs.gov/statistics/soi-tax-stats-migration-data | f6eeb1ad1d147144 |
| 2,017 | 2016-2017 | 11 | DC | District of Columbia | USA | soi-2011 | 35,336 | 47,571 | 2,769,678 | 255 | 490 | 25,981 | 40,180 | 60,002 | 3,631,386 | 516 | 1,018 | 58,365 | -4,844 | -12,431 | -861,708 | -5,105 | 250,465 | -16.666 | 48 | 34 | 78,381.198 | 90,377.949 | 0.867 | 25.982 | MD:9495, VA:7766, NY:2536 | MD:12664, VA:7307, CA:3143 | — | — | — | https://www.irs.gov/statistics/soi-tax-stats-migration-data | 62f9920b841a8e18 |
| 2,017 | 2016-2017 | 12 | FL | Florida | USA | soi-2011 | 390,012 | 736,023 | 32,958,576 | 5,009 | 11,543 | 232,251 | 299,072 | 545,179 | 17,423,207 | 4,753 | 10,049 | 233,478 | 90,940 | 190,844 | 15,535,369 | 91,196 | 7,104,319 | 12.284 | 8 | 1 | 84,506.569 | 58,257.567 | 1.451 | 9.308 | NY:44629, GA:25503, TX:22565 | GA:28310, TX:22256, NY:20916 | — | — | — | https://www.irs.gov/statistics/soi-tax-stats-migration-data | 5bc7d31b541125f7 |
- Current
20260926T100507Z-36874559fda5 · sha256 36874559fda5…
357 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/us_state_migration_signals/us_state_migration_annual" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/us_state_migration_signals/us_state_migration_annual").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/us_state_migration_signals/us_state_migration_annual
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20260926T100507Z-36874559fda5 and its content hash, so readers get exactly the data you used.
IRS Statistics of Income. (2026). US interstate migration: net flows, rates and wealth signals, annual [Data set, snapshot 20260926T100507Z-36874559fda5, sha256 36874559fda5]. Datazimuts. Retrieved 2026-09-26, from https://datazimuts.com/en/datasets/us_state_migration_signals/us_state_migration_annual?snapshot=20260926T100507Z-36874559fda5
@misc{dz_us_state_migration_signals_us_state_migr_36874559,
title = {{US interstate migration: net flows, rates and wealth signals, annual}},
author = {{IRS Statistics of Income}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/us_state_migration_signals/us_state_migration_annual?snapshot=20260926T100507Z-36874559fda5}},
note = {Snapshot 20260926T100507Z-36874559fda5, sha256 36874559fda5b6127bfb1a4d149f7c58641a3fe52244f0da0b2636620a1b3d52; accessed 2026-09-26}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=us_state_migration_signals%2Fus_state_migration_annual&lang=en&theme=auto&snapshot=20260926T100507Z-36874559fda5&x=filing_year&y=filing_year&agg=avg" title="US interstate migration: net flows, rates and wealth signals, annual" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.