Federal Data Hub › IRS Migration Flows · JSON
County-to-county migration · IRS SOI · filing years 2022-2023
Net migration: -268 tax returns · -1,671 people · $-121,109,000 AGI
| County | Returns | AGI |
|---|---|---|
| Ottawa County, MI | 2,465 | $138,943,000 |
| Allegan County, MI | 570 | $35,703,000 |
| Oakland County, MI | 505 | $38,068,000 |
| Muskegon County, MI | 505 | $20,526,000 |
| Montcalm County, MI | 492 | $22,955,000 |
| Kalamazoo County, MI | 473 | $29,621,000 |
| Ionia County, MI | 375 | $21,895,000 |
| Ingham County, MI | 372 | $19,598,000 |
| Barry County, MI | 358 | $21,862,000 |
| Cook County, IL | 331 | $36,359,000 |
| County | Returns | AGI |
|---|---|---|
| Ottawa County, MI | 2,811 | $197,676,000 |
| Allegan County, MI | 675 | $53,558,000 |
| Montcalm County, MI | 634 | $36,200,000 |
| Muskegon County, MI | 569 | $29,720,000 |
| Barry County, MI | 516 | $40,876,000 |
| Ionia County, MI | 497 | $26,690,000 |
| Oakland County, MI | 415 | $28,619,000 |
| Newaygo County, MI | 410 | $22,049,000 |
| Cook County, IL | 390 | $34,486,000 |
| Kalamazoo County, MI | 365 | $19,285,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.