Iowa
State-to-state migration of people and income, 2022–2023 filing years
Between the 2022 and 2023 filing years, Iowa saw a net loss of 2,508 tax-filing households and a net loss of 1,538 individuals. On net, the area lost $271.1M in associated adjusted gross income (AGI, nominal dollars). The largest inflow came from Illinois; the largest outflow went to Illinois. These figures cover federal income tax filers only and do not indicate why people moved.
Net income (AGI)
-$271.1M
nominal dollars
Net households
-2,508
tax returns
Net people
-1,538
exemptions
-0.5 net people per 1,000 residents (population 3,207,004)
Income (AGI) in and out
Moved in$2.1B
Moved out$2.4B
Net -$271.1M (nominal)
Iowa counties
Net migration by county. Hover for figures; click a county to open it.
Net outNet in(AGI $)
Net income (AGI) that moved in minus out, in nominal dollars (not adjusted for inflation).Net tax returns (filing households) that moved in minus out.Net people per 1,000 residents, so larger and smaller areas compare fairly.
Top origin states
Top destination states
Net migration by year
Net 2012–2023: -$3.6B (-30,881 people)
20122023
| Year | Net AGI | Net people |
|---|---|---|
| 2012 | -$97.5M | -1,025 |
| 2013 | -$53.1M | +664 |
| 2014 | -$230.7M | -2,658 |
| 2015 | -$238.4M | -1,468 |
| 2016 | -$259.3M | -3,108 |
| 2017 | -$385.7M | -4,324 |
| 2018 | -$455.9M | -2,467 |
| 2019 | -$515.8M | -5,355 |
| 2020 | -$283.7M | -3,086 |
| 2021 | -$258.8M | -1,123 |
| 2022 | -$514.6M | -5,393 |
| 2023 | -$271.1M | -1,538 |
Counties in Iowa (99)
- Adair County
- Adams County
- Allamakee County
- Appanoose County
- Audubon County
- Benton County
- Black Hawk County
- Boone County
- Bremer County
- Buchanan County
- Buena Vista County
- Butler County
- Calhoun County
- Carroll County
- Cass County
- Cedar County
- Cerro Gordo County
- Cherokee County
- Chickasaw County
- Clarke County
- Clay County
- Clayton County
- Clinton County
- Crawford County
- Dallas County
- Davis County
- Decatur County
- Delaware County
- Des Moines County
- Dickinson County
- Dubuque County
- Emmet County
- Fayette County
- Floyd County
- Franklin County
- Fremont County
- Greene County
- Grundy County
- Guthrie County
- Hamilton County
- Hancock County
- Hardin County
- Harrison County
- Henry County
- Howard County
- Humboldt County
- Ida County
- Iowa County
- Jackson County
- Jasper County
- Jefferson County
- Johnson County
- Jones County
- Keokuk County
- Kossuth County
- Lee County
- Linn County
- Louisa County
- Lucas County
- Lyon County
- Madison County
- Mahaska County
- Marion County
- Marshall County
- Mills County
- Mitchell County
- Monona County
- Monroe County
- Montgomery County
- Muscatine County
- O'Brien County
- Osceola County
- Page County
- Palo Alto County
- Plymouth County
- Pocahontas County
- Polk County
- Pottawattamie County
- Poweshiek County
- Ringgold County
- Sac County
- Scott County
- Shelby County
- Sioux County
- Story County
- Tama County
- Taylor County
- Union County
- Van Buren County
- Wapello County
- Warren County
- Washington County
- Wayne County
- Webster County
- Winnebago County
- Winneshiek County
- Woodbury County
- Worth County
- Wright County
Get the next update for Iowa
The IRS releases new migration data once a year. Drop your email and we will send the refreshed numbers when they land. No spam, unsubscribe anytime.