Who's moving to Texas
Where households are arriving from and leaving for, county by county — built on official federal tax-filer data, not marketing estimates.
+56,883 net households from other states · #1 of 51 states
Arrived from other states
304,097
households, 2022-2023
Left for other states
247,214
households, 2022-2023
Moved within Texas
569,293
households changed county, stayed in state
+56,883 net households — For every 100 households that left Texas for another state, about 123 arrived. Texas is a net gainer.
The pace has held steady over five years.
Another 6,519 households arrived from abroad.
Net household change, five years
Every move in or out of Texas, including from abroad — so the latest bar can differ slightly from the state-to-state figure above.
Dallas · Dallas County: +6,995 net from other states, 162,154 moved in or out
Fort Worth · Tarrant County: +3,863 net from other states, 120,426 moved in or out
Austin · Travis County: +6,517 net from other states, 112,275 moved in or out
Plano · Collin County: +5,679 net from other states, 91,000 moved in or out
San Antonio · Bexar County: +3,372 net from other states, 89,786 moved in or out
Denton · Denton County: +3,357 net from other states, 83,425 moved in or out
Round Rock · Williamson County: +3,906 net from other states, 57,916 moved in or out
Sugar Land · Fort Bend County: +2,130 net from other states, 52,389 moved in or out
The Woodlands · Montgomery County: +2,805 net from other states, 48,322 moved in or out
Killeen · Bell County: +1,003 net from other states, 31,784 moved in or out
El Paso · El Paso County: -756 net from other states, 31,568 moved in or out
San Marcos · Hays County: +646 net from other states, 24,178 moved in or out
Pearland · Brazoria County: +747 net from other states, 22,861 moved in or out
League City · Galveston County: +223 net from other states, 20,523 moved in or out
McAllen · Hidalgo County: -112 net from other states, 17,162 moved in or out
New Braunfels · Comal County: +788 net from other states, 16,891 moved in or out
Forney · Kaufman County: +758 net from other states, 16,379 moved in or out
Corpus Christi · Nueces County: -18 net from other states, 15,571 moved in or out
Lubbock · Lubbock County: +143 net from other states, 15,402 moved in or out
College Station · Brazos County: -219 net from other states, 15,298 moved in or out
Schertz · Guadalupe County: +588 net from other states, 15,323 moved in or out
Waxahachie · Ellis County: +476 net from other states, 14,913 moved in or out
Burleson · Johnson County: +317 net from other states, 13,803 moved in or out
Tyler · Smith County: +341 net from other states, 13,052 moved in or out
Weatherford · Parker County: +667 net from other states, 12,551 moved in or out
Midland · Midland County: +575 net from other states, 12,013 moved in or out
Waco · McLennan County: +231 net from other states, 11,728 moved in or out
Rockwall · Rockwall County: +379 net from other states, 11,212 moved in or out
Brownsville · Cameron County: -156 net from other states, 10,888 moved in or out
Beaumont · Jefferson County: +48 net from other states, 10,070 moved in or out
Canyon · Randall County: +36 net from other states, 9,993 moved in or out
Sherman · Grayson County: -53 net from other states, 8,986 moved in or out
Abilene · Taylor County: +128 net from other states, 8,639 moved in or out
Odessa · Ector County: +391 net from other states, 8,323 moved in or out
Greenville · Hunt County: +58 net from other states, 8,226 moved in or out
Copperas Cove · Coryell County: +230 net from other states, 8,110 moved in or out
Amarillo · Potter County: -21 net from other states, 7,822 moved in or out
Longview · Gregg County: +173 net from other states, 7,767 moved in or out
Wichita Falls · Wichita County: -150 net from other states, 7,325 moved in or out
Liberty · Liberty County: +154 net from other states, 7,126 moved in or out
Elgin · Bastrop County: +126 net from other states, 7,112 moved in or out
San Angelo · Tom Green County: -34 net from other states, 6,452 moved in or out
West Livingston · Polk County: -207 net from other states, 5,900 moved in or out
Laredo · Webb County: -193 net from other states, 5,664 moved in or out
Athens · Henderson County: +163 net from other states, 5,499 moved in or out
Decatur · Wise County: +158 net from other states, 5,491 moved in or out
Granbury · Hood County: +172 net from other states, 4,944 moved in or out
Huntsville · Walker County: +44 net from other states, 4,940 moved in or out
Texarkana · Bowie County: -34 net from other states, 4,806 moved in or out
Portland · San Patricio County: +21 net from other states, 4,442 moved in or out
Hempstead · Waller County: +59 net from other states, 4,272 moved in or out
Marble Falls · Burnet County: +38 net from other states, 4,194 moved in or out
Boerne · Kendall County: +134 net from other states, 3,926 moved in or out
Orange · Orange County: +103 net from other states, 3,939 moved in or out
Victoria · Victoria County: +17 net from other states, 3,822 moved in or out
Marshall · Harrison County: +43 net from other states, 3,803 moved in or out
Mont Belvieu · Chambers County: +96 net from other states, 3,740 moved in or out
Canton · Van Zandt County: +44 net from other states, 3,636 moved in or out
Lockhart · Caldwell County: +48 net from other states, 3,511 moved in or out
Lufkin · Angelina County: -7 net from other states, 3,477 moved in or out
Hondo · Medina County: -6 net from other states, 3,234 moved in or out
Nacogdoches · Nacogdoches County: -25 net from other states, 3,257 moved in or out
Lumberton · Hardin County: -23 net from other states, 3,147 moved in or out
Mineola · Wood County: +62 net from other states, 3,089 moved in or out
Floresville · Wilson County: +36 net from other states, 3,108 moved in or out
Pleasanton · Atascosa County: -14 net from other states, 3,064 moved in or out
Kerrville · Kerr County: +49 net from other states, 3,019 moved in or out
Corsicana · Navarro County: +46 net from other states, 2,884 moved in or out
Henderson · Rusk County: +33 net from other states, 2,838 moved in or out
Gilmer · Upshur County: +93 net from other states, 2,790 moved in or out
Stephenville · Erath County: +41 net from other states, 2,739 moved in or out
Gainesville · Cooke County: -69 net from other states, 2,572 moved in or out
Del Rio · Val Verde County: +15 net from other states, 2,429 moved in or out
Jacksonville · Cherokee County: +15 net from other states, 2,436 moved in or out
Hillsboro · Hill County: +21 net from other states, 2,411 moved in or out
Palestine · Anderson County: +9 net from other states, 2,405 moved in or out
Navasota · Grimes County: +60 net from other states, 2,223 moved in or out
Rockport · Aransas County: +27 net from other states, 2,151 moved in or out
Bonham · Fannin County: +9 net from other states, 2,147 moved in or out
Paris · Lamar County: -34 net from other states, 2,071 moved in or out
Shepherd · San Jacinto County: -18 net from other states, 1,976 moved in or out
Brenham · Washington County: +28 net from other states, 1,918 moved in or out
Sealy · Austin County: +24 net from other states, 1,896 moved in or out
Kingsville · Kleberg County: -47 net from other states, 1,902 moved in or out
Sulphur Springs · Hopkins County: +12 net from other states, 1,874 moved in or out
Mineral Wells · Palo Pinto County: +34 net from other states, 1,863 moved in or out
Brownwood · Brown County: -1 net from other states, 1,836 moved in or out
Jasper · Jasper County: -29 net from other states, 1,762 moved in or out
Eagle Pass · Maverick County: -24 net from other states, 1,758 moved in or out
Lampasas · Lampasas County: +13 net from other states, 1,726 moved in or out
Kingsland · Llano County: -7 net from other states, 1,712 moved in or out
El Campo · Wharton County: -43 net from other states, 1,713 moved in or out
Fredericksburg · Gillespie County: +5 net from other states, 1,690 moved in or out
Alice · Jim Wells County: +5 net from other states, 1,689 moved in or out
Lakehills · Bandera County: +32 net from other states, 1,653 moved in or out
Bay City · Matagorda County: +11 net from other states, 1,643 moved in or out
Atlanta · Cass County: +23 net from other states, 1,514 moved in or out
Mount Pleasant · Titus County: -10 net from other states, 1,486 moved in or out
Rockdale · Milam County: +31 net from other states, 1,425 moved in or out
Rio Grande City · Starr County: -36 net from other states, 1,442 moved in or out
La Grange · Fayette County: -17 net from other states, 1,400 moved in or out
Big Spring · Howard County: -6 net from other states, 1,391 moved in or out
Bowie · Montague County: -12 net from other states, 1,279 moved in or out
Caldwell · Burleson County: -4 net from other states, 1,246 moved in or out
Levelland · Hockley County: -2 net from other states, 1,234 moved in or out
Plainview · Hale County: -23 net from other states, 1,209 moved in or out
Beeville · Bee County: -13 net from other states, 1,166 moved in or out
Clifton · Bosque County: +16 net from other states, 1,152 moved in or out
Johnson City · Blanco County: +44 net from other states, 1,093 moved in or out
Mexia · Limestone County: -9 net from other states, 1,079 moved in or out
Dumas · Moore County: -10 net from other states, 1,094 moved in or out
Woodville · Tyler County: +29 net from other states, 1,087 moved in or out
Eagle Lake · Colorado County: -4 net from other states, 1,052 moved in or out
Carthage · Panola County: +13 net from other states, 1,059 moved in or out
Teague · Freestone County: +32 net from other states, 1,034 moved in or out
Borger · Hutchinson County: +9 net from other states, 1,026 moved in or out
Buffalo · Leon County: +30 net from other states, 1,036 moved in or out
Uvalde · Uvalde County: +7 net from other states, 1,025 moved in or out
Stamford · Jones County: +10 net from other states, 980 moved in or out
Trinity · Trinity County: +21 net from other states, 987 moved in or out
Port Lavaca · Calhoun County: -14 net from other states, 954 moved in or out
Cuero · DeWitt County: +22 net from other states, 958 moved in or out
Crockett · Houston County: +0 net from other states, 968 moved in or out
Hallettsville · Lavaca County: -12 net from other states, 928 moved in or out
Center · Shelby County: +2 net from other states, 948 moved in or out
Clyde · Callahan County: +47 net from other states, 907 moved in or out
Eastland · Eastland County: +31 net from other states, 914 moved in or out
Gonzales · Gonzales County: +2 net from other states, 909 moved in or out
Pampa · Gray County: -20 net from other states, 908 moved in or out
Hearne · Robertson County: +5 net from other states, 900 moved in or out
Giddings · Lee County: -24 net from other states, 885 moved in or out
Seminole · Gaines County: +7 net from other states, 853 moved in or out
Graham · Young County: +9 net from other states, 860 moved in or out
Emory · Rains County: +37 net from other states, 835 moved in or out
Andrews · Andrews County: +17 net from other states, 826 moved in or out
Marlin · Falls County: +18 net from other states, 819 moved in or out
Daingerfield · Morris County: +25 net from other states, 791 moved in or out
Pecos · Reeves County: +25 net from other states, 767 moved in or out
Hereford · Deaf Smith County: +3 net from other states, 744 moved in or out
Comanche · Comanche County: +60 net from other states, 727 moved in or out
Pittsburg · Camp County: -5 net from other states, 714 moved in or out
Henrietta · Clay County: +11 net from other states, 701 moved in or out
Mount Vernon · Franklin County: -9 net from other states, 694 moved in or out
Monahans · Ward County: +37 net from other states, 690 moved in or out
Alpine · Brewster County: +7 net from other states, 665 moved in or out
Edna · Jackson County: -30 net from other states, 658 moved in or out
Jefferson · Marion County: +30 net from other states, 657 moved in or out
Glen Rose · Somervell County: -2 net from other states, 664 moved in or out
Pearsall · Frio County: -25 net from other states, 636 moved in or out
Snyder · Scurry County: +1 net from other states, 637 moved in or out
Clarksville · Red River County: +5 net from other states, 623 moved in or out
Milam · Sabine County: +19 net from other states, 622 moved in or out
Vernon · Wilbarger County: -13 net from other states, 605 moved in or out
Madisonville · Madison County: +22 net from other states, 594 moved in or out
Newton · Newton County: +4 net from other states, 611 moved in or out
Sweetwater · Nolan County: +27 net from other states, 600 moved in or out
George West · Live Oak County: +26 net from other states, 561 moved in or out
Raymondville · Willacy County: -22 net from other states, 558 moved in or out
Hamilton · Hamilton County: +29 net from other states, 550 moved in or out
Littlefield · Lamb County: -5 net from other states, 547 moved in or out
Fort Stockton · Pecos County: +8 net from other states, 548 moved in or out
Jacksboro · Jack County: +0 net from other states, 523 moved in or out
Kenedy · Karnes County: +0 net from other states, 517 moved in or out
Ballinger · Runnels County: +24 net from other states, 510 moved in or out
Dalhart · Dallam County: -22 net from other states, 492 moved in or out
Brownfield · Terry County: +24 net from other states, 465 moved in or out
Archer City · Archer County: +0 net from other states, 457 moved in or out
Lamesa · Dawson County: +0 net from other states, 452 moved in or out
San Diego · Duval County: +0 net from other states, 419 moved in or out
Kermit · Winkler County: +28 net from other states, 411 moved in or out
Presidio · Presidio County: -7 net from other states, 395 moved in or out
Coleman · Coleman County: +25 net from other states, 403 moved in or out
Brady · McCulloch County: +0 net from other states, 399 moved in or out
Goliad · Goliad County: +0 net from other states, 386 moved in or out
Perryton · Ochiltree County: -26 net from other states, 381 moved in or out
Friona · Parmer County: -17 net from other states, 394 moved in or out
Hartley · Hartley County: -30 net from other states, 368 moved in or out
Breckenridge · Stephens County: +23 net from other states, 368 moved in or out
Denver City · Yoakum County: -6 net from other states, 369 moved in or out
Colorado City · Mitchell County: +21 net from other states, 359 moved in or out
San Augustine · San Augustine County: +21 net from other states, 348 moved in or out
Cooper · Delta County: +21 net from other states, 320 moved in or out
Carrizo Springs · Dimmit County: +0 net from other states, 312 moved in or out
Tahoka · Lynn County: +0 net from other states, 305 moved in or out
Crystal City · Zavala County: +0 net from other states, 317 moved in or out
Panhandle · Carson County: +0 net from other states, 294 moved in or out
Dimmitt · Castro County: +4 net from other states, 294 moved in or out
Stanton · Martin County: +0 net from other states, 293 moved in or out
Refugio · Refugio County: +0 net from other states, 298 moved in or out
Muleshoe · Bailey County: -17 net from other states, 282 moved in or out
Tulia · Swisher County: +0 net from other states, 289 moved in or out
Zapata · Zapata County: +0 net from other states, 281 moved in or out
Ralls · Crosby County: +0 net from other states, 275 moved in or out
Haskell · Haskell County: +0 net from other states, 256 moved in or out
Goldthwaite · Mills County: +0 net from other states, 257 moved in or out
Falfurrias · Brooks County: +0 net from other states, 247 moved in or out
Floydada · Floyd County: +0 net from other states, 240 moved in or out
Crane · Crane County: +0 net from other states, 236 moved in or out
San Saba · San Saba County: +0 net from other states, 230 moved in or out
Shamrock · Wheeler County: -7 net from other states, 214 moved in or out
Childress · Childress County: +0 net from other states, 207 moved in or out
Camp Wood · Real County: +0 net from other states, 201 moved in or out
Cotulla · La Salle County: +0 net from other states, 195 moved in or out
Robert Lee · Coke County: +0 net from other states, 182 moved in or out
Junction · Kimble County: +0 net from other states, 186 moved in or out
Mason · Mason County: +0 net from other states, 181 moved in or out
Clarendon · Donley County: +0 net from other states, 169 moved in or out
Spearman · Hansford County: +0 net from other states, 173 moved in or out
Post · Garza County: +0 net from other states, 171 moved in or out
Hamlin · Fisher County: +0 net from other states, 172 moved in or out
Big Lake · Reagan County: +0 net from other states, 177 moved in or out
Munday · Knox County: +0 net from other states, 164 moved in or out
McCamey · Upton County: +0 net from other states, 161 moved in or out
Quanah · Hardeman County: +0 net from other states, 152 moved in or out
Albany · Shackelford County: +0 net from other states, 157 moved in or out
Sonora · Sutton County: +0 net from other states, 153 moved in or out
Morton · Cochran County: +0 net from other states, 139 moved in or out
Brackettville · Kinney County: +0 net from other states, 143 moved in or out
Fort Hancock · Hudspeth County: +0 net from other states, 137 moved in or out
Memphis · Hall County: +0 net from other states, 138 moved in or out
Hebbronville · Jim Hogg County: +0 net from other states, 133 moved in or out
Vega · Oldham County: +0 net from other states, 131 moved in or out
Eldorado · Schleicher County: +0 net from other states, 125 moved in or out
Van Horn · Culberson County: +27 net from other states, 127 moved in or out
Claude · Armstrong County: +0 net from other states, 125 moved in or out
Seymour · Baylor County: +0 net from other states, 127 moved in or out
Ozona · Crockett County: +0 net from other states, 117 moved in or out
Eden · Concho County: +0 net from other states, 117 moved in or out
Booker · Lipscomb County: -2 net from other states, 118 moved in or out
Rocksprings · Edwards County: +0 net from other states, 110 moved in or out
Fort Davis · Jeff Davis County: +0 net from other states, 104 moved in or out
Menard · Menard County: +0 net from other states, 104 moved in or out
Stratford · Sherman County: +0 net from other states, 110 moved in or out
Mertzon · Irion County: +0 net from other states, 95 moved in or out
Spur · Dickens County: +0 net from other states, 90 moved in or out
Canadian · Hemphill County: +0 net from other states, 92 moved in or out
Wellington · Collingsworth County: +0 net from other states, 88 moved in or out
Throckmorton · Throckmorton County: +0 net from other states, 94 moved in or out
Sterling City · Sterling County: +0 net from other states, 72 moved in or out
Aspermont · Stonewall County: +0 net from other states, 60 moved in or out
Silverton · Briscoe County: +0 net from other states, 56 moved in or out
Garden City · Glasscock County: +0 net from other states, 55 moved in or out
Paducah · Cottle County: +0 net from other states, 52 moved in or out
Matador · Motley County: +0 net from other states, 53 moved in or out
Houston · Harris County: +8,955 net from other states, 196,677 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.
Houston · Harris County — the busiest moving market in Texas.
Where Texas 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.
#3,077 of 3,087 U.S. counties for total household growth
#3,079 of 3,087 U.S. counties for total household growth
#168 of 3,087 U.S. counties for total household growth
Plano Collin County
+5,679
#6 of 3,087 U.S. counties for total household growth
#4 of 3,087 U.S. counties for total household growth
#51 of 3,087 U.S. counties for total household growth
#33 of 3,087 U.S. counties for total household growth
#8 of 3,087 U.S. counties for total household growth
Where Texas 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.
Which states Texas 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 Texas from another state report
$83,932 in average annual income;
those leaving for another state report
$80,777 .
The two groups earn about the same.
Arriving from another state $83,932
Leaving for another state $80,777
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 22% of moves
unattributed to a specific county, because flows too small to publish are grouped into regional buckets.
245 of Texas's counties have published data.