Federal Data HubIRS Migration Flows · JSON

Winona County, MN

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

Net migration: -62 tax returns · -101 people · $-8,149,000 AGI

Inflow
1,127 returns · 1,613 people · $56,105,000 AGI
Outflow
1,189 returns · 1,714 people · $64,254,000 AGI

Top origins (where new residents came from)

CountyReturnsAGI
Olmsted County, MN157$8,331,000
La Crosse County, WI84$4,123,000
Hennepin County, MN50$2,962,000
Buffalo County, WI46$2,178,000
Fillmore County, MN45$2,417,000
Houston County, MN39$2,744,000
Trempealeau County, WI37$1,470,000
Wabasha County, MN33$1,577,000
Dakota County, MN24$1,124,000
Ramsey County, MN20$1,456,000

Top destinations (where leavers went)

CountyReturnsAGI
Olmsted County, MN171$9,112,000
La Crosse County, WI101$4,743,000
Hennepin County, MN87$4,903,000
Houston County, MN46$3,135,000
Fillmore County, MN42$2,450,000
Ramsey County, MN39$1,941,000
Dakota County, MN38$1,751,000
Buffalo County, WI32$1,450,000
Trempealeau County, WI31$1,475,000
Wabasha County, MN29$1,618,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.