US county income-migration intelligence (IRS SOI, annual)
Annual US county income-migration panel, 2018-2019 onward: IRS Statistics of Income county-to-county migration files (keyless), reduced to verified per-county totals with fail-loud accounting identities. Net AGI flow (inflow minus outflow, $1,000s), mean arriving vs departing household income and the arrival premium, migration turnover, net income per resident return, a documented 0-100 income-migration heat score with tiers, and a methodology-break flag on the 2022-2023 enhanced-matching vintage. One row per county x tax-year pair (~14k rows, 5 vintages); suppressed micro-counties are dropped and counted, never imputed. Sibling dataset `us_county_migration_annual` covers the 2022-2023 vintage only; this panel spans five vintages (2018-2019 through 2022-2023) with additional intelligence: the heat score, tiers, turnover, and the methodology-break flag. Who joins this: online shops join county_fips + year to test whether net income migration leads local demand; subscription businesses use the tier and arrival premium as geo features for churn/expansion models; sales teams weight territories by the heat score.
Les titres et les descriptions proviennent des sources de données, en anglais.
- Lignes
- 13 631
- Colonnes
- 28
- Cadence de la source
- Annuelle
- Dernière actualisation
- 1 oct. 2026
- Thème
- demographics
| Colonne | Type | Description |
|---|---|---|
| year_pair | string | Tax-year pair of the migration flow, 'YYYY-YYYY' (filing year 2 minus filing year 1); vintage join key. (unit: year range) |
| filing_year | integer | Second tax year of the pair (the year the returns were filed); the vintage's reference year. (unit: year) |
| county_fips | string | 5-digit county FIPS code (2-digit state + 3-digit county); geographic join key. Primary key with year_pair. (unit: FIPS) |
| county_name | string | County name as published by SOI (clean pair-row name where available). (unit: string) |
| state_abbr | string | USPS state abbreviation of the county. (unit: string) |
| state_fips | string | 2-digit state FIPS code. (unit: FIPS) |
| country | string | Country name (shared normalization layer). (unit: string) |
| country_code | string | ISO 3166-1 alpha-3 country code (USA). (unit: string) |
| in_returns | integer | Tax returns filed by households that moved INTO the county that year (SOI 'Total Migration-US and Foreign' inflow, verified by accounting identities). (unit: returns) |
| in_exemptions | integer | Personal exemptions claimed on in-migrant returns (~individuals who moved in). (unit: exemptions) |
| in_agi_k | integer | Total adjusted gross income of in-migrant households, in thousands of USD. (unit: USD 1,000s) |
| out_returns | integer | Tax returns filed by households that moved OUT of the county that year (verified outflow total). (unit: returns) |
| out_exemptions | integer | Personal exemptions claimed on out-migrant returns (~individuals who moved out). (unit: exemptions) |
| out_agi_k | integer | Total adjusted gross income of out-migrant households, in thousands of USD. (unit: USD 1,000s) |
| net_returns | integer | in_returns minus out_returns; positive = net household inflow. (unit: returns) |
| net_exemptions | integer | in_exemptions minus out_exemptions; positive = net individual inflow. (unit: exemptions) |
| net_agi_k | integer | Net AGI flow attributable to migration (in_agi_k minus out_agi_k), in thousands of USD; positive = the county gained purchasing power through migration. (unit: USD 1,000s) |
| avg_agi_per_return_in_usd | float | Mean AGI of arriving households = 1000 * in_agi_k / in_returns. Null when in_returns is 0. (unit: USD) |
| avg_agi_per_return_out_usd | float | Mean AGI of departing households = 1000 * out_agi_k / out_returns. Null when out_returns is 0. (unit: USD) |
| agi_arrival_premium_usd | float | avg_agi_per_return_in_usd minus avg_agi_per_return_out_usd; positive = arrivals are richer than leavers ('brain gain'). Null when either side is null. (unit: USD) |
| nonmigrant_returns | integer | Tax returns filed by non-migrating households in the county (the resident tax base; turnover denominator). (unit: returns) |
| migration_turnover | float | (in_returns + out_returns) / (nonmigrant_returns + in_returns + out_returns): share of the county's tax-return population that moved in or out that year. (unit: fraction 0-1) |
| net_agi_per_resident_return_usd | float | 1000 * net_agi_k / nonmigrant_returns: the migration income flow scaled by the resident tax base. (unit: USD) |
| income_migration_heat_score | float | 0-100 = 100 * Phi(z), Phi = standard normal CDF, z the robust within-vintage z-score of net_agi_per_resident_return_usd (median/MAD). 50 = neutral, ~84 = one robust deviation of income inflow. (unit: score 0-100) |
| migration_income_tier | string | Heat-score bands: strong_gain [80,100], gain [60,80), neutral [40,60), loss [20,40), strong_loss [0,20). (unit: string) |
| methodology_break | integer | 1 for the 2022-2023 vintage (SOI's enhanced return-matching process — a new series, not directly comparable to earlier vintages), else 0. (unit: 0/1) |
| source_url | string | The two SOI CSV URLs behind the vintage's rows. (unit: URL) |
| row_hash | string | Deterministic 16-hex sha256 of year_pair + county_fips + in/out returns + net_agi_k (idempotency key). (unit: string) |
10 premières lignes d’exemple — un aperçu, pas le jeu de données complet.
| year_pair | filing_year | county_fips | county_name | state_abbr | state_fips | country | country_code | in_returns | in_exemptions | in_agi_k | out_returns | out_exemptions | out_agi_k | net_returns | net_exemptions | net_agi_k | avg_agi_per_return_in_usd | avg_agi_per_return_out_usd | agi_arrival_premium_usd | nonmigrant_returns | migration_turnover | net_agi_per_resident_return_usd | income_migration_heat_score | migration_income_tier | methodology_break | source_url | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2018-2019 | 2 019 | 01001 | Autauga County | AL | 01 | United States | USA | 1 917 | 4 307 | 104 525 | 1 758 | 3 960 | 95 832 | 159 | 347 | 8 693 | 54 525,3 | 54 511,945 | 13,355 | 18 240 | 0,168 | 476,59 | 72,916 | gain | 0 | https://www.irs.gov/pub/irs-soi/countyinflow1819.csv + https://www.irs.gov/pub/irs-soi/countyoutflow1819.csv | 10b4ef4325031b0c |
| 2018-2019 | 2 019 | 01101 | Montgomery County | AL | 01 | United States | USA | 4 619 | 9 395 | 225 793 | 5 361 | 10 931 | 314 298 | -742 | -1 536 | -88 505 | 48 883,525 | 58 626,749 | -9 743,224 | 74 199 | 0,119 | -1 192,806 | 7,037 | strong_loss | 0 | https://www.irs.gov/pub/irs-soi/countyinflow1819.csv + https://www.irs.gov/pub/irs-soi/countyoutflow1819.csv | dfe539dcfe2907f6 |
| 2018-2019 | 2 019 | 01103 | Morgan County | AL | 01 | United States | USA | 2 377 | 4 856 | 117 540 | 2 305 | 4 579 | 107 664 | 72 | 277 | 9 876 | 49 448,885 | 46 708,894 | 2 739,991 | 40 630 | 0,103 | 243,072 | 62,508 | gain | 0 | https://www.irs.gov/pub/irs-soi/countyinflow1819.csv + https://www.irs.gov/pub/irs-soi/countyoutflow1819.csv | 7f402ed7e98e8470 |
| 2018-2019 | 2 019 | 01107 | Pickens County | AL | 01 | United States | USA | 243 | 486 | 8 984 | 299 | 626 | 11 540 | -56 | -140 | -2 556 | 36 971,193 | 38 595,318 | -1 624,124 | 5 806 | 0,085 | -440,234 | 29,672 | loss | 0 | https://www.irs.gov/pub/irs-soi/countyinflow1819.csv + https://www.irs.gov/pub/irs-soi/countyoutflow1819.csv | 9eff2a7cce60a420 |
| 2018-2019 | 2 019 | 01109 | Pike County | AL | 01 | United States | USA | 577 | 1 091 | 21 720 | 713 | 1 384 | 28 167 | -136 | -293 | -6 447 | 37 642,981 | 39 504,909 | -1 861,928 | 9 563 | 0,119 | -674,161 | 20,446 | loss | 0 | https://www.irs.gov/pub/irs-soi/countyinflow1819.csv + https://www.irs.gov/pub/irs-soi/countyoutflow1819.csv | db87993fefe3a3fa |
| 2018-2019 | 2 019 | 01011 | Bullock County | AL | 01 | United States | USA | 134 | 293 | 4 292 | 173 | 355 | 4 923 | -39 | -62 | -631 | 32 029,851 | 28 456,647 | 3 573,203 | 2 964 | 0,094 | -212,888 | 40,123 | neutral | 0 | https://www.irs.gov/pub/irs-soi/countyinflow1819.csv + https://www.irs.gov/pub/irs-soi/countyoutflow1819.csv | a385b3bd9ed15feb |
| 2018-2019 | 2 019 | 01111 | Randolph County | AL | 01 | United States | USA | 401 | 834 | 19 311 | 395 | 779 | 19 959 | 6 | 55 | -648 | 48 157,107 | 50 529,114 | -2 372,007 | 7 068 | 0,101 | -91,681 | 46,061 | neutral | 0 | https://www.irs.gov/pub/irs-soi/countyinflow1819.csv + https://www.irs.gov/pub/irs-soi/countyoutflow1819.csv | 1271722eb5588b28 |
| 2018-2019 | 2 019 | 01113 | Russell County | AL | 01 | United States | USA | 2 423 | 5 398 | 93 416 | 2 336 | 5 249 | 104 668 | 87 | 149 | -11 252 | 38 553,859 | 44 806,507 | -6 252,648 | 16 778 | 0,221 | -670,64 | 20,571 | loss | 0 | https://www.irs.gov/pub/irs-soi/countyinflow1819.csv + https://www.irs.gov/pub/irs-soi/countyoutflow1819.csv | 048109f2997690e9 |
| 2018-2019 | 2 019 | 01115 | St. Clair County | AL | 01 | United States | USA | 2 364 | 4 752 | 148 717 | 1 983 | 3 955 | 113 744 | 381 | 797 | 34 973 | 62 909,052 | 57 359,556 | 5 549,496 | 28 672 | 0,132 | 1 219,761 | 93,794 | strong_gain | 0 | https://www.irs.gov/pub/irs-soi/countyinflow1819.csv + https://www.irs.gov/pub/irs-soi/countyoutflow1819.csv | 525974bf077da4b1 |
| 2018-2019 | 2 019 | 01117 | Shelby County | AL | 01 | United States | USA | 6 532 | 12 688 | 451 012 | 5 811 | 10 896 | 390 813 | 721 | 1 792 | 60 199 | 69 046,54 | 67 254,001 | 1 792,539 | 72 391 | 0,146 | 831,581 | 85,389 | strong_gain | 0 | https://www.irs.gov/pub/irs-soi/countyinflow1819.csv + https://www.irs.gov/pub/irs-soi/countyoutflow1819.csv | 85fb8fade8210811 |
Profilé le 1 oct. 2026 à partir de l’instantané 20261001T015444Z-66ec7dc139c4
Mesuré- Complétude
- 100 %
- Lignes
- 13 631
- Colonnes
- 28
- Colonnes incomplètes
- 0
| Colonne | Manquant | Distinctes | Plage | Distribution |
|---|---|---|---|---|
| year_pairvarchar | 0 % | 5 | — |
|
| filing_yearbigint | 0 % | 5 | 2 019 → 2 023médiane 2 021 | |
| county_fipsvarchar | 0 % | 2 715 | — |
|
| county_namevarchar | 0 % | 1 496 | — |
|
| state_abbrvarchar | 0 % | 55 | — |
|
| state_fipsvarchar | 0 % | 49 | — |
|
| countryvarchar | 0 % | 1 | — |
|
| country_codevarchar | 0 % | 1 | — |
|
| in_returnsbigint | 0 % | 5 338 | 43 → 124 328médiane 816 | 273 hors du 1er–99e centile |
| in_exemptionsbigint | 0 % | 5 875 | 56 → 182 748médiane 1 534 | 271 hors du 1er–99e centile |
| in_agi_kbigint | 0 % | 13 966 | 1 386 → 14 786 315médiane 44 127 | 274 hors du 1er–99e centile |
| out_returnsbigint | 0 % | 4 501 | 43 → 188 686médiane 775 | 273 hors du 1er–99e centile |
| out_exemptionsbigint | 0 % | 5 807 | 66 → 320 983médiane 1 415 | 268 hors du 1er–99e centile |
| out_agi_kbigint | 0 % | 11 474 | 1 466 → 24 550 778médiane 38 302 | 274 hors du 1er–99e centile |
| net_returnsbigint | 0 % | 2 463 | -70 554 → 21 934médiane 18 | 274 hors du 1er–99e centile |
| net_exemptionsbigint | 0 % | 3 654 | -145 543 → 40 250médiane 65 | 274 hors du 1er–99e centile |
| net_agi_kbigint | 0 % | 12 746 | -16 473 227 → 7 035 958médiane 1 675 | 274 hors du 1er–99e centile |
| avg_agi_per_return_in_usddouble | 0 % | 13 684 | 13 956 → 771 669médiane 52 599 | 274 hors du 1er–99e centile |
| avg_agi_per_return_out_usddouble | 0 % | 12 861 | 14 837 → 341 681médiane 50 156 | 274 hors du 1er–99e centile |
| agi_arrival_premium_usddouble | 0 % | 11 308 | -239 501 → 560 820médiane 2 057 | 274 hors du 1er–99e centile |
| nonmigrant_returnsbigint | 0 % | 8 412 | 346 → 3 944 880médiane 11 507 | 274 hors du 1er–99e centile |
| migration_turnoverdouble | 0 % | 14 253 | 0,0486 → 0,5353médiane 0,1229 | 274 hors du 1er–99e centile |
| net_agi_per_resident_return_usddouble | 0 % | 16 872 | -25 985 → 67 100médiane 218,9 | 274 hors du 1er–99e centile |
| income_migration_heat_scoredouble | 0 % | 12 318 | 0 → 100médiane 50 | 137 hors du 1er–99e centile |
| migration_income_tiervarchar | 0 % | 5 | — |
|
| methodology_breakbigint | 0 % | 2 | 0 → 1médiane 0 | |
| source_urlvarchar | 0 % | 5 | — |
|
| row_hashvarchar | 0 % | 12 950 | — |
|
- Actuelle
20261001T015444Z-66ec7dc139c4 · sha256 66ec7dc139c4…
13 631 lignes · premier instantané
Dirigez n’importe quel LLM vers le point d’accès des métadonnées — la documentation ci-dessus est aussi lisible par machine (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/irs_soi_county_income_migration_intel/us_county_income_migration_annual" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/irs_soi_county_income_migration_intel/us_county_income_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)Point d’accès API : https://datazimuts.com/v1/datasets/irs_soi_county_income_migration_intel/us_county_income_migration_annual
Astuce : récupérez /llms.txt pour le catalogue complet lisible par machine.
D’où viennent ces données et ce qui en a été fait. Le travail des autres apparaît sous forme de décomptes ; seuls les projets partagés sont nommés.
Citer cet instantané
Épinglé à l’instantané 20261001T015444Z-66ec7dc139c4 et à son empreinte, pour que vos lecteurs obtiennent exactement les données utilisées.
US county income migration (IRS Statistics of Income, keyless). (2026). US county income-migration intelligence (IRS SOI, annual) [Data set, snapshot 20261001T015444Z-66ec7dc139c4, sha256 66ec7dc139c4]. Datazimuts. Retrieved 2026-10-01, from https://datazimuts.com/fr/datasets/irs_soi_county_income_migration_intel/us_county_income_migration_annual?snapshot=20261001T015444Z-66ec7dc139c4
@misc{dz_irs_soi_county_income_migration_intel_us_66ec7dc1,
title = {{US county income-migration intelligence (IRS SOI, annual)}},
author = {{US county income migration (IRS Statistics of Income, keyless)}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/fr/datasets/irs_soi_county_income_migration_intel/us_county_income_migration_annual?snapshot=20261001T015444Z-66ec7dc139c4}},
note = {Snapshot 20261001T015444Z-66ec7dc139c4, sha256 66ec7dc139c48837d6c457c2bec1f677e22c0045d7acbfd0dbe92ba220cb134e; accessed 2026-10-01}
}Intégrer un tableau ou un graphique
Collez ce code dans n’importe quelle page. L’intégration est épinglée au même instantané, suit le thème clair ou sombre du lecteur et affiche toujours la source, la licence et un lien de retour.
<iframe src="https://datazimuts.com/embed/chart?dataset=irs_soi_county_income_migration_intel%2Fus_county_income_migration_annual&lang=fr&theme=auto&snapshot=20261001T015444Z-66ec7dc139c4&x=year_pair&y=filing_year&agg=avg" title="US county income-migration intelligence (IRS SOI, annual)" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Posez une question sur ce jeu de données. Les réponses viennent uniquement de sa fiche, de son profil mesuré et de son historique, et citent les faits utilisés.