CensusEasy
RANKING · 2024 ACS · 155 SHOWN OF 155

Most affordable housing, Minnesota cities

Minnesota cities with the lowest CensusEasy Afford Score, where homes cost the fewest years of local income (2024 ACS). This list covers the 155 cities in Minnesota that qualify, ranked against each other statewide. The median across all 155 is 3.5. Biggest climber in the top 100 since 2020: Albertville, MN, up 98 places to #8.

Flip the list · Least affordable housing, US cities →
MinnesotaAll statesPop > 5KAll rankings
Most affordable housing by state
RANKPLACESTATEPOPAFFORD SCOREVS 1990
01Montevideo, MNMN5,3352.1+5%
02▲1International Falls, MNMN5,4812.1+17%
03▼1Virginia, MNMN8,1872.3+20%
04▲5Hibbing, MNMN15,8232.3+39%
05▲2Austin, MNMN26,6892.4+26%
06▼2Albert Lea, MNMN18,2172.4+31%
07▲35Thief River Falls, MNMN8,7992.5+20%
08▲98Albertville, MNMN8,5442.6+21%
09▲3St. Paul Park, MNMN5,3962.6+35%
10Redwood Falls, MNMN5,0402.6+33%
11▼3Big Lake, MNMN12,9292.7+29%
12▼6Byron, MNMN6,7402.8+60%
13▲4Elko New Market, MNMN5,3002.8–
14▲17Rogers, MNMN15,6062.9+33%
15▲22St. Francis, MNMN8,6352.9+43%
16▲6Waseca, MNMN9,0353.0+44%
17▲37Farmington, MNMN25,4253.0+33%
18▲25Victoria, MNMN12,4473.0+11%
19▲8St. Michael, MNMN22,4983.0+40%
20▲15Andover, MNMN33,8743.0+44%
21▲48Carver, MNMN7,1983.0+50%
22▲2Owatonna, MNMN26,6333.0+47%
23▲18Jordan, MNMN6,9883.1+26%
24▼10Kasson, MNMN7,3503.1+55%
25▲78Marshall, MNMN14,1713.1+30%
26▲10Ramsey, MNMN29,6243.1+63%
27▲3Champlin, MNMN23,1253.1+51%
28▲29Morris, MNMN5,1503.1+34%
29▼11Cottage Grove, MNMN43,6043.1+65%
30▼2Becker, MNMN5,4253.2+26%
31▼2Maple Grove, MNMN73,8933.2+66%
32▲19Hutchinson, MNMN14,6553.2+41%
33▼18New Ulm, MNMN13,8633.2+54%
34▼14St. Joseph, MNMN6,8463.2+65%
35▲4Willmar, MNMN22,0013.2+23%
36▲61La Crescent, MNMN5,2613.2+65%
37▲94Medina, MNMN7,4603.2+46%
38▼4Glencoe, MNMN5,6323.2+53%
39▲5Spring Lake Park, MNMN7,1273.2+58%
40▲71South St. Paul, MNMN20,5323.2–
41▲7Fairmont, MNMN10,0993.2+59%
42▲30Crystal, MNMN22,2393.2+54%
43▲4Lino Lakes, MNMN23,2203.2+58%
44▼11Belle Plaine, MNMN7,6323.2+44%
45▼34Stewartville, MNMN6,8503.2+55%
46▼6Crookston, MNMN7,3753.2+73%
47▲17North Mankato, MNMN14,1653.2+50%
48▲15Lakeville, MNMN79,2703.3+52%
49▼17Rosemount, MNMN31,8813.3+51%
50▲2Arden Hills, MNMN9,5833.3+36%
51▲81East Grand Forks, MNMN8,9063.3+48%
52▼7Blaine, MNMN76,6033.3+66%
53▲15Lake City, MNMN5,3063.3+60%
54▼35Otsego, MNMN24,5253.3–
55▲4East Bethel, MNMN12,6053.3+58%
56▼33Isanti, MNMN7,7143.3+56%
57▲5Robbinsdale, MNMN14,0303.3+45%
58▲19Prior Lake, MNMN28,1403.4+53%
59▲26Oakdale, MNMN30,5883.4+59%
60▼11Wyoming, MNMN8,1213.4+46%
61▼36Worthington, MNMN13,9793.4+54%
62▼16Elk River, MNMN27,8963.4+46%
63▼37Delano, MNMN7,7883.4+69%
64▲3Litchfield, MNMN6,5283.4+54%
65▲44Moorhead, MNMN46,5333.4+35%
66▲14Hastings, MNMN22,5633.4+48%
67▲63Brainerd, MNMN14,4283.4+50%
68▲23Dayton, MNMN11,4023.4+59%
69▼19Savage, MNMN32,9703.4+65%
70▲46Fergus Falls, MNMN14,2463.5+74%
71▼16Coon Rapids, MNMN64,1933.5+76%
72▼19Cloquet, MNMN12,3993.5+83%
73▼13Rochester, MNMN124,2923.5+69%
74▲8Shakopee, MNMN49,3663.5+54%
75▲17Grand Rapids, MNMN11,1813.5+44%
76▲72Princeton, MNMN5,4803.5+53%
77▼21Hugo, MNMN17,1673.5+53%
78▲26North St. Paul, MNMN12,7803.5–
79▲2Duluth, MNMN88,3303.5+81%
80▲6Red Wing, MNMN16,8053.5+46%
81▼3Sartell, MNMN19,9183.5+52%
82▲7Maplewood, MNMN40,7173.5+52%
83▼8Buffalo, MNMN16,8783.5+35%
84▼19Shoreview, MNMN26,9063.5+57%
85▲11North Oaks, MNMN5,2833.5+57%
86▼70North Branch, MNMN12,3983.6+27%
87▲35Sauk Rapids, MNMN13,7683.6+62%
88▲59Bemidji, MNMN15,7703.6+47%
89▲1Winona, MNMN26,5303.6+57%
90▲22Inver Grove Heights, MNMN36,8733.6+51%
91▼7Woodbury, MNMN81,5583.6+68%
92▼31Oak Grove, MNMN9,4763.6–
93▲17Plymouth, MNMN78,9423.6+45%
94▼18Mounds View, MNMN12,7863.6+54%
95▲10Eden Prairie, MNMN63,0753.6+58%
96▼38Cambridge, MNMN11,0903.6+24%
97▼92Lindstrom, MNMN5,0393.6+42%
98▲1Chaska, MNMN30,5133.6+40%
99▼1Eagan, MNMN67,1093.7+62%
100▼12St. Cloud, MNMN72,6473.7+49%
101▼31Vadnais Heights, MNMN13,0523.7+67%
102▲5Ham Lake, MNMN17,1043.7+83%
103▲39Waite Park, MNMN8,4503.7+58%
104▼2New Prague, MNMN8,2383.7+50%
105▼11Brooklyn Park, MNMN83,5433.7+70%
106▼93Lonsdale, MNMN5,1173.8+92%
107▼14Columbia Heights, MNMN22,4823.8+55%
108▼87Zimmerman, MNMN6,9043.8+116%
109▼43Brooklyn Center, MNMN31,8463.8+64%
110▼37Apple Valley, MNMN55,2483.8+87%
111▲14St. Louis Park, MNMN50,0273.8+53%
112▼4St. Peter, MNMN12,2753.8+63%
113▼26Mahtomedi, MNMN8,1893.9+80%
114▲14Northfield, MNMN21,9923.9+44%
115▲8Bloomington, MNMN89,0343.9+66%
116▼21Waconia, MNMN14,1133.9+34%
117▼46Lake Elmo, MNMN14,3763.9+39%
118▼17Fridley, MNMN30,8293.9+67%
119▼6Stillwater, MNMN19,3543.9+71%
120▲19Mankato, MNMN46,5293.9+42%
121▼3Mendota Heights, MNMN11,4753.9+58%
122▼39Faribault, MNMN25,0403.9+66%
123▼23Chanhassen, MNMN25,7483.9+66%
124▼7Golden Valley, MNMN21,3254.0+68%
125▼1White Bear Lake, MNMN23,3924.0+76%
127▲13Minnetonka, MNMN53,9694.0+68%
128▲22Falcon Heights, MNMN5,0714.0+23%
129▲12St. Paul, MNMN306,6844.0+51%
130▲3Minnetrista, MNMN9,4584.0+52%
131▼5Richfield, MNMN36,5934.0+54%
132▼17Chisago City, MNMN5,9554.0+55%
133▲4Roseville, MNMN35,6634.1+58%
134Anoka, MNMN18,1694.1+60%
135▼61Monticello, MNMN15,6704.1+57%
136▼7Burnsville, MNMN65,2444.1+65%
137▲15Little Canada, MNMN10,5674.1+41%
138▼3Shorewood, MNMN7,6204.1+72%
139▼3New Brighton, MNMN22,1594.1+63%
140Credit River, MNMN5,6444.2–
141▼14Hermantown, MNMN10,1104.2+118%
142▲1Detroit Lakes, MNMN10,0194.2+72%
143▼5Little Falls, MNMN9,2774.2+70%
144▼23Forest Lake, MNMN20,9524.2+60%
145▼107Corcoran, MNMN9,2694.3+92%
146▼27Mound, MNMN9,0644.3+101%
147▼2New Hope, MNMN20,8074.3+69%
148▼4West St. Paul, MNMN21,9504.4–
149Minneapolis, MNMN430,3244.5+59%
150▼30Alexandria, MNMN15,0454.5+45%
151▼72Baxter, MNMN9,2174.6+178%
152▼1Hopkins, MNMN19,5235.0+72%
153▲1Edina, MNMN54,3565.0+57%
154▼8Newport, MNMN5,5255.3+126%
155▼2Orono, MNMN8,3015.8+109%
SHOWING 1–155 OF 155

UPDATED 2026-09-11 · DATA: US CENSUS BUREAU ACS 5-YEAR ESTIMATES