Federal Data Hub › IRS Migration Flows · JSON
County-to-county migration · IRS SOI · filing years 2022-2023
Net migration: +29 tax returns · +170 people · $-17,683,000 AGI
| County | Returns | AGI |
|---|---|---|
| Lucas County, OH | 1,553 | $93,515,000 |
| Hancock County, OH | 231 | $12,248,000 |
| Ottawa County, OH | 138 | $8,400,000 |
| Seneca County, OH | 122 | $4,891,000 |
| Franklin County, OH | 116 | $5,994,000 |
| Sandusky County, OH | 114 | $6,000,000 |
| Cuyahoga County, OH | 84 | $4,739,000 |
| Henry County, OH | 82 | $2,925,000 |
| Monroe County, MI | 76 | $5,921,000 |
| Fulton County, OH | 57 | $3,088,000 |
| County | Returns | AGI |
|---|---|---|
| Lucas County, OH | 1,367 | $77,750,000 |
| Hancock County, OH | 237 | $10,573,000 |
| Franklin County, OH | 147 | $6,559,000 |
| Sandusky County, OH | 136 | $6,688,000 |
| Ottawa County, OH | 136 | $10,397,000 |
| Seneca County, OH | 113 | $4,456,000 |
| Cuyahoga County, OH | 100 | $4,335,000 |
| Henry County, OH | 77 | $4,868,000 |
| Fulton County, OH | 63 | $3,495,000 |
| Monroe County, MI | 61 | $3,822,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.