Federal Data HubIRS Migration Flows · JSON

Madison County, IL

County-to-county migration · IRS SOI · filing years 2022-2023

Net migration: +152 tax returns · +393 people · $-7,025,000 AGI

Inflow
5,518 returns · 9,193 people · $312,499,000 AGI
Outflow
5,366 returns · 8,800 people · $319,524,000 AGI

Top origins (where new residents came from)

CountyReturnsAGI
St. Clair County, IL1,146$59,184,000
St. Louis County, MO555$30,927,000
Macoupin County, IL275$12,964,000
St. Louis city, MO273$15,231,000
Jersey County, IL203$9,265,000
St. Charles County, MO182$10,847,000
Clinton County, IL118$8,137,000
Jefferson County, MO94$4,574,000
Sangamon County, IL93$6,045,000
Bond County, IL86$3,800,000

Top destinations (where leavers went)

CountyReturnsAGI
St. Clair County, IL983$44,605,000
St. Louis County, MO563$34,971,000
St. Louis city, MO295$14,103,000
Macoupin County, IL293$14,624,000
St. Charles County, MO205$15,647,000
Jersey County, IL181$9,627,000
Clinton County, IL101$5,875,000
Bond County, IL87$4,887,000
Cook County, IL77$3,376,000
Jefferson County, MO73$4,253,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.