By the numbers
In the flow of people moving between Minnesota and Wisconsin between 2021 and 2022, Wisconsin gained a net total of 2,083 individual new residents, data from the IRS show.
That resulted in a shift of adjusted gross income now earned in Wisconsin rather than Minnesota, a shift that netted $189 million in Wisconsin’s favor.
The figures came from the IRS’s U.S. population migration data, which tallies how many taxpayers moved from one place to another from one year to the next. The most recent numbers look at people who moved between their 2021 and 2022 tax returns, separately counting both individuals and “returns,” which can include more than one person because of couples filing jointly, or taxpayers’ dependents.
Anecdotally, the trend has continued in recent years, according to a report by the Badger Institute. Individuals say that tax rates and other harmful policies are the motivation to find a better state.
The IRS data are available at the county-to-county level. This allows for a detailed look at which counties received the most migrants.
The Wisconsin counties that gained, on net, the most incoming Minnesotans include St. Croix, Polk, Pierce and Burnett. Their net gain was about 1,785 individuals over the period.
That corresponded to a net gain of over $114 million in adjusted gross income for the four counties.
Several Wisconsin counties were net losers of population to Minnesota, however. La Crosse, Dane and Milwaukee counties lost a net of 152, 111, and 105 people respectively, representing an outflow of about $15 million in net income.
Some counties lost population to Minnesota but gained income, representing an exchange of lower-earning residents for higher-earning newcomers. Brown, Buffalo, Marathon and Trempealeau counties lost more residents than they gained but still saw a net increase in adjusted gross income.
When looking at the movements of people from the Minneapolis-St. Paul metropolitan area counties to specific Wisconsin counties just across the border, the broader pattern holds: On average, there is a flow of people and income out of Minnesota into Wisconsin.
Shifts to Wisconsin of…
Minnesota county | Returns | Individuals | Adjusted gross income |
Anoka County | 71 | 116 | $6,022,000 |
Chisago County | 30 | 36 | $1,869,000 |
Dakota County | 166 | 351 | $24,095,000 |
Hennepin County | -13 | 91 | -$14,746,000 |
Ramsey County | 201 | 479 | $31,208,000 |
Washington County | 383 | 783 | $47,908,000 |
The negative values for Hennepin County show flows from Wisconsin counties into the county that contains Minneapolis, Bloomington and other inner suburbs.
While more total people left that county for Wisconsin than entered, 13 more Wisconsin households moved into Hennepin County than left, and brought with them $14.7 million more in income.
The underlying numbers
Wisconsin County | Net Total Individuals | Net Total AGI |
St. Croix County | 972 | $68,293,000 |
Polk County | 360 | $23,717,000 |
Pierce County | 265 | $12,368,000 |
Burnett County | 188 | $10,424,000 |
Douglas County | 99 | $9,667,000 |
Barron County | 78 | $5,814,000 |
Eau Claire County | 42 | $6,087,000 |
Bayfield County | 35 | $1,123,000 |
Chippewa County | 20 | $741,000 |
Sawyer County | 10 | $727,000 |
Outagamie County | 10 | -$690,000 |
Dunn County | 10 | * |
Kenosha County | 6 | -$277,000 |
Buffalo County | -4 | $499,000 |
Trempealeau County | -4 | $240,000 |
Ozaukee County | -10 | -$590,000 |
Washburn County | -27 | -$1,379,000 |
Winnebago County | -30 | -$1,018,000 |
Portage County | -32 | -$1,802,000 |
Ashland County | -35 | -$797,000 |
Wood County | -35 | -$1,838,000 |
Racine County | -42 | -$2,066,000 |
Marathon County | -50 | $1,361,000 |
Waukesha County | -62 | -$6,731,000 |
Brown County | -66 | $652,000 |
Milwaukee County | -105 | -$2,672,000 |
Dane County | -111 | -$5,611,000 |
La Crosse County | -152 | -$7,033,000 |
*The Dunn County AGI value appears to be a statistical anomaly in the data for which the Badger Institute had not received an explanation from the IRS by the time this article posted.
Submit a comment
"*" indicates required fields