MoverScout

Who's moving to Michigan

Where households are arriving from and leaving for, county by county — built on official federal tax-filer data, not marketing estimates.

-8,575 net households from other states
Arrived from other states
71,208
households, 2022-2023
Left for other states
79,783
households, 2022-2023
Moved within Michigan
159,458
households changed county, stayed in state

-8,575 net households — Arrivals from other states and departures to them are close in volume — departures edge ahead by 8,575 households. That loss has narrowed by 21% over five years. Another 960 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 Troy →
Net household change, five years
Every move in or out of Michigan, including from abroad — so the latest bar can differ slightly from the state-to-state figure above.
-11,713
18–19
-6,596
19–20
-5,358
20–21
-11,485
21–22
-9,246
22–23
Detroit · Wayne County: -1,553 net from other states, 61,773 moved in or out Warren · Macomb County: -819 net from other states, 36,654 moved in or out Grand Rapids · Kent County: -330 net from other states, 30,660 moved in or out Ann Arbor · Washtenaw County: -1,350 net from other states, 25,019 moved in or out Lansing · Ingham County: -439 net from other states, 17,564 moved in or out Flint · Genesee County: -203 net from other states, 15,952 moved in or out Allendale · Ottawa County: +43 net from other states, 15,949 moved in or out Kalamazoo · Kalamazoo County: -274 net from other states, 13,240 moved in or out Howell · Livingston County: -327 net from other states, 10,542 moved in or out Saginaw · Saginaw County: -36 net from other states, 7,721 moved in or out Waverly · Eaton County: -24 net from other states, 7,481 moved in or out Monroe · Monroe County: -204 net from other states, 7,041 moved in or out Niles · Berrien County: -99 net from other states, 6,919 moved in or out Holland · Allegan County: +37 net from other states, 6,696 moved in or out Muskegon · Muskegon County: +110 net from other states, 6,552 moved in or out Port Huron · St. Clair County: -42 net from other states, 6,465 moved in or out Jackson · Jackson County: -32 net from other states, 5,894 moved in or out Battle Creek · Calhoun County: -122 net from other states, 5,858 moved in or out Traverse City · Grand Traverse County: +139 net from other states, 5,747 moved in or out Saint Johns · Clinton County: -77 net from other states, 5,282 moved in or out Bay City · Bay County: +14 net from other states, 4,658 moved in or out Midland · Midland County: -47 net from other states, 4,632 moved in or out Lapeer · Lapeer County: -41 net from other states, 4,568 moved in or out Mount Pleasant · Isabella County: -107 net from other states, 4,090 moved in or out South Haven · Van Buren County: +83 net from other states, 3,970 moved in or out Adrian · Lenawee County: -93 net from other states, 3,916 moved in or out Greenville · Montcalm County: +38 net from other states, 3,679 moved in or out Hastings · Barry County: +12 net from other states, 3,391 moved in or out Owosso · Shiawassee County: -18 net from other states, 3,358 moved in or out Ionia · Ionia County: -14 net from other states, 3,172 moved in or out Marquette · Marquette County: -30 net from other states, 2,897 moved in or out Dowagiac · Cass County: +50 net from other states, 2,880 moved in or out Fremont · Newaygo County: +16 net from other states, 2,671 moved in or out Sturgis · St. Joseph County: -1 net from other states, 2,642 moved in or out Big Rapids · Mecosta County: +28 net from other states, 2,659 moved in or out Caro · Tuscola County: +26 net from other states, 2,420 moved in or out Bay Harbor · Emmet County: +28 net from other states, 2,071 moved in or out Hillsdale · Hillsdale County: +5 net from other states, 2,031 moved in or out Coldwater · Branch County: +15 net from other states, 2,014 moved in or out Cadillac · Wexford County: -16 net from other states, 1,924 moved in or out Clare · Clare County: +30 net from other states, 1,842 moved in or out Alma · Gratiot County: +17 net from other states, 1,841 moved in or out Sandusky · Sanilac County: -35 net from other states, 1,794 moved in or out Houghton · Houghton County: -160 net from other states, 1,714 moved in or out Boyne City · Charlevoix County: -14 net from other states, 1,607 moved in or out Houghton Lake · Roscommon County: +31 net from other states, 1,627 moved in or out Elk Rapids · Antrim County: -3 net from other states, 1,585 moved in or out Gaylord · Otsego County: +66 net from other states, 1,580 moved in or out Cheboygan · Cheboygan County: +3 net from other states, 1,534 moved in or out Greilickville · Leelanau County: -1 net from other states, 1,505 moved in or out Gladwin · Gladwin County: +42 net from other states, 1,496 moved in or out East Tawas · Iosco County: +32 net from other states, 1,461 moved in or out Reed City · Osceola County: -1 net from other states, 1,448 moved in or out Sault Ste. Marie · Chippewa County: +4 net from other states, 1,419 moved in or out Hart · Oceana County: +2 net from other states, 1,410 moved in or out Ludington · Mason County: +13 net from other states, 1,355 moved in or out Escanaba · Delta County: +9 net from other states, 1,279 moved in or out Bad Axe · Huron County: +45 net from other states, 1,250 moved in or out Manistee · Manistee County: +28 net from other states, 1,260 moved in or out Kalkaska · Kalkaska County: -8 net from other states, 1,215 moved in or out Frankfort · Benzie County: +58 net from other states, 1,185 moved in or out Skidway Lake · Ogemaw County: +33 net from other states, 1,167 moved in or out Alpena · Alpena County: +43 net from other states, 1,146 moved in or out Iron Mountain · Dickinson County: -12 net from other states, 1,088 moved in or out Menominee · Menominee County: -43 net from other states, 1,046 moved in or out Baldwin · Lake County: +3 net from other states, 866 moved in or out Standish · Arenac County: +22 net from other states, 840 moved in or out Grayling · Crawford County: +46 net from other states, 805 moved in or out Saint Ignace · Mackinac County: -4 net from other states, 778 moved in or out Lake City · Missaukee County: -1 net from other states, 742 moved in or out Hubbard Lake · Alcona County: +4 net from other states, 706 moved in or out Ironwood · Gogebic County: +12 net from other states, 625 moved in or out Lewiston · Montmorency County: +41 net from other states, 629 moved in or out Rogers City · Presque Isle County: +51 net from other states, 630 moved in or out Iron River · Iron County: +12 net from other states, 543 moved in or out Mio · Oscoda County: +44 net from other states, 483 moved in or out Munising · Alger County: +10 net from other states, 368 moved in or out Manistique · Schoolcraft County: +6 net from other states, 314 moved in or out Baraga · Baraga County: +34 net from other states, 288 moved in or out Ontonagon · Ontonagon County: +17 net from other states, 235 moved in or out Newberry · Luce County: +0 net from other states, 209 moved in or out Ahmeek · Keweenaw County: +0 net from other states, 79 moved in or out Troy · Oakland County: -3,397 net from other states, 64,852 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.
Troy · Oakland County — the busiest moving market in Michigan.
Where Michigan 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.
Traverse City Grand Traverse County +139
#584 of 3,087 U.S. counties for total household growth
Muskegon Muskegon County +110
#230 of 3,087 U.S. counties for total household growth
South Haven Van Buren County +83
#950 of 3,087 U.S. counties for total household growth
Gaylord Otsego County +66
#631 of 3,087 U.S. counties for total household growth
Frankfort Benzie County +58
#735 of 3,087 U.S. counties for total household growth
Rogers City Presque Isle County +51
#852 of 3,087 U.S. counties for total household growth
Dowagiac Cass County +50
#993 of 3,087 U.S. counties for total household growth
Grayling Crawford County +46
#782 of 3,087 U.S. counties for total household growth
Where Michigan 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.
Troy Oakland County -3,397
Detroit Wayne County -1,553
Ann Arbor Washtenaw County -1,350
Warren Macomb County -819
Lansing Ingham County -439
Grand Rapids Kent County -330
Howell Livingston County -327
Kalamazoo Kalamazoo County -274
Which states Michigan 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.
Florida -1,832
2,851 in
4,683 out
Illinois -880
3,228 in
4,108 out
Ohio -178
2,826 in
3,004 out
California -751
2,445 in
3,196 out
Texas -1,466
1,843 in
3,309 out
Indiana +149
2,224 in
2,075 out

Households arriving in Michigan from another state report $74,231 in average annual income; those leaving for another state report $78,147. Departures out-earn arrivals — Michigan is losing its higher earners.

Arriving from another state$74,231
Leaving for another state$78,147
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 29% of moves unattributed to a specific county, because flows too small to publish are grouped into regional buckets. 83 of Michigan's counties have published data.