Guest, Sign inJoin
Height of Land PortageWhite Township, #1 on this list · Height of Land Portage · Photo: McGhiever · CC BY-SA 4.0
Minnesota rankings · Cost of living

Most affordable towns in Minnesota

White Township ranks first on cost of living among Minnesota’s 273 towns of 2,500+; 41 of the 273 grade A− or better on cost of living nationally.

The Cost of living grade: home values, rent and property-tax bills against the income of the town’s metro area or county, and the share of households paying 30%+ of income for housing (Census ACS). How grades work

#1

White Township

St. Louis County · 3,088 people
A+

Cost of living grade, homes cost 1.7 years of area income·Overall B− · #219 of 271 in MN

#2

International Falls

Koochiching County · 5,481 people
A+

Cost of living grade, homes cost 2.4 years of area income·Overall B · #207 of 271 in MN

#3

Jackson

Jackson County · 3,305 people
A+

Cost of living grade, homes cost 2.8 years of area income·Overall A · #76 of 271 in MN

All 273 towns

Cost of living grade, best first (the letter is national). Towns with the same score share a rank; the overall grade and state rank are beside each.

273 towns ranked. Not here? See why a town may be missing.

#TownGradeHome price · overall
1White TownshipSt. Louis County · 3,088 peopleA+1.7 years of area income·Overall B− · #219 of 271
2International FallsKoochiching County · 5,481 peopleA+2.4 years of area income·Overall B · #207 of 271
3JacksonJackson County · 3,305 peopleA+2.8 years of area income·Overall A · #76 of 271
4BreckenridgeWilkin County · 3,323 peopleA2.7 years of area income·Overall B · #205 of 271
5AnnandaleWright County · 3,801 peopleA4.1 years of area income·Overall A+ · #17 of 271
6ChisholmSt. Louis County · 4,625 peopleA1.9 years of area income·Overall C+ · #237 of 271
7VirginiaSt. Louis County · 8,187 peopleA1.8 years of area income·Overall C+ · #244 of 271
8Dodge CenterDodge County · 2,951 peopleA3.2 years of area income·Overall A+ · #8 of 271
9PipestonePipestone County · 4,100 peopleA2.3 years of area income·Overall B+ · #166 of 271
10PaynesvilleStearns County · 2,591 peopleA2.9 years of area income·Overall A+ · #27 of 271
11LuverneRock County · 4,984 peopleA3.1 years of area income·Overall A+ · #32 of 271
12WindomCottonwood County · 4,817 peopleA2.5 years of area income·Overall B+ · #173 of 271
13HibbingSt. Louis County · 15,823 peopleA2.3 years of area income·Overall A− · #121 of 271
14Le CenterLe Sueur County · 2,524 peopleA3.3 years of area income·Overall A+ · #36 of 271
15EvelethSt. Louis County · 3,381 peopleA2.5 years of area income·Overall C+ · #242 of 271
16Sleepy EyeBrown County · 3,461 peopleA2.6 years of area income·Overall A− · #105 of 271
17ChatfieldFillmore County · 3,018 peopleA3.9 years of area income·Overall A+ · #1 of 271
18Granite FallsYellow Medicine County · 2,691 peopleA2.1 years of area income·Overall B · #193 of 271
19Mountain IronSt. Louis County · 2,835 peopleA2.9 years of area income·Overall A− · #99 of 271
20WabashaWabasha County · 2,599 peopleA−3.2 years of area income·Overall B+ · #178 of 271
21St. JamesWatonwan County · 4,863 peopleA−2.2 years of area income·Overall B · #196 of 271
22CaledoniaHouston County · 2,768 peopleA−4.0 years of area income·Overall A+ · #4 of 271
23PlainviewWabasha County · 3,482 peopleA−3.1 years of area income·Overall A+ · #5 of 271
24StaplesTodd County · 3,074 peopleA−3.2 years of area income·Overall B− · #212 of 271
25BarnesvilleClay County · 2,767 peopleA−4.0 years of area income·Overall A+ · #2 of 271
26MilacaMille Lacs County · 3,041 peopleA−2.4 years of area income·Overall B · #189 of 271
27MontevideoChippewa County · 5,335 peopleA−3.0 years of area income·Overall A− · #111 of 271
28Blue Hill TownshipSherburne County · 2,625 peopleA−3.7 years of area income·Overall B+ · #159 of 271
29Blue EarthFaribault County · 3,165 peopleA−2.7 years of area income·Overall B+ · #169 of 271
30PrincetonMille Lacs County · 5,480 peopleA−3.7 years of area income·Overall B+ · #151 of 271
31ElySt. Louis County · 3,231 peopleA−3.9 years of area income·Overall A− · #116 of 271
32Albert LeaFreeborn County · 18,217 peopleA−2.5 years of area income·Overall C+ · #246 of 271
33Thief River FallsPennington County · 8,799 peopleA−2.4 years of area income·Overall B · #182 of 271
34Lake CityWabasha County · 5,306 peopleA−3.5 years of area income·Overall A · #45 of 271
35AustinMower County · 26,689 peopleA−2.6 years of area income·Overall C · #250 of 271
36CokatoWright County · 2,793 peopleA−3.3 years of area income·Overall A · #49 of 271
37RoseauRoseau County · 2,685 peopleA−3.2 years of area income·Overall B · #195 of 271
38Moose LakeCarlton County · 2,948 peopleA−4.0 years of area income·Overall C · #258 of 271
39WatertownCarver County · 4,789 peopleA−3.8 years of area income·Overall A+ · #21 of 271
40MontgomeryLe Sueur County · 3,539 peopleA−3.2 years of area income·Overall A+ · #15 of 271
41WadenaWadena County · 4,341 peopleA−3.5 years of area income·Overall C · #255 of 271
42BeckerSherburne County · 5,425 peopleB+3.8 years of area income·Overall A · #39 of 271
43StacyChisago County · 4,367 peopleB+4.2 years of area income·Overall A− · #104 of 271
44StewartvilleOlmsted County · 6,850 peopleB+3.7 years of area income·Overall A · #57 of 271
45New London TownshipKandiyohi County · 2,965 peopleB+4.6 years of area income·Overall A+ · #34 of 271
46Empire3,063 peopleB+3.2 years of area income·No overall grade
47Rush CityChisago County · 3,300 peopleB+2.7 years of area income·Overall B− · #220 of 271
48St. FrancisAnoka County · 8,635 peopleB+3.5 years of area income·Overall A− · #110 of 271
49MarshallLyon County · 14,171 peopleB+3.3 years of area income·Overall B · #184 of 271
50RockfordWright County · 4,827 peopleB+3.6 years of area income·Overall A · #46 of 271
51Fergus FallsOtter Tail County · 14,246 peopleB+2.8 years of area income·Overall B · #208 of 271
52MorrisStevens County · 5,150 peopleB+2.9 years of area income·Overall A+ · #38 of 271
53Pelican RapidsOtter Tail County · 2,608 peopleB+5.3 years of area income·Overall A− · #126 of 271
54MontroseWright County · 3,986 peopleB+3.3 years of area income·Overall A− · #100 of 271
55WasecaWaseca County · 9,035 peopleB+3.3 years of area income·Overall B− · #213 of 271
56LitchfieldMeeker County · 6,528 peopleB+3.5 years of area income·Overall B+ · #176 of 271
57Redwood FallsRedwood County · 5,040 peopleB+2.6 years of area income·Overall B− · #216 of 271
58WillmarKandiyohi County · 22,001 peopleB+3.2 years of area income·Overall C · #256 of 271
59ZumbrotaGoodhue County · 4,072 peopleB+3.9 years of area income·Overall A+ · #12 of 271
60AlbanyStearns County · 2,873 peopleB+4.6 years of area income·Overall A+ · #14 of 271
61IsantiIsanti County · 7,714 peopleB+3.3 years of area income·Overall A · #70 of 271
62BrainerdCrow Wing County · 14,428 peopleB+4.4 years of area income·Overall C+ · #238 of 271
63Pine CityPine County · 3,820 peopleB+3.5 years of area income·Overall C · #252 of 271
64CrookstonPolk County · 7,375 peopleB+2.7 years of area income·Overall C+ · #240 of 271
65Le SueurLe Sueur County · 4,210 peopleB+3.0 years of area income·Overall A · #90 of 271
66HastingsDakota County · 22,563 peopleB3.8 years of area income·Overall A · #69 of 271
67Bradford TownshipIsanti County · 3,549 peopleB3.4 years of area income·Overall B− · #215 of 271
68Long PrairieTodd County · 3,830 peopleB3.8 years of area income·Overall B− · #224 of 271
69Monticello TownshipWright County · 3,374 peopleB3.7 years of area income·Overall A · #52 of 271
70GlenwoodPope County · 2,631 peopleB3.1 years of area income·Overall A− · #135 of 271
71GlencoeMcLeod County · 5,632 peopleB3.2 years of area income·Overall B+ · #179 of 271
72Big LakeSherburne County · 12,929 peopleB3.8 years of area income·Overall A · #43 of 271
73AlbertvilleWright County · 8,544 peopleB3.9 years of area income·Overall A+ · #6 of 271
74GoodviewWinona County · 4,122 peopleB3.6 years of area income·Overall A · #58 of 271
75PerhamOtter Tail County · 3,746 peopleB5.2 years of area income·Overall B · #202 of 271
76Watab TownshipBenton County · 3,478 peopleB4.2 years of area income·Overall B+ · #172 of 271
77MoraKanabec County · 3,763 peopleB3.3 years of area income·Overall B · #192 of 271
78South St. PaulDakota County · 20,532 peopleB3.0 years of area income·Overall B · #206 of 271
79HutchinsonMcLeod County · 14,655 peopleB3.7 years of area income·Overall B+ · #147 of 271
80New UlmBrown County · 13,863 peopleB3.6 years of area income·Overall A · #78 of 271
81WinonaWinona County · 26,530 peopleB3.7 years of area income·Overall B− · #230 of 271
82Little FallsMorrison County · 9,277 peopleB4.1 years of area income·Overall C− · #264 of 271
83Red WingGoodhue County · 16,805 peopleB3.3 years of area income·Overall C · #254 of 271
84Ham LakeAnoka County · 17,104 peopleB5.1 years of area income·Overall A · #83 of 271
85JordanScott County · 6,988 peopleB4.4 years of area income·Overall A · #66 of 271
86MayerCarver County · 2,563 peopleB3.9 years of area income·Overall A− · #97 of 271
87LindstromChisago County · 5,039 peopleB3.9 years of area income·Overall A · #53 of 271
88Circle PinesAnoka County · 4,967 peopleB3.1 years of area income·Overall A+ · #24 of 271
89SandstonePine County · 2,543 peopleB3.3 years of area income·Overall C− · #267 of 271
90Linwood TownshipAnoka County · 5,403 peopleB3.8 years of area income·Overall B+ · #170 of 271
91St. CharlesWinona County · 4,090 peopleB4.9 years of area income·Overall A+ · #29 of 271
92WyomingChisago County · 8,121 peopleB3.9 years of area income·Overall A · #41 of 271
93Norwood Young AmericaCarver County · 3,777 peopleB3.5 years of area income·Overall A− · #120 of 271
94FairmontMartin County · 10,099 peopleB2.9 years of area income·Overall C+ · #233 of 271
95FoleyBenton County · 2,650 peopleB3.4 years of area income·Overall B+ · #171 of 271
96AnokaAnoka County · 18,169 peopleB3.3 years of area income·Overall B+ · #163 of 271
97Two HarborsLake County · 3,443 peopleB3.9 years of area income·Overall A− · #137 of 271
98MelroseStearns County · 3,888 peopleB3.0 years of area income·Overall A− · #118 of 271
99Marion TownshipOlmsted County · 4,111 peopleB4.5 years of area income·Overall B+ · #157 of 271
100St. JosephStearns County · 6,846 peopleB4.3 years of area income·Overall B− · #210 of 271
101North MankatoNicollet County · 14,165 peopleB4.1 years of area income·Overall A− · #98 of 271
102Palmer TownshipSherburne County · 2,633 peopleB3.8 years of area income·Overall B− · #222 of 271
103DelanoWright County · 7,788 peopleB4.4 years of area income·Overall A+ · #16 of 271
104FarmingtonDakota County · 25,425 peopleB4.0 years of area income·Overall A+ · #37 of 271
105Silver Creek TownshipWright County · 2,620 peopleB4.5 years of area income·Overall A · #85 of 271
106CentervilleAnoka County · 3,978 peopleB−4.1 years of area income·Overall A+ · #10 of 271
107FaribaultRice County · 25,040 peopleB−3.6 years of area income·Overall C− · #268 of 271
108Sauk RapidsBenton County · 13,768 peopleB−4.0 years of area income·Overall B+ · #175 of 271
109MonticelloWright County · 15,670 peopleB−3.3 years of area income·Overall A · #63 of 271
110OwatonnaSteele County · 26,633 peopleB−3.5 years of area income·Overall B+ · #177 of 271
111Bemidji TownshipBeltrami County · 4,031 peopleB−3.6 years of area income·Overall B− · #229 of 271
112New PragueScott County · 8,238 peopleB−3.5 years of area income·Overall A+ · #7 of 271
113St. Paul ParkWashington County · 5,396 peopleB−3.2 years of area income·Overall A · #77 of 271
114Sylvan TownshipCass County · 3,030 peopleB−4.2 years of area income·Overall A− · #136 of 271
115Cambridge TownshipIsanti County · 2,592 peopleB−3.7 years of area income·Overall B · #200 of 271
116Columbia HeightsAnoka County · 22,482 peopleB−3.0 years of area income·Overall C · #260 of 271
117East BethelAnoka County · 12,605 peopleB−4.2 years of area income·Overall B+ · #160 of 271
118Alexandria TownshipDouglas County · 3,114 peopleB−5.0 years of area income·Overall A · #87 of 271
119St. CloudStearns County · 72,647 peopleB−3.4 years of area income·Overall C− · #269 of 271
120FridleyAnoka County · 30,829 peopleB−3.2 years of area income·Overall C · #251 of 271
121Mounds ViewRamsey County · 12,786 peopleB−3.4 years of area income·Overall A · #88 of 271
122MoundHennepin County · 9,064 peopleB−3.9 years of area income·Overall A+ · #18 of 271
123BuffaloWright County · 16,878 peopleB−3.8 years of area income·Overall A · #64 of 271
124Spring Lake ParkAnoka County · 7,127 peopleB−3.2 years of area income·Overall B · #204 of 271
125St. AugustaStearns County · 3,799 peopleB−4.9 years of area income·Overall B · #187 of 271
126Sauk CentreStearns County · 4,663 peopleB−4.1 years of area income·Overall B− · #221 of 271
127Park RapidsHubbard County · 4,447 peopleB−4.5 years of area income·Overall C− · #265 of 271
128KassonDodge County · 7,350 peopleB−3.6 years of area income·Overall A+ · #22 of 271
129ByronOlmsted County · 6,740 peopleB−4.4 years of area income·Overall A+ · #9 of 271
130AlexandriaDouglas County · 15,045 peopleB−4.0 years of area income·Overall B+ · #144 of 271
131CohassetItasca County · 2,728 peopleB−5.0 years of area income·Overall C+ · #235 of 271
132WorthingtonNobles County · 13,979 peopleB−3.8 years of area income·Overall C− · #266 of 271
133CambridgeIsanti County · 11,090 peopleB−3.3 years of area income·Overall B · #197 of 271
134Elk RiverSherburne County · 27,896 peopleB−4.0 years of area income·Overall A · #48 of 271
135St. PeterNicollet County · 12,275 peopleB−3.9 years of area income·Overall A− · #124 of 271
136Coon RapidsAnoka County · 64,193 peopleB−3.3 years of area income·Overall B+ · #174 of 271
137North BranchChisago County · 12,398 peopleB−3.6 years of area income·Overall B+ · #146 of 271
138St. MichaelWright County · 22,498 peopleB−4.4 years of area income·Overall A+ · #26 of 271
139CrystalHennepin County · 22,239 peopleB−3.2 years of area income·Overall B · #201 of 271
140Harris TownshipItasca County · 3,364 peopleB−4.4 years of area income·Overall B− · #226 of 271
141La Grand TownshipDouglas County · 4,309 peopleB−4.9 years of area income·Overall A− · #131 of 271
142West St. PaulDakota County · 21,950 peopleB−3.2 years of area income·Overall B− · #217 of 271
143Rockford TownshipWright County · 3,474 peopleB−4.1 years of area income·Overall A− · #107 of 271
144LonsdaleRice County · 5,117 peopleB−4.5 years of area income·Overall A+ · #19 of 271
145CarverCarver County · 7,198 peopleB−5.0 years of area income·Overall A · #40 of 271
146ZimmermanSherburne County · 6,904 peopleB−3.4 years of area income·Overall A− · #119 of 271
147Chisago Lake TownshipChisago County · 4,958 peopleB−4.4 years of area income·Overall A− · #103 of 271
148Orrock TownshipSherburne County · 3,698 peopleB−4.1 years of area income·Overall A− · #141 of 271
149Brooklyn CenterHennepin County · 31,846 peopleB−3.0 years of area income·Overall C · #261 of 271
150BensonSwift County · 3,444 peopleC+3.2 years of area income·Overall C+ · #232 of 271
151Credit River5,644 peopleC+4.2 years of area income·No overall grade
152Brooklyn ParkHennepin County · 83,543 peopleC+3.5 years of area income·Overall B · #199 of 271
153Corinna TownshipWright County · 2,596 peopleC+4.6 years of area income·Overall A− · #134 of 271
154OakdaleWashington County · 30,588 peopleC+3.6 years of area income·Overall B · #186 of 271
155Livonia TownshipSherburne County · 6,436 peopleC+4.1 years of area income·Overall A · #65 of 271
156North St. PaulRamsey County · 12,780 peopleC+3.2 years of area income·Overall B− · #227 of 271
157NowthenAnoka County · 4,630 peopleC+4.6 years of area income·Overall A · #55 of 271
158Cannon FallsGoodhue County · 4,209 peopleC+3.4 years of area income·Overall A− · #128 of 271
159St. PaulRamsey County · 306,684 peopleC+2.9 years of area income·Overall C · #259 of 271
160Big Lake TownshipSherburne County · 8,283 peopleC+4.1 years of area income·Overall A− · #106 of 271
161Inver Grove HeightsDakota County · 36,873 peopleC+3.7 years of area income·Overall A · #89 of 271
162BayportWashington County · 3,721 peopleC+4.4 years of area income·Overall A+ · #25 of 271
163Little CanadaRamsey County · 10,567 peopleC+3.6 years of area income·Overall B+ · #145 of 271
164OsseoHennepin County · 2,534 peopleC+3.0 years of area income·Overall B · #191 of 271
165Oak GroveAnoka County · 9,476 peopleC+4.7 years of area income·Overall B · #181 of 271
166La CrescentHouston County · 5,261 peopleC+4.9 years of area income·Overall A · #71 of 271
167RochesterOlmsted County · 124,292 peopleC+3.7 years of area income·Overall B · #188 of 271
168BlaineAnoka County · 76,603 peopleC+3.8 years of area income·Overall B+ · #156 of 271
169NewportWashington County · 5,525 peopleC+3.4 years of area income·Overall B · #185 of 271
170CloquetCarlton County · 12,399 peopleC+3.7 years of area income·Overall B− · #228 of 271
171Detroit LakesBecker County · 10,019 peopleC+5.2 years of area income·Overall C+ · #243 of 271
172MaplewoodRamsey County · 40,717 peopleC+3.4 years of area income·Overall C+ · #236 of 271
173LexingtonAnoka County · 3,081 peopleC+3.2 years of area income·Overall A− · #139 of 271
174Belle PlaineScott County · 7,632 peopleC+3.5 years of area income·Overall A− · #129 of 271
175MoorheadClay County · 46,533 peopleC+3.8 years of area income·Overall C · #249 of 271
176Vadnais HeightsRamsey County · 13,052 peopleC+3.7 years of area income·Overall A · #94 of 271
177Falcon HeightsRamsey County · 5,071 peopleC+4.1 years of area income·Overall A · #62 of 271
178RosemountDakota County · 31,881 peopleC+4.3 years of area income·Overall A+ · #13 of 271
179ProctorSt. Louis County · 3,054 peopleC+3.7 years of area income·Overall A− · #113 of 271
180White Bear TownshipRamsey County · 10,399 peopleC+3.9 years of area income·Overall A · #68 of 271
181Chisago CityChisago County · 5,955 peopleC+4.4 years of area income·Overall A− · #140 of 271
182BemidjiBeltrami County · 15,770 peopleC+3.1 years of area income·Overall D · #270 of 271
183DilworthClay County · 4,823 peopleC+3.8 years of area income·Overall B · #209 of 271
184Forest LakeWashington County · 20,952 peopleC+4.3 years of area income·Overall B+ · #168 of 271
185RichfieldHennepin County · 36,593 peopleC+3.4 years of area income·Overall B · #203 of 271
186ScandiaWashington County · 3,979 peopleC+5.5 years of area income·Overall B+ · #152 of 271
187Pine IslandGoodhue County · 3,911 peopleC+4.5 years of area income·Overall A− · #114 of 271
188WaconiaCarver County · 14,113 peopleC+4.7 years of area income·Overall A+ · #31 of 271
189RosevilleRamsey County · 35,663 peopleC+3.7 years of area income·Overall B− · #218 of 271
190AndoverAnoka County · 33,874 peopleC+4.5 years of area income·Overall A− · #112 of 271
191ShakopeeScott County · 49,366 peopleC+4.1 years of area income·Overall B+ · #150 of 271
192Waite ParkStearns County · 8,450 peopleC+3.3 years of area income·Overall D · #271 of 271
193RobbinsdaleHennepin County · 14,030 peopleC3.1 years of area income·Overall C+ · #241 of 271
194Eagle LakeBlue Earth County · 3,357 peopleC4.5 years of area income·Overall B+ · #167 of 271
195Cottage GroveWashington County · 43,604 peopleC4.0 years of area income·Overall A · #50 of 271
196MankatoBlue Earth County · 46,529 peopleC4.0 years of area income·Overall C+ · #239 of 271
197New HopeHennepin County · 20,807 peopleC3.5 years of area income·Overall C+ · #231 of 271
198ChamplinHennepin County · 23,125 peopleC3.7 years of area income·Overall A · #91 of 271
199BurnsvilleDakota County · 65,244 peopleC3.7 years of area income·Overall C+ · #234 of 271
200RamseyAnoka County · 29,624 peopleC3.9 years of area income·Overall A · #84 of 271
201Thomson TownshipCarlton County · 5,624 peopleC4.7 years of area income·Overall A · #81 of 271
202Brockway TownshipStearns County · 3,016 peopleC4.7 years of area income·Overall A− · #123 of 271
203Breezy PointCrow Wing County · 2,771 peopleC5.7 years of area income·Overall A− · #132 of 271
204ColumbusAnoka County · 4,356 peopleC4.8 years of area income·Overall B+ · #158 of 271
205White Bear LakeRamsey County · 23,392 peopleC3.6 years of area income·Overall A− · #122 of 271
206West Lakeland TownshipWashington County · 3,931 peopleC7.1 years of area income·Overall A · #60 of 271
207Cedar Lake TownshipScott County · 3,080 peopleC5.4 years of area income·Overall A− · #115 of 271
208NorthfieldRice County · 21,992 peopleC4.7 years of area income·Overall A− · #102 of 271
209BloomingtonHennepin County · 89,034 peopleC3.6 years of area income·Overall B− · #225 of 271
210East Grand ForksPolk County · 8,906 peopleC4.3 years of area income·Overall B+ · #148 of 271
211EaganDakota County · 67,109 peopleC4.0 years of area income·Overall A− · #108 of 271
212Grand RapidsItasca County · 11,181 peopleC4.1 years of area income·Overall B− · #211 of 271
213ChaskaCarver County · 30,513 peopleC4.8 years of area income·Overall A+ · #33 of 271
214New BrightonRamsey County · 22,159 peopleC3.8 years of area income·Overall A · #73 of 271
215DaytonHennepin County · 11,402 peopleC5.2 years of area income·Overall A · #80 of 271
216ShoreviewRamsey County · 26,906 peopleC4.1 years of area income·Overall A · #42 of 271
217Cascade TownshipOlmsted County · 2,810 peopleC5.5 years of area income·Overall B · #183 of 271
218OtsegoWright County · 24,525 peopleC4.3 years of area income·Overall A · #82 of 271
219DuluthSt. Louis County · 88,330 peopleC4.1 years of area income·Overall C · #253 of 271
220HugoWashington County · 17,167 peopleC4.4 years of area income·Overall A− · #127 of 271
221Pokegama TownshipPine County · 2,884 peopleC4.4 years of area income·Overall C− · #263 of 271
222Wakefield TownshipStearns County · 2,829 peopleC5.2 years of area income·Overall B · #194 of 271
223MinneapolisHennepin County · 430,324 peopleC3.3 years of area income·Overall C · #262 of 271
224Apple ValleyDakota County · 55,248 peopleC3.8 years of area income·Overall A− · #143 of 271
225StillwaterWashington County · 19,354 peopleC4.5 years of area income·Overall A · #67 of 271
226Oak Park HeightsWashington County · 4,625 peopleC3.5 years of area income·Overall B+ · #165 of 271
227RogersHennepin County · 15,606 peopleC4.6 years of area income·Overall A · #95 of 271
228DeephavenHennepin County · 3,794 peopleC10.9 years of area income·Overall A+ · #3 of 271
229Northern TownshipBeltrami County · 3,701 peopleC4.6 years of area income·Overall C+ · #248 of 271
230Prior LakeScott County · 28,140 peopleC5.3 years of area income·Overall A · #74 of 271
231HanoverWright County · 4,392 peopleC4.6 years of area income·Overall A− · #101 of 271
232LakevilleDakota County · 79,270 peopleC4.9 years of area income·Overall A+ · #30 of 271
233Maple GroveHennepin County · 73,893 peopleC4.2 years of area income·Overall B+ · #161 of 271
234Mendota HeightsDakota County · 11,475 peopleC5.7 years of area income·Overall A− · #109 of 271
235May TownshipWashington County · 2,638 peopleC6.9 years of area income·Overall B+ · #149 of 271
236Elko New MarketScott County · 5,300 peopleC4.8 years of area income·Overall A · #93 of 271
237St. Louis ParkHennepin County · 50,027 peopleC3.8 years of area income·Overall B · #180 of 271
238Lino LakesAnoka County · 23,220 peopleC4.6 years of area income·Overall A · #96 of 271
239MedinaHennepin County · 7,460 peopleC8.4 years of area income·Overall A+ · #11 of 271
240Arden HillsRamsey County · 9,583 peopleC4.8 years of area income·Overall A+ · #28 of 271
241VictoriaCarver County · 12,447 peopleC−6.2 years of area income·Overall A+ · #20 of 271
242GreenfieldHennepin County · 2,962 peopleC−6.0 years of area income·Overall A− · #142 of 271
243SartellStearns County · 19,918 peopleC−4.4 years of area income·Overall B+ · #153 of 271
244SavageScott County · 32,970 peopleC−4.3 years of area income·Overall A− · #133 of 271
245Cold SpringStearns County · 4,329 peopleC−4.7 years of area income·Overall B− · #223 of 271
246St. AnthonyHennepin County · 9,989 peopleC−4.0 years of area income·Overall A− · #125 of 271
247HopkinsHennepin County · 19,523 peopleC−3.3 years of area income·Overall B · #198 of 271
248Rice LakeSt. Louis County · 4,169 peopleC−4.3 years of area income·Overall B− · #214 of 271
249PlymouthHennepin County · 78,942 peopleC−5.1 years of area income·Overall A+ · #23 of 271
250Eden PrairieHennepin County · 63,075 peopleC−5.0 years of area income·Overall A · #54 of 271
251WoodburyWashington County · 81,558 peopleC−4.6 years of area income·Overall A · #92 of 271
252Grand Lake TownshipSt. Louis County · 2,705 peopleC−4.6 years of area income·Overall C+ · #247 of 271
253CorcoranHennepin County · 9,269 peopleC−6.1 years of area income·Overall A · #44 of 271
254MahtomediWashington County · 8,189 peopleC−4.9 years of area income·Overall A · #51 of 271
255BaxterCrow Wing County · 9,217 peopleC−5.2 years of area income·Overall C+ · #245 of 271
256ChanhassenCarver County · 25,748 peopleC−5.7 years of area income·Overall A · #72 of 271
257MinnetonkaHennepin County · 53,969 peopleC−4.9 years of area income·Overall A · #75 of 271
258IndependenceHennepin County · 3,763 peopleC−8.1 years of area income·Overall A · #61 of 271
259Spring Lake TownshipScott County · 3,498 peopleC−6.3 years of area income·Overall B+ · #154 of 271
260Golden ValleyHennepin County · 21,325 peopleC−4.4 years of area income·Overall B+ · #155 of 271
261Franklin TownshipWright County · 2,939 peopleD6.4 years of area income·Overall A− · #130 of 271
262New Market TownshipScott County · 3,574 peopleD6.0 years of area income·Overall B+ · #164 of 271
263GrantWashington County · 3,954 peopleD7.3 years of area income·Overall A · #86 of 271
264Lake ElmoWashington County · 14,376 peopleD6.4 years of area income·Overall A− · #117 of 271
265MinnetristaHennepin County · 9,458 peopleD6.9 years of area income·Overall A+ · #35 of 271
266AftonWashington County · 2,960 peopleD7.3 years of area income·Overall B+ · #162 of 271
267ShorewoodHennepin County · 7,620 peopleD8.3 years of area income·Overall A · #47 of 271
268EdinaHennepin County · 54,356 peopleD6.3 years of area income·Overall A · #79 of 271
269HermantownSt. Louis County · 10,110 peopleD5.9 years of area income·Overall B · #190 of 271
270Collegeville TownshipStearns County · 3,262 peopleD6.1 years of area income·Overall C · #257 of 271
271OronoHennepin County · 8,301 peopleD11.5 years of area income·Overall A · #56 of 271
272WayzataHennepin County · 4,344 peopleD−9.4 years of area income·Overall A · #59 of 271
273North OaksRamsey County · 5,283 peopleD−9.5 years of area income·Overall A− · #138 of 271
Not ranked

1 town without a cost of living grade

Towns of 2,500+ that don’t have the figures this grade needs. Each town’s page says which ones are missing.

Quick answers

Questions people ask

What is the most affordable town in Minnesota?

White Township (St. Louis County) ranks first on cost of living among 273 towns, with an A+; International Falls and Jackson follow.

How are these towns ranked?

The Cost of living grade: home values, rent and property-tax bills against the income of the town’s metro area or county, and the share of households paying 30%+ of income for housing (Census ACS). Towns are sorted on the grade’s score; the letter and rank are the same as on each town’s page. How grades work.

Why isn’t my town on this list?

The list covers towns of 2,500+ residents with a cost of living grade (273 in Minnesota). 1 town of 2,500+ lack the figures and is listed above. Smaller towns have the grade on their page but no rank. Every town is on the Minnesota page.

Go deeper

More Minnesota lists

Every list ranks the same 2,500+ towns, so a town’s rank means the same thing on each.

All Minnesota rankings →
Other states

Most affordable towns in other states