Federal Data Hub › IRS Migration Flows · JSON
County-to-county migration · IRS SOI · filing years 2022-2023
Net migration: +482 tax returns · +285 people · $-27,428,000 AGI
| County | Returns | AGI |
|---|---|---|
| Clay County, MN | 873 | $44,733,000 |
| Grand Forks County, ND | 308 | $16,327,000 |
| Burleigh County, ND | 214 | $12,064,000 |
| Otter Tail County, MN | 191 | $9,070,000 |
| Hennepin County, MN | 162 | $11,180,000 |
| Becker County, MN | 140 | $11,136,000 |
| Richland County, ND | 132 | $7,713,000 |
| Ward County, ND | 108 | $6,275,000 |
| Barnes County, ND | 89 | $4,952,000 |
| Maricopa County, AZ | 82 | $6,968,000 |
| County | Returns | AGI |
|---|---|---|
| Clay County, MN | 890 | $45,220,000 |
| Hennepin County, MN | 321 | $19,187,000 |
| Grand Forks County, ND | 202 | $11,680,000 |
| Burleigh County, ND | 141 | $9,421,000 |
| Maricopa County, AZ | 138 | $13,734,000 |
| Otter Tail County, MN | 133 | $12,345,000 |
| Becker County, MN | 127 | $9,401,000 |
| Richland County, ND | 111 | $8,902,000 |
| Ramsey County, MN | 94 | $4,390,000 |
| Dakota County, MN | 60 | $3,356,000 |
IRS migration data tracks where tax filers lived in consecutive years. A "return" is roughly a household; "AGI" is the adjusted gross income that moved with them. Net migration = inflow − outflow. Small county-pair flows are suppressed by the IRS for privacy and shown blank.
Source: IRS SOI Migration Data. License: CC0 1.0.