US state migration components (annual, Census estimates)
Annual US state migration intelligence from the keyless U.S. Census Bureau Vintage 2025 population estimates components-of-change file: one row per (state, year) for the 50 states + District of Columbia over the five full July-to-June estimates periods 2021-2025, plus five national baseline rows. Each row carries population, population change, births, deaths, natural change, domestic and international net migration (all verbatim), the Census-published per-1,000 migration rates, net migration's share of population growth, the dominant flow driver (international/domestic), and the state's net rate minus the national rate. Transformation: a documented 0-100 migration-momentum score (min-max per year of the winsorized (+/-30) net migration rate across the 51 states; higher = strongest per-capita inflow), per-year deterministic ranks, and flow-regime labels (hotspot = top decile, coldspot = bottom decile, inflow/outflow). Method: exact component identities are gated before ingest (births - deaths == natural change; domestic + international == net migration); the 2020 stub period (April-July 2020) and Puerto Rico are excluded by design. Caveats: estimates are modeled annual components, not observed mover counts; the score is a relative cross-state demand gauge, not a migration forecast. U.S. federal public domain (commercial reuse allowed with attribution to the U.S. Census Bureau).
- Source
- IRS Statistics of Income
- Rows
- 260
- Columns
- 26
- Source cadence
- Yearly
- Last refreshed
- Sep 29, 2026
- Theme
- demographics
| Column | Type | Description |
|---|---|---|
| row_kind | string | 'state' for the 50 states + District of Columbia; 'national' for the U.S. baseline rows (score, rank, and regime are null on national rows — they are not in the cross-state peer group). |
| state | string | Canonical state name ('District of Columbia'; 'United States' on national baseline rows). |
| state_code | string | USPS postal abbreviation for states and DC ('US' on the national baseline rows); the join key for state-grain panels. |
| country_code | string | ISO alpha-3 country code (USA for every row). (unit: ISO 3166-1 alpha-3) |
| year | integer | Estimates year: the July-1-to-June-30 period ending July 1 of this year (Census population-estimates convention). The 2020 stub period (April 1-July 1, 2020) is excluded. (unit: year) |
| population | integer | July 1 resident population estimate, verbatim from the Census file. (unit: persons) |
| pop_change | integer | Numeric change in resident population over the estimates year, verbatim from the Census file. (unit: persons) |
| births | integer | Births in the estimates year (July 1-June 30), verbatim. (unit: persons) |
| deaths | integer | Deaths in the estimates year (July 1-June 30), verbatim. (unit: persons) |
| natural_change | integer | births minus deaths, verbatim (gated: equals births - deaths exactly in the source). (unit: persons) |
| domestic_mig | integer | Net domestic migration (in-migrants minus out-migrants across state lines), verbatim. Nets to zero nationally by construction. (unit: persons) |
| intl_mig | integer | Net international migration, verbatim. (unit: persons) |
| net_mig | integer | Net total migration = domestic_mig + intl_mig, verbatim (gated: the identity holds exactly in the source). (unit: persons) |
| net_mig_rate_per_1k | float | Census-published net migration rate per 1,000 population (denominator: average of beginning- and end-of-period population), verbatim from the file. (unit: migrants per 1,000) |
| domestic_mig_rate_per_1k | float | Census-published net domestic migration rate per 1,000, verbatim. (unit: migrants per 1,000) |
| intl_mig_rate_per_1k | float | Census-published net international migration rate per 1,000, verbatim. (unit: migrants per 1,000) |
| mig_share_of_pop_growth | float | net_mig / pop_change: the share of that year's population growth funded by net migration (can exceed 1 or go negative when natural change and migration point opposite ways; null when pop_change is zero). (unit: fraction) |
| flow_driver | string | 'international' or 'domestic': the migration component with the larger absolute value that year; 'even' on an exact tie (in practice only the national row, where domestic nets to zero). |
| us_net_rate_per_1k | float | The national net migration rate per 1,000 for the same year, carried from the Census national row; the baseline for the vs-US column. (unit: migrants per 1,000) |
| net_rate_vs_us_pp | float | net_mig_rate_per_1k minus us_net_rate_per_1k (0.0 on the national row). Positive = the state attracted migrants faster than the nation. (unit: migrants per 1,000) |
| migration_momentum_score | float | Documented 0-100 composite: 100 * min-max(winsor(net_mig_rate_per_1k, +/-30)) taken over the 51 state rows of the same year. Higher = strongest per-capita net inflow that year. Null on national rows. (unit: 0-100 score) |
| momentum_rank_year | integer | Per-year rank of migration_momentum_score across the 51 states (1 = strongest inflow; rank method 'min'; null on national rows). (unit: rank) |
| flow_regime | string | Per-year decile labels on the net rate: 'hotspot' (top decile), 'inflow' (rate > 0), 'outflow' (rate < 0), 'coldspot' (bottom decile). Null on national rows. |
| as_of | string | Fetch date in UTC (snapshot vintage). (unit: ISO date) |
| source_url | string | The exact Census alldata CSV URL the row was read from (provenance). (unit: URL) |
| row_hash | string | Deterministic 16-hex row hash of state_code + year (idempotency). |
First 10 sample rows — a preview, not the complete dataset.
| row_kind | state | state_code | country_code | year | population | pop_change | births | deaths | natural_change | domestic_mig | intl_mig | net_mig | net_mig_rate_per_1k | domestic_mig_rate_per_1k | intl_mig_rate_per_1k | mig_share_of_pop_growth | flow_driver | us_net_rate_per_1k | net_rate_vs_us_pp | migration_momentum_score | momentum_rank_year | flow_regime | as_of | source_url | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| state | Alabama | AL | USA | 2,025 | 5,193,088 | 30,033 | 57,680 | 59,868 | -2,188 | 23,358 | 8,946 | 32,304 | 6.239 | 4.511 | 1.728 | 1.076 | domestic | 3.703 | 2.536 | 54.406 | 15 | inflow | 2026-09-29 | https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/state/totals/NST-EST2025-ALLDATA.csv | a2e00f73fccc95d0 |
| state | Alaska | AK | USA | 2,025 | 737,270 | 733 | 8,867 | 5,559 | 3,308 | -4,525 | 1,959 | -2,566 | -3.482 | -6.141 | 2.658 | -3.501 | domestic | 3.703 | -7.185 | 0 | 51 | coldspot | 2026-09-29 | https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/state/totals/NST-EST2025-ALLDATA.csv | 4a13ea268a280c59 |
| state | Arizona | AZ | USA | 2,025 | 7,623,818 | 67,394 | 78,926 | 71,277 | 7,649 | 31,107 | 28,219 | 59,326 | 7.816 | 4.098 | 3.718 | 0.88 | domestic | 3.703 | 4.114 | 63.236 | 8 | inflow | 2026-09-29 | https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/state/totals/NST-EST2025-ALLDATA.csv | 0213ded8e77fe421 |
| state | Arkansas | AR | USA | 2,025 | 3,114,791 | 18,711 | 35,414 | 36,638 | -1,224 | 14,475 | 5,470 | 19,945 | 6.423 | 4.661 | 1.761 | 1.066 | domestic | 3.703 | 2.72 | 55.436 | 12 | inflow | 2026-09-29 | https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/state/totals/NST-EST2025-ALLDATA.csv | cf75b77bb87cf2d9 |
| state | California | CA | USA | 2,025 | 39,355,309 | -9,465 | 398,632 | 288,917 | 109,715 | -229,077 | 109,278 | -119,799 | -3.044 | -5.82 | 2.776 | 12.657 | domestic | 3.703 | -6.746 | 2.454 | 50 | coldspot | 2026-09-29 | https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/state/totals/NST-EST2025-ALLDATA.csv | 378ad5b7aa984824 |
| state | Colorado | CO | USA | 2,025 | 6,012,561 | 24,059 | 65,380 | 44,772 | 20,608 | -12,100 | 15,356 | 3,256 | 0.543 | -2.016 | 2.559 | 0.135 | international | 3.703 | -3.16 | 22.526 | 42 | inflow | 2026-09-29 | https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/state/totals/NST-EST2025-ALLDATA.csv | 78cf598f8bd2ad93 |
| state | Connecticut | CT | USA | 2,025 | 3,688,496 | 14,047 | 34,700 | 32,417 | 2,283 | -5,945 | 17,534 | 11,589 | 3.148 | -1.615 | 4.763 | 0.825 | international | 3.703 | -0.555 | 37.108 | 29 | inflow | 2026-09-29 | https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/state/totals/NST-EST2025-ALLDATA.csv | 1a4c36ff041b487f |
| state | Delaware | DE | USA | 2,025 | 1,059,952 | 9,829 | 10,328 | 10,882 | -554 | 6,855 | 3,473 | 10,328 | 9.789 | 6.497 | 3.292 | 1.051 | domestic | 3.703 | 6.087 | 74.279 | 4 | hotspot | 2026-09-29 | https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/state/totals/NST-EST2025-ALLDATA.csv | 7bd3dddb0e23cc3e |
| state | District of Columbia | DC | USA | 2,025 | 693,645 | 2,335 | 7,336 | 4,820 | 2,516 | -4,128 | 3,915 | -213 | -0.308 | -5.961 | 5.654 | -0.091 | domestic | 3.703 | -4.01 | 17.768 | 47 | coldspot | 2026-09-29 | https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/state/totals/NST-EST2025-ALLDATA.csv | 0368e6233588d13a |
| state | Florida | FL | USA | 2,025 | 23,462,518 | 196,680 | 225,971 | 227,304 | -1,333 | 22,517 | 178,674 | 201,191 | 8.611 | 0.964 | 7.647 | 1.023 | international | 3.703 | 4.908 | 67.685 | 5 | hotspot | 2026-09-29 | https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/state/totals/NST-EST2025-ALLDATA.csv | 3de70fc0b5ae04c6 |
- Current
20260929T093205Z-72ac6761463d · sha256 72ac6761463d…
260 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/census_components_annual" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/us_state_migration_signals/census_components_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/census_components_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 20260929T093205Z-72ac6761463d and its content hash, so readers get exactly the data you used.
IRS Statistics of Income. (2026). US state migration components (annual, Census estimates) [Data set, snapshot 20260929T093205Z-72ac6761463d, sha256 72ac6761463d]. Datazimuts. Retrieved 2026-09-30, from https://datazimuts.com/en/datasets/us_state_migration_signals/census_components_annual?snapshot=20260929T093205Z-72ac6761463d
@misc{dz_us_state_migration_signals_census_compon_72ac6761,
title = {{US state migration components (annual, Census estimates)}},
author = {{IRS Statistics of Income}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/us_state_migration_signals/census_components_annual?snapshot=20260929T093205Z-72ac6761463d}},
note = {Snapshot 20260929T093205Z-72ac6761463d, sha256 72ac6761463d157651a8adbdfe495842a38af98b1feb9805abaf9461719d7fd2; accessed 2026-09-30}
}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%2Fcensus_components_annual&lang=en&theme=auto&snapshot=20260929T093205Z-72ac6761463d&x=year&y=year&agg=avg" title="US state migration components (annual, Census estimates)" 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.