MNMinnesota rankings

Most affordable towns in Minnesota

Ranked by how many years of a typical MN household income ($89,062) it takes to buy each town's median home. Lower is easier to buy in. 275 towns with 2,500+ residents.

U.S. Census ACS 2020–2024 5-year

Minnesota · Most affordable

North St. Paul ranks #117 of 275

3.4 yrs of a typical MN income buys a typical home · Visit North St. Paul →

North St. Paul ranks #117 of 275 for most affordable in Minnesota
#TownYears of incomeHome valueMedian income
1 Eveleth Eveleth3,448 people 1.1 yrs $97,600 $50,725
2 Map of Chisholm Chisholm4,712 people 1.2 yrs $109,200 $50,891
3 Pipestone4,129 people 1.3 yrs $114,100 $67,568
4 International Falls5,642 people 1.4 yrs $120,400 $57,662
5 Virginia8,332 people 1.4 yrs $120,600 $51,720
6 St. James St. James4,767 people 1.4 yrs $122,100 $60,242
7 WhiteSt. Louis County · 3,109 people 1.4 yrs $123,600 $55,293
8 Map of Jackson Jackson3,287 people 1.4 yrs $128,500 $70,223
9 Hibbing16,057 people 1.5 yrs $130,200 $55,789
10 Granite Falls2,685 people 1.5 yrs $136,700 $59,375
11 Montevideo5,315 people 1.6 yrs $141,000 $68,596
12 Map of Blue Earth Blue Earth3,165 people 1.6 yrs $143,600 $66,771
13 Breckenridge3,349 people 1.6 yrs $144,500 $58,963
14 Sleepy Eye3,444 people 1.7 yrs $147,600 $66,911
15 Long Prairie Long Prairie3,693 people 1.7 yrs $152,000 $58,786
16 Benson Benson3,441 people 1.8 yrs $156,000 $52,821
17 Ely3,240 people 1.8 yrs $157,300 $43,901
18 Map of Albert Lea Albert Lea18,330 people 1.8 yrs $157,500 $64,603
19 Map of Caledonia Caledonia2,820 people 1.8 yrs $157,900 $76,477
20 Wadena4,419 people 1.8 yrs $160,800 $56,080
21 Redwood Falls5,068 people 1.8 yrs $162,100 $61,750
22 Map of Austin Austin26,358 people 1.8 yrs $163,900 $68,057
23 Roseau2,736 people 1.8 yrs $164,100 $60,217
24 Map of Windom Windom4,799 people 1.9 yrs $169,700 $74,899
25 Fairmont Fairmont10,296 people 1.9 yrs $169,900 $53,084
26 Mora Mora3,732 people 1.9 yrs $171,800 $52,535
27 Pelican Rapids2,586 people 2.0 yrs $174,100 $63,917
28 Map of Thief River Falls Thief River Falls8,823 people 2.0 yrs $175,400 $71,144
29 Paynesville2,519 people 2.0 yrs $178,200 $75,250
30 Glenwood2,633 people 2.0 yrs $179,400 $42,188
31 Map of Crookston Crookston7,344 people 2.1 yrs $185,600 $57,315
32 Pine City3,468 people 2.1 yrs $186,900 $52,056
33 Litchfield6,576 people 2.1 yrs $187,600 $54,875
34 Waseca9,164 people 2.1 yrs $189,200 $64,074
35 Map of Brainerd Brainerd14,468 people 2.2 yrs $192,500 $56,111
36 Map of Mountain Iron Mountain Iron2,860 people 2.2 yrs $192,800 $83,293
37 Map of Fergus Falls Fergus Falls14,181 people 2.2 yrs $194,000 $56,162
38 Map of Dodge Center Dodge Center2,880 people 2.2 yrs $197,600 $93,884
39 Bemidji Bemidji15,569 people 2.2 yrs $198,300 $55,405
40 Willmar21,378 people 2.2 yrs $198,400 $62,280
41 Perham Perham3,627 people 2.2 yrs $199,000 $49,716
42 Winona Winona26,009 people 2.3 yrs $201,800 $56,337
43 Little Falls9,121 people 2.3 yrs $202,600 $47,863
44 Map of Milaca Milaca3,044 people 2.3 yrs $203,400 $49,588
45 Map of Foley Foley2,675 people 2.3 yrs $203,800 $58,833
46 New Ulm14,056 people 2.3 yrs $204,200 $64,449
47 Lake Crystal2,606 people 2.3 yrs $204,400 $83,317
48 Moose Lake2,863 people 2.3 yrs $205,000 $64,286
49 Two Harbors3,567 people 2.3 yrs $206,800 $65,625
50 Map of Melrose Melrose3,671 people 2.3 yrs $207,200 $59,677
51 Luverne Luverne4,925 people 2.3 yrs $208,000 $64,366
52 Morris5,128 people 2.4 yrs $209,600 $67,727
53 Map of Le Center Le Center2,513 people 2.4 yrs $209,600 $80,673
54 Marshall13,896 people 2.4 yrs $210,300 $68,566
55 Worthington13,780 people 2.4 yrs $210,300 $61,797
56 Cloquet12,537 people 2.4 yrs $212,700 $61,367
57 Grand Rapids11,207 people 2.4 yrs $213,800 $61,029
58 Map of Princeton Princeton5,274 people 2.5 yrs $218,700 $62,219
59 Map of Waite Park Waite Park8,399 people 2.5 yrs $219,400 $59,285
60 Cokato2,782 people 2.5 yrs $223,300 $70,288
61 Map of Proctor Proctor3,100 people 2.5 yrs $224,700 $67,377
62 St. Cloud70,629 people 2.5 yrs $225,000 $61,374
63 Sauk Centre Sauk Centre4,621 people 2.5 yrs $225,700 $62,628
64 Park Rapids4,270 people 2.6 yrs $227,500 $44,747
65 Glencoe5,695 people 2.6 yrs $227,900 $71,356
66 Hutchinson14,680 people 2.6 yrs $229,600 $72,836
67 Rush City Rush City3,295 people 2.6 yrs $233,100 $58,760
68 Montgomery3,434 people 2.6 yrs $234,700 $79,432
69 Red Wing16,758 people 2.7 yrs $237,300 $67,192
70 St. Joseph St. Joseph7,021 people 2.7 yrs $237,700 $74,946
71 Map of Albany Albany2,821 people 2.7 yrs $238,500 $69,167
72 Lake City5,034 people 2.7 yrs $238,700 $72,244
73 Faribault24,631 people 2.7 yrs $241,500 $61,449
74 Map of Chatfield Chatfield2,559 people 2.7 yrs $241,600 $96,078
75 Map of Duluth Duluth87,093 people 2.7 yrs $242,700 $68,807
76 Le Sueur4,215 people 2.7 yrs $244,000 $78,711
77 Owatonna26,498 people 2.8 yrs $245,200 $80,750
78 Plainview Plainview3,500 people 2.8 yrs $245,300 $82,926
79 Bemidji BemidjiBeltrami County · 3,363 people 2.8 yrs $246,000 $82,750
80 Barnesville2,762 people 2.8 yrs $248,700 $97,917
81 Moorhead Moorhead45,036 people 2.8 yrs $249,000 $72,761
82 Map of Zumbrota Zumbrota3,914 people 2.8 yrs $249,300 $78,156
83 St. Peter12,185 people 2.8 yrs $250,700 $65,122
84 Map of Cambridge Cambridge10,307 people 2.8 yrs $251,600 $69,154
85 Annandale Annandale3,399 people 2.8 yrs $251,800 $65,583
86 Map of Goodview Goodview4,103 people 2.9 yrs $254,200 $74,712
87 East Grand Forks East Grand Forks9,028 people 2.9 yrs $255,600 $77,549
88 Sauk Rapids Sauk Rapids13,852 people 2.9 yrs $256,100 $71,841
89 St. Charles4,037 people 2.9 yrs $256,600 $96,200
90 Mankato45,473 people 2.9 yrs $261,700 $66,873
91 Dilworth4,713 people 2.9 yrs $261,800 $90,694
92 North Mankato14,211 people 2.9 yrs $262,100 $80,791
93 Wabasha2,587 people 2.9 yrs $262,300 $64,514
94 Cannon Falls4,227 people 3.0 yrs $263,300 $84,097
95 Map of St. Paul Park St. Paul Park5,457 people 3.0 yrs $263,500 $100,642
96 Stewartville Stewartville6,807 people 3.0 yrs $265,300 $82,632
97 Detroit Lakes10,025 people 3.0 yrs $265,800 $62,958
98 Becker5,034 people 3.0 yrs $271,300 $86,094
99 Map of La Crescent La Crescent5,251 people 3.1 yrs $272,400 $85,368
100 Brooklyn Center Brooklyn Center32,479 people 3.1 yrs $274,300 $72,535
101 Map of Alexandria Alexandria14,735 people 3.1 yrs $275,300 $61,374
102 Map of Montrose Montrose3,888 people 3.1 yrs $275,700 $102,625
103 Eagle Lake3,281 people 3.1 yrs $276,500 $96,964
104 Columbia Heights Columbia Heights22,155 people 3.1 yrs $277,600 $73,691
105 Map of Cold Spring Cold Spring4,249 people 3.1 yrs $280,400 $72,228
106 South St. Paul20,611 people 3.2 yrs $281,600 $87,994
107 Map of Kasson Kasson7,050 people 3.2 yrs $285,200 $93,333
108 Lexington2,770 people 3.3 yrs $289,800 $75,347
109 Spring Lake Park Spring Lake Park7,032 people 3.3 yrs $290,100 $90,753
110 Isanti Isanti7,210 people 3.3 yrs $290,600 $87,500
111 Map of Circle Pines Circle Pines4,968 people 3.3 yrs $293,600 $101,800
112 St. Paul307,284 people 3.3 yrs $294,500 $73,394
113 Robbinsdale14,234 people 3.3 yrs $295,600 $88,252
114 Crystal22,476 people 3.3 yrs $296,100 $92,513
115 Map of Sartell Sartell19,758 people 3.3 yrs $297,300 $84,131
116 SylvanCass County · 2,982 people 3.3 yrs $298,200 $95,354
117 North St. Paul12,570 people 3.4 yrs $298,500 $84,797
118 Norwood Young America3,849 people 3.4 yrs $299,300 $71,364
119 West St. Paul21,382 people 3.4 yrs $301,300 $68,464
120 Harris HarrisItasca County · 3,332 people 3.4 yrs $301,800 $79,243
121 Map of Fridley Fridley30,241 people 3.4 yrs $302,900 $77,680
122 Coon Rapids63,468 people 3.4 yrs $305,800 $88,251
123 Map of Osseo Osseo2,584 people 3.4 yrs $306,500 $62,119
124 Map of Anoka Anoka17,970 people 3.5 yrs $308,700 $75,948
125 Rice Lake4,153 people 3.5 yrs $309,600 $89,663
126 Rochester122,330 people 3.5 yrs $310,500 $89,389
127 Buffalo16,499 people 3.5 yrs $314,400 $88,820
128 PokegamaPine County · 2,847 people 3.5 yrs $316,000 $77,888
129 Oakdale28,585 people 3.6 yrs $318,100 $93,772
130 Belle Plaine7,423 people 3.6 yrs $318,200 $99,315
131 WatabBenton County · 3,433 people 3.6 yrs $318,200 $99,018
132 Little Canada10,514 people 3.6 yrs $319,800 $77,957
133 NorthernBeltrami County · 3,659 people 3.6 yrs $320,200 $99,848
134 North Branch11,565 people 3.6 yrs $322,300 $90,456
135 Hastings22,117 people 3.6 yrs $322,400 $93,998
136 Maplewood40,695 people 3.6 yrs $323,200 $91,394
137 Zimmerman6,546 people 3.6 yrs $323,600 $85,645
138 Monticello14,858 people 3.6 yrs $323,700 $79,534
139 Stacy4,384 people 3.6 yrs $323,800 $98,464
140 Baxter8,966 people 3.6 yrs $324,100 $70,688
141 Map of Mounds View Mounds View12,926 people 3.6 yrs $324,200 $90,009
142 St. Francis8,372 people 3.7 yrs $327,600 $111,198
143 Grand LakeSt. Louis County · 2,715 people 3.7 yrs $329,000 $100,500
144 Rockford Rockford4,597 people 3.7 yrs $329,200 $94,162
145 Northfield20,742 people 3.7 yrs $329,400 $84,895
146 Map of Big Lake Big Lake12,367 people 3.7 yrs $330,200 $120,549
147 Cohasset2,703 people 3.7 yrs $330,500 $92,692
148 White Bear Lake23,908 people 3.7 yrs $331,800 $83,554
149 Brooklyn Park Brooklyn Park83,876 people 3.8 yrs $336,200 $89,891
150 Jordan Jordan6,771 people 3.8 yrs $336,200 $110,057
151 BradfordIsanti County · 3,473 people 3.8 yrs $336,800 $92,574
152 Map of New Hope New Hope21,181 people 3.8 yrs $337,000 $77,662
153 Watertown4,790 people 3.8 yrs $337,200 $99,671
154 ThomsonCarlton County · 5,534 people 3.8 yrs $339,000 $119,338
155 Breezy Point2,687 people 3.8 yrs $340,800 $85,938
156 Map of Mayer Mayer2,518 people 3.8 yrs $342,700 $124,917
157 Albertville Albertville8,207 people 3.9 yrs $343,700 $132,734
158 Richfield Richfield36,642 people 3.9 yrs $344,000 $85,132
159 Byron6,646 people 3.9 yrs $345,300 $124,010
160 New Prague8,237 people 3.9 yrs $350,500 $94,539
161 Map of Pine Island Pine Island3,580 people 3.9 yrs $350,500 $104,432
162 New London New LondonKandiyohi County · 2,936 people 3.9 yrs $351,400 $105,417
163 Roseville35,802 people 4.0 yrs $352,100 $86,930
164 Blaine Blaine72,488 people 4.0 yrs $352,400 $106,801
165 Map of Oak Park Heights Oak Park Heights4,756 people 4.0 yrs $354,800 $82,476
166 Burnsville64,463 people 4.0 yrs $355,200 $87,024
167 Lonsdale4,896 people 4.0 yrs $357,000 $95,176
168 Lindstrom4,978 people 4.0 yrs $358,100 $98,226
169 Map of Champlin Champlin23,294 people 4.0 yrs $358,700 $116,102
170 Ramsey28,421 people 4.0 yrs $359,600 $116,415
171 Map of Bloomington Bloomington88,665 people 4.1 yrs $361,700 $93,211
172 Minneapolis427,246 people 4.1 yrs $362,200 $80,846
173 BrockwayStearns County · 2,951 people 4.1 yrs $363,000 $116,250
174 Vadnais Heights12,838 people 4.1 yrs $363,100 $98,685
175 Map of Inver Grove Heights Inver Grove Heights35,906 people 4.1 yrs $363,400 $101,316
176 Map of East Bethel East Bethel12,115 people 4.1 yrs $363,900 $110,000
177 New Brighton22,710 people 4.1 yrs $364,700 $88,521
178 Wyoming Wyoming8,087 people 4.1 yrs $365,700 $107,565
179 Farmington23,902 people 4.1 yrs $366,200 $123,673
180 Elk River26,793 people 4.2 yrs $370,100 $108,741
181 Map of Apple Valley Apple Valley55,679 people 4.2 yrs $370,400 $97,673
182 Map of Mound Mound9,107 people 4.2 yrs $370,800 $86,675
183 Monticello MonticelloWright County · 3,328 people 4.2 yrs $370,800 $123,200
184 CambridgeIsanti County · 2,534 people 4.2 yrs $372,800 $107,841
185 Blue HillSherburne County · 2,571 people 4.2 yrs $373,300 $108,113
186 Shakopee46,012 people 4.2 yrs $374,800 $107,223
187 Delano Delano6,942 people 4.2 yrs $375,200 $109,946
188 Hopkins18,819 people 4.2 yrs $375,600 $75,234
189 Centerville3,935 people 4.2 yrs $376,900 $122,541
190 Bayport3,905 people 4.2 yrs $376,900 $125,893
191 Newport4,754 people 4.2 yrs $378,100 $71,979
192 Cottage Grove40,992 people 4.3 yrs $378,800 $120,791
193 LinwoodAnoka County · 5,235 people 4.3 yrs $380,100 $115,972
194 Hermantown10,218 people 4.3 yrs $382,300 $90,849
195 PalmerSherburne County · 2,581 people 4.3 yrs $382,700 $120,625
196 Shoreview Shoreview26,714 people 4.3 yrs $383,700 $108,370
197 Falcon Heights Falcon Heights5,085 people 4.3 yrs $384,500 $96,528
198 La GrandDouglas County · 4,281 people 4.3 yrs $384,600 $94,122
199 White BearRamsey County · 10,656 people 4.3 yrs $386,300 $128,963
200 St. Louis Park49,594 people 4.3 yrs $386,800 $101,648
201 St. Anthony9,671 people 4.4 yrs $387,500 $97,363
202 St. Augusta3,625 people 4.4 yrs $388,400 $140,227
203 St. Michael20,010 people 4.4 yrs $390,100 $131,274
204 Map of Alexandria AlexandriaDouglas County · 3,027 people 4.4 yrs $391,500 $93,864
205 Forest Lake Forest Lake20,729 people 4.4 yrs $393,500 $92,944
206 WakefieldStearns County · 2,800 people 4.4 yrs $394,700 $108,333
207 Map of Otsego Otsego22,245 people 4.5 yrs $396,700 $119,927
208 Map of Eagan Eagan68,000 people 4.5 yrs $397,100 $108,690
209 Map of Chaska Chaska28,706 people 4.5 yrs $404,700 $110,956
210 Big Lake Big LakeSherburne County · 8,147 people 4.5 yrs $404,900 $123,077
211 Rockford RockfordWright County · 3,407 people 4.5 yrs $404,900 $93,378
212 Lino Lakes22,113 people 4.6 yrs $407,200 $127,181
213 Orrock OrrockSherburne County · 3,642 people 4.6 yrs $407,300 $126,107
214 Map of Hugo Hugo16,340 people 4.6 yrs $408,900 $116,228
215 Map of Andover Andover33,035 people 4.6 yrs $410,200 $137,593
216 LivoniaSherburne County · 6,308 people 4.6 yrs $411,200 $137,000
217 Chisago City Chisago City5,899 people 4.6 yrs $413,000 $102,197
218 Stillwater Stillwater19,355 people 4.7 yrs $414,200 $105,853
219 MarionOlmsted County · 4,105 people 4.7 yrs $416,100 $116,797
220 Map of Maple Grove Maple Grove71,173 people 4.7 yrs $418,300 $132,731
221 Map of Becker BeckerSherburne County · 5,601 people 4.7 yrs $418,700 $120,917
222 Oak Grove9,130 people 4.8 yrs $423,300 $117,696
223 Rosemount27,562 people 4.8 yrs $424,100 $129,625
224 Map of Waconia Waconia13,434 people 4.8 yrs $431,000 $111,031
225 Golden Valley21,725 people 4.8 yrs $431,400 $108,772
226 Map of Savage Savage32,889 people 4.9 yrs $432,300 $125,513
227 Elko New Market5,002 people 4.9 yrs $433,100 $152,150
228 Chisago LakeChisago County · 4,908 people 4.9 yrs $437,700 $133,220
229 Arden Hills9,658 people 5.0 yrs $441,900 $134,118
230 Ham Lake16,702 people 5.0 yrs $442,500 $120,135
231 Carver Carver6,239 people 5.0 yrs $445,800 $147,697
232 Hanover3,626 people 5.0 yrs $447,900 $156,536
233 Woodbury Woodbury78,305 people 5.1 yrs $450,200 $125,310
234 Prior Lake28,016 people 5.1 yrs $450,700 $134,255
235 Lakeville74,354 people 5.1 yrs $452,500 $139,041
236 Silver CreekWright County · 2,582 people 5.1 yrs $452,600 $115,872
237 CorinnaWright County · 2,559 people 5.1 yrs $457,100 $87,635
238 Rogers13,685 people 5.2 yrs $459,700 $158,750
239 Nowthen Nowthen4,538 people 5.2 yrs $460,000 $160,417
240 Columbus Columbus4,248 people 5.2 yrs $460,200 $123,194
241 CollegevilleStearns County · 3,351 people 5.3 yrs $468,600 $115,909
242 Empire3,092 people 5.3 yrs $469,500 $147,700
243 Map of Crosslake Crosslake2,521 people 5.3 yrs $473,700 $79,635
244 Map of Eden Prairie Eden Prairie63,051 people 5.3 yrs $473,900 $130,489
245 Minnetonka53,064 people 5.3 yrs $475,800 $119,517
246 Scandia3,950 people 5.3 yrs $475,800 $101,953
247 Mahtomedi8,133 people 5.3 yrs $476,000 $123,319
248 Map of Plymouth Plymouth79,220 people 5.5 yrs $491,200 $136,534
249 CascadeOlmsted County · 2,826 people 5.7 yrs $506,800 $150,000
250 Dayton9,095 people 5.7 yrs $511,300 $148,947
251 Mendota Heights11,612 people 5.8 yrs $520,300 $132,768
252 Cedar LakeScott County · 3,061 people 6.1 yrs $543,100 $173,500
253 Chanhassen Chanhassen26,006 people 6.4 yrs $566,300 $143,651
254 Map of Greenfield Greenfield2,894 people 6.4 yrs $567,700 $153,750
255 Map of Corcoran Corcoran7,302 people 6.4 yrs $569,400 $133,423
256 Victoria11,295 people 6.5 yrs $581,200 $195,639
257 Credit River5,551 people 6.7 yrs $595,000 $143,125
258 New MarketScott County · 3,556 people 6.7 yrs $595,300 $130,231
259 Lake Elmo13,140 people 6.7 yrs $597,000 $153,669
260 Spring LakeScott County · 3,478 people 7.1 yrs $629,600 $146,953
261 FranklinWright County · 2,904 people 7.2 yrs $637,800 $112,171
262 Map of Edina Edina53,262 people 7.3 yrs $646,300 $128,767
263 Minnetrista8,708 people 7.4 yrs $658,300 $163,051
264 Map of Independence Independence3,694 people 7.4 yrs $663,400 $186,597
265 Afton2,957 people 7.6 yrs $679,300 $133,305
266 Map of Grant Grant3,950 people 7.7 yrs $683,400 $150,875
267 MayWashington County · 2,637 people 7.7 yrs $685,700 $137,321
268 Shorewood7,647 people 7.9 yrs $703,200 $171,063
269 West LakelandWashington County · 3,941 people 8.0 yrs $709,300 $216,310
270 Map of Medina Medina6,968 people 8.3 yrs $736,700 $230,859
271 Map of North Oaks North Oaks5,179 people 9.2 yrs $821,200 $231,742
272 Map of Excelsior Excelsior2,570 people 10.2 yrs $909,200 $103,068
273 Map of Deephaven Deephaven3,793 people 10.5 yrs $935,900 $197,679
274 Orono8,195 people 11.3 yrs $1,004,500 $173,527
275 Wayzata Wayzata4,354 people 13.0 yrs $1,153,400 $131,614

How this ranking works

We divide each town’s median home value by the MN median household income ($89,062). The result is how many years of a typical paycheck it takes to buy a typical home there. Lower is more affordable. Across Minnesota as a whole it’s 3.7 years.

Why not each town’s own income? That would rank wealthy towns with half-million-dollar homes as “affordable” only because their residents earn so much. One shared income answers the question people actually ask: where could a typical family afford to live?

Only towns with at least 2,500 residents are ranked; Census estimates for smaller places are too uncertain. Population and income: U.S. Census Bureau American Community Survey 5-year estimates. Town photos: Wikimedia Commons, credited on each town’s page.

Same ranking in other states