Who's moving to Missouri
Where households are arriving from and leaving for, county by county — built on official federal tax-filer data, not marketing estimates.
+2,766 net households from other states
Arrived from other states
71,004
households, 2022-2023
Left for other states
68,238
households, 2022-2023
Moved within Missouri
102,614
households changed county, stayed in state
+2,766 net households — Arrivals from other states and departures to them are close in volume — arrivals edge ahead by 2,766 households.
Five years ago the flow ran the other way — Missouri was losing households to other states.
Another 614 households arrived from abroad.
Net household change, five years
Every move in or out of Missouri, including from abroad — so the latest bar can differ slightly from the state-to-state figure above.
Kansas City · Jackson County: +1,034 net from other states, 40,123 moved in or out
St. Louis · St. Louis city: +21 net from other states, 26,057 moved in or out
O'Fallon · St. Charles County: +44 net from other states, 20,306 moved in or out
Springfield · Greene County: +234 net from other states, 17,366 moved in or out
Liberty · Clay County: +201 net from other states, 17,039 moved in or out
Columbia · Boone County: -102 net from other states, 11,204 moved in or out
Arnold · Jefferson County: +138 net from other states, 10,617 moved in or out
Parkville · Platte County: +230 net from other states, 9,994 moved in or out
Raymore · Cass County: +312 net from other states, 7,241 moved in or out
Joplin · Jasper County: +268 net from other states, 6,413 moved in or out
Nixa · Christian County: +265 net from other states, 6,390 moved in or out
Fort Leonard Wood · Pulaski County: +41 net from other states, 5,049 moved in or out
Washington · Franklin County: +25 net from other states, 4,615 moved in or out
Warrensburg · Johnson County: -15 net from other states, 4,476 moved in or out
Jefferson City · Cole County: -3 net from other states, 3,978 moved in or out
Neosho · Newton County: +125 net from other states, 3,972 moved in or out
Cape Girardeau · Cape Girardeau County: -69 net from other states, 3,928 moved in or out
Branson · Taney County: +143 net from other states, 3,912 moved in or out
Saint Joseph · Buchanan County: +2 net from other states, 3,808 moved in or out
Troy · Lincoln County: +33 net from other states, 3,369 moved in or out
Osage Beach · Camden County: +211 net from other states, 3,222 moved in or out
Farmington · St. Francois County: +82 net from other states, 2,814 moved in or out
Rolla · Phelps County: -104 net from other states, 2,554 moved in or out
Marshfield · Webster County: +125 net from other states, 2,490 moved in or out
Fulton · Callaway County: +62 net from other states, 2,445 moved in or out
Warrenton · Warren County: +21 net from other states, 2,412 moved in or out
Kimberling City · Stone County: +146 net from other states, 2,386 moved in or out
Monett · Lawrence County: +37 net from other states, 2,167 moved in or out
Cassville · Barry County: +124 net from other states, 1,993 moved in or out
Sikeston · Scott County: -26 net from other states, 1,969 moved in or out
Sedalia · Pettis County: +32 net from other states, 1,926 moved in or out
Bolivar · Polk County: +57 net from other states, 1,869 moved in or out
Poplar Bluff · Butler County: -9 net from other states, 1,824 moved in or out
Odessa · Lafayette County: +26 net from other states, 1,810 moved in or out
West Plains · Howell County: +56 net from other states, 1,697 moved in or out
Lebanon · Laclede County: +65 net from other states, 1,701 moved in or out
Cameron · Clinton County: -18 net from other states, 1,480 moved in or out
Anderson · McDonald County: +41 net from other states, 1,459 moved in or out
Eldon · Miller County: +13 net from other states, 1,469 moved in or out
Kirksville · Adair County: -52 net from other states, 1,386 moved in or out
Hannibal · Marion County: +3 net from other states, 1,337 moved in or out
Richmond · Ray County: +1 net from other states, 1,337 moved in or out
Clinton · Henry County: +27 net from other states, 1,300 moved in or out
Riverview · Morgan County: +108 net from other states, 1,240 moved in or out
Cuba · Crawford County: +42 net from other states, 1,234 moved in or out
Dexter · Stoddard County: -11 net from other states, 1,235 moved in or out
Licking · Texas County: +72 net from other states, 1,188 moved in or out
Mexico · Audrain County: +26 net from other states, 1,153 moved in or out
Warsaw · Benton County: +82 net from other states, 1,121 moved in or out
Moberly · Randolph County: -15 net from other states, 1,115 moved in or out
Kennett · Dunklin County: -66 net from other states, 1,107 moved in or out
Maryville · Nodaway County: -189 net from other states, 1,103 moved in or out
Savannah · Andrew County: +24 net from other states, 1,045 moved in or out
Buffalo · Dallas County: +50 net from other states, 1,018 moved in or out
Potosi · Washington County: +56 net from other states, 1,009 moved in or out
Mountain Grove · Wright County: +72 net from other states, 1,009 moved in or out
Marshall · Saline County: +16 net from other states, 953 moved in or out
Boonville · Cooper County: -39 net from other states, 838 moved in or out
Nevada · Vernon County: +34 net from other states, 824 moved in or out
Butler · Bates County: +37 net from other states, 803 moved in or out
El Dorado Springs · Cedar County: +44 net from other states, 787 moved in or out
Sainte Genevieve · Ste. Genevieve County: +5 net from other states, 811 moved in or out
Portageville · New Madrid County: -16 net from other states, 763 moved in or out
Owensville · Gasconade County: +10 net from other states, 729 moved in or out
Macon · Macon County: +1 net from other states, 723 moved in or out
Ava · Douglas County: +70 net from other states, 699 moved in or out
Bowling Green · Pike County: -7 net from other states, 687 moved in or out
Chillicothe · Livingston County: +32 net from other states, 677 moved in or out
Salem · Dent County: +47 net from other states, 658 moved in or out
California · Moniteau County: +17 net from other states, 650 moved in or out
Perryville · Perry County: +28 net from other states, 649 moved in or out
Caruthersville · Pemiscot County: -48 net from other states, 624 moved in or out
Maysville · DeKalb County: -33 net from other states, 602 moved in or out
Lamar · Barton County: +41 net from other states, 569 moved in or out
Marble Hill · Bollinger County: +26 net from other states, 565 moved in or out
Hermitage · Hickory County: +64 net from other states, 574 moved in or out
Fredericktown · Madison County: +23 net from other states, 583 moved in or out
Montgomery City · Montgomery County: -43 net from other states, 582 moved in or out
New London · Ralls County: +8 net from other states, 581 moved in or out
Doniphan · Ripley County: +51 net from other states, 575 moved in or out
Piedmont · Wayne County: +64 net from other states, 567 moved in or out
Gainesville · Ozark County: +33 net from other states, 554 moved in or out
Brookfield · Linn County: +14 net from other states, 536 moved in or out
Linn · Osage County: +3 net from other states, 515 moved in or out
Thayer · Oregon County: +11 net from other states, 487 moved in or out
Appleton City · St. Clair County: +28 net from other states, 481 moved in or out
Ironton · Iron County: -9 net from other states, 467 moved in or out
Gallatin · Daviess County: +35 net from other states, 448 moved in or out
Trenton · Grundy County: +11 net from other states, 445 moved in or out
Fayette · Howard County: +45 net from other states, 457 moved in or out
Charleston · Mississippi County: -43 net from other states, 440 moved in or out
Monroe City · Monroe County: +4 net from other states, 444 moved in or out
Belle · Maries County: +24 net from other states, 418 moved in or out
Hamilton · Caldwell County: -25 net from other states, 417 moved in or out
Greenfield · Dade County: +45 net from other states, 392 moved in or out
Carrollton · Carroll County: +0 net from other states, 347 moved in or out
Canton · Lewis County: -15 net from other states, 347 moved in or out
Winona · Shannon County: +30 net from other states, 353 moved in or out
Bethany · Harrison County: -13 net from other states, 320 moved in or out
Milan · Sullivan County: -1 net from other states, 293 moved in or out
Albany · Gentry County: +0 net from other states, 271 moved in or out
Van Buren · Carter County: +22 net from other states, 246 moved in or out
Salisbury · Chariton County: +0 net from other states, 256 moved in or out
Kahoka · Clark County: -23 net from other states, 221 moved in or out
Ellington · Reynolds County: +0 net from other states, 218 moved in or out
Shelbina · Shelby County: +0 net from other states, 218 moved in or out
Terre Haute · Putnam County: +2 net from other states, 203 moved in or out
Tarkio · Atchison County: +9 net from other states, 172 moved in or out
Mound City · Holt County: -20 net from other states, 173 moved in or out
Princeton · Mercer County: -2 net from other states, 171 moved in or out
Lancaster · Schuyler County: -21 net from other states, 152 moved in or out
Edina · Knox County: +0 net from other states, 125 moved in or out
Memphis · Scotland County: -22 net from other states, 123 moved in or out
Grant City · Worth County: +0 net from other states, 53 moved in or out
St. Louis · St. Louis County: -1,886 net from other states, 48,600 moved in or out
Every county at a glance.
Gained households from other states
Lost households to other states
Circle size — households that moved in or out.
St. Louis · St. Louis County — the busiest moving market in Missouri.
Where Missouri is gaining from other states
Largest net state-to-state changes by county — same basis as the figures above, top eight only. Each city page adds the in-state picture.
#176 of 3,087 U.S. counties for total household growth
#153 of 3,087 U.S. counties for total household growth
#257 of 3,087 U.S. counties for total household growth
Nixa Christian County
+265
#362 of 3,087 U.S. counties for total household growth
#222 of 3,087 U.S. counties for total household growth
#313 of 3,087 U.S. counties for total household growth
#576 of 3,087 U.S. counties for total household growth
#186 of 3,087 U.S. counties for total household growth
Where Missouri is losing to other states
Largest net state-to-state changes by county — same basis as the figures above, top eight only. Each city page adds the in-state picture.
Kennett Dunklin County
-66
Caruthersville Pemiscot County
-48
Which states Missouri trades households with
Each bar shows that state's in/out split — rows ranked by total volume. The IRS publishes only each county's largest partner states, so smaller streams are left out and these totals run below the headline figures.
Households arriving in Missouri from another state report
$66,100 in average annual income;
those leaving for another state report
$72,027 .
Departures out-earn arrivals — Missouri is losing its higher earners.
Arriving from another state $66,100
Leaving for another state $72,027
City-level breakdowns
Every city page has its own migration section — who's arriving, from how far, and what kind of mover that calls for.
How this works: IRS SOI County-to-County Migration Data, 2022-2023. The IRS compares the address on consecutive tax
returns, so every move here is a real filed household. The headline figures and county lists count moves that
crossed a state line; the five-year chart counts every move, including from abroad. The data publishes annually
with about a two-year lag, misses people who don't file a return, and leaves 35% of moves
unattributed to a specific county, because flows too small to publish are grouped into regional buckets.
115 of Missouri's counties have published data.