MoverScout

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.

Moving in from another state? Your mover needs active interstate operating authority — most local companies don't hold one. See licensed movers in St. Louis →
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.
-1,015
18–19
+3,380
19–20
+4,046
20–21
+2,393
21–22
+2,547
22–23
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.
Kansas City Jackson County +1,034
#176 of 3,087 U.S. counties for total household growth
Raymore Cass County +312
#153 of 3,087 U.S. counties for total household growth
Joplin Jasper County +268
#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
Springfield Greene County +234
#222 of 3,087 U.S. counties for total household growth
Parkville Platte County +230
#313 of 3,087 U.S. counties for total household growth
Osage Beach Camden County +211
#576 of 3,087 U.S. counties for total household growth
Liberty Clay County +201
#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.
St. Louis St. Louis County -1,886
Maryville Nodaway County -189
Rolla Phelps County -104
Columbia Boone County -102
Cape Girardeau Cape Girardeau County -69
Kennett Dunklin County -66
Kirksville Adair County -52
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.
Kansas +1,175
9,213 in
8,038 out
Illinois +411
4,897 in
4,486 out
Texas -1,173
2,155 in
3,328 out
California +197
1,615 in
1,418 out
Florida -447
1,039 in
1,486 out
Arkansas -123
1,175 in
1,298 out

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.