Guest, Sign inJoin
Emmetsburg IowaEmmetsburg, #1 on this list · Photo: David Morris · CC BY 2.0
Iowa rankings · Cost of living

Most affordable towns in Iowa

Emmetsburg ranks first on cost of living among Iowa’s 140 towns of 2,500+; 47 of the 140 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

Emmetsburg

Palo Alto County · 3,684 people
A+

Cost of living grade, homes cost 2.3 years of area income·Overall A · #32 of 140 in IA

#2

Osage

Mitchell County · 3,552 people
A+

Cost of living grade, homes cost 2.9 years of area income·Overall A+ · #16 of 140 in IA

#3

Missouri Valley

Harrison County · 2,616 people
A+

Cost of living grade, homes cost 2.8 years of area income·Overall B · #73 of 140 in IA

All 140 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.

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

#TownGradeHome price · overall
1EmmetsburgPalo Alto County · 3,684 peopleA+2.3 years of area income·Overall A · #32 of 140
2OsageMitchell County · 3,552 peopleA+2.9 years of area income·Overall A+ · #16 of 140
3Missouri ValleyHarrison County · 2,616 peopleA+2.8 years of area income·Overall B · #73 of 140
4HamptonFranklin County · 4,264 peopleA2.4 years of area income·Overall B− · #87 of 140
5PerryDallas County · 8,208 peopleA2.0 years of area income·Overall C+ · #93 of 140
6CherokeeCherokee County · 5,122 peopleA2.1 years of area income·Overall B · #70 of 140
7HawardenSioux County · 2,665 peopleA2.2 years of area income·Overall B · #71 of 140
8CrescoHoward County · 3,925 peopleA3.1 years of area income·Overall A · #22 of 140
9MonticelloJones County · 4,104 peopleA3.1 years of area income·Overall A · #27 of 140
10CharitonLucas County · 4,347 peopleA2.5 years of area income·Overall C · #101 of 140
11ClarionWright County · 2,758 peopleA2.2 years of area income·Overall B+ · #67 of 140
12Webster CityHamilton County · 7,815 peopleA2.1 years of area income·Overall B− · #91 of 140
13TamaTama County · 3,011 peopleA2.0 years of area income·Overall D · #131 of 140
14MitchellvillePolk County · 2,671 peopleA3.1 years of area income·Overall A+ · #3 of 140
15Forest CityWinnebago County · 4,143 peopleA2.7 years of area income·Overall A+ · #14 of 140
16WaukonAllamakee County · 3,849 peopleA3.5 years of area income·Overall A+ · #13 of 140
17MaquoketaJackson County · 6,027 peopleA2.7 years of area income·Overall C− · #124 of 140
18New HamptonChickasaw County · 3,420 peopleA2.4 years of area income·Overall A− · #55 of 140
19Charles CityFloyd County · 7,013 peopleA2.1 years of area income·Overall C− · #111 of 140
20TiptonCedar County · 3,060 peopleA3.0 years of area income·Overall A− · #38 of 140
21EldoraHardin County · 2,593 peopleA1.6 years of area income·Overall C− · #112 of 140
22Rock RapidsLyon County · 2,733 peopleA3.4 years of area income·Overall A · #20 of 140
23CarrollCarroll County · 10,085 peopleA2.9 years of area income·Overall A− · #40 of 140
24KnoxvilleMarion County · 7,469 peopleA−2.6 years of area income·Overall C+ · #95 of 140
25DenisonCrawford County · 8,214 peopleA−2.7 years of area income·Overall B− · #90 of 140
26EsthervilleEmmet County · 5,807 peopleA−2.0 years of area income·Overall B · #78 of 140
27IndependenceBuchanan County · 6,312 peopleA−2.7 years of area income·Overall A− · #52 of 140
28BloomfieldDavis County · 2,785 peopleA−3.0 years of area income·Overall B · #79 of 140
29Le MarsPlymouth County · 10,760 peopleA−3.4 years of area income·Overall A− · #41 of 140
30ManchesterDelaware County · 5,357 peopleA−3.1 years of area income·Overall C+ · #98 of 140
31Eagle GroveWright County · 3,653 peopleA−1.7 years of area income·Overall C− · #122 of 140
32MarshalltownMarshall County · 27,536 peopleA−2.4 years of area income·Overall C− · #113 of 140
33Fort MadisonLee County · 9,935 peopleA−1.8 years of area income·Overall D · #125 of 140
34Carter LakePottawattamie County · 3,670 peopleA−2.5 years of area income·Overall D · #126 of 140
35ClarindaPage County · 5,273 peopleA−2.3 years of area income·Overall C · #109 of 140
36Storm LakeBuena Vista County · 11,590 peopleA−2.5 years of area income·Overall C · #108 of 140
37OskaloosaMahaska County · 11,493 peopleA−2.7 years of area income·Overall B− · #80 of 140
38HumboldtHumboldt County · 4,675 peopleA−2.6 years of area income·Overall B− · #86 of 140
39Center PointLinn County · 2,572 peopleA−4.1 years of area income·Overall A+ · #5 of 140
40HarlanShelby County · 4,859 peopleA−2.8 years of area income·Overall B+ · #60 of 140
41NewtonJasper County · 15,741 peopleA−2.4 years of area income·Overall C · #105 of 140
42GarnerHancock County · 3,029 peopleA−3.2 years of area income·Overall A− · #34 of 140
43SibleyOsceola County · 2,762 peopleA−2.5 years of area income·Overall C · #106 of 140
44Orange CitySioux County · 6,468 peopleA−3.7 years of area income·Overall A+ · #1 of 140
45ClintonClinton County · 24,049 peopleA−2.0 years of area income·Overall C− · #121 of 140
46CamancheClinton County · 4,557 peopleA−3.1 years of area income·Overall B · #75 of 140
47CarlisleWarren County · 4,532 peopleA−3.4 years of area income·Overall A · #24 of 140
48Mason CityCerro Gordo County · 26,853 peopleB+2.3 years of area income·Overall C− · #110 of 140
49Grundy CenterGrundy County · 2,814 peopleB+2.8 years of area income·Overall A+ · #4 of 140
50Fort DodgeWebster County · 24,837 peopleB+1.9 years of area income·Overall D · #132 of 140
51JesupBuchanan County · 2,557 peopleB+3.3 years of area income·Overall A− · #54 of 140
52AlbiaMonroe County · 3,599 peopleB+2.5 years of area income·Overall B+ · #69 of 140
53ShenandoahPage County · 4,808 peopleB+2.3 years of area income·Overall C · #102 of 140
54JeffersonGreene County · 4,150 peopleB+2.8 years of area income·Overall C+ · #94 of 140
55AlgonaKossuth County · 5,309 peopleB+2.7 years of area income·Overall A− · #51 of 140
56BurlingtonDes Moines County · 23,336 peopleB+2.0 years of area income·Overall C− · #118 of 140
57MadridBoone County · 2,820 peopleB+3.9 years of area income·Overall A− · #56 of 140
58OttumwaWapello County · 25,319 peopleB+1.9 years of area income·Overall D · #139 of 140
59MilfordDickinson County · 3,209 peopleB+3.9 years of area income·Overall A− · #50 of 140
60Iowa FallsHardin County · 5,013 peopleB+2.1 years of area income·Overall C · #100 of 140
61VintonBenton County · 5,004 peopleB+3.1 years of area income·Overall A− · #48 of 140
62BooneBoone County · 12,471 peopleB+2.9 years of area income·Overall B+ · #65 of 140
63Rock ValleySioux County · 4,188 peopleB+3.6 years of area income·Overall A+ · #17 of 140
64CrestonUnion County · 7,335 peopleB+2.7 years of area income·Overall B− · #84 of 140
65WilliamsburgIowa County · 3,408 peopleB+3.8 years of area income·Overall A− · #37 of 140
66WiltonMuscatine County · 2,892 peopleB+3.3 years of area income·Overall B+ · #63 of 140
67GlenwoodMills County · 5,287 peopleB+3.7 years of area income·Overall A− · #42 of 140
68Mount PleasantHenry County · 8,500 peopleB+2.9 years of area income·Overall B− · #83 of 140
69Red OakMontgomery County · 5,388 peopleB+2.1 years of area income·Overall D · #133 of 140
70OelweinFayette County · 5,757 peopleB+1.8 years of area income·Overall D · #128 of 140
71Council BluffsPottawattamie County · 62,680 peopleB+2.7 years of area income·Overall D · #127 of 140
72CentervilleAppanoose County · 5,327 peopleB+1.4 years of area income·Overall C− · #123 of 140
73WashingtonWashington County · 7,261 peopleB2.6 years of area income·Overall C− · #120 of 140
74KeokukLee County · 9,510 peopleB1.3 years of area income·Overall D · #138 of 140
75Sioux CityWoodbury County · 86,356 peopleB2.7 years of area income·Overall D · #129 of 140
76NevadaStory County · 6,974 peopleB3.4 years of area income·Overall A− · #43 of 140
77EvansdaleBlack Hawk County · 4,463 peopleB2.2 years of area income·Overall D · #140 of 140
78WaterlooBlack Hawk County · 66,919 peopleB2.1 years of area income·Overall D · #137 of 140
79SheldonO'Brien County · 5,575 peopleB3.3 years of area income·Overall B · #77 of 140
80DyersvilleDubuque County · 4,574 peopleB3.7 years of area income·Overall A · #21 of 140
81Mount VernonLinn County · 4,514 peopleB4.5 years of area income·Overall A+ · #6 of 140
82OsceolaClarke County · 5,679 peopleB2.7 years of area income·Overall D · #136 of 140
83Spirit LakeDickinson County · 5,525 peopleB4.5 years of area income·Overall B+ · #68 of 140
84DubuqueDubuque County · 59,148 peopleB3.2 years of area income·Overall C+ · #96 of 140
85West BurlingtonDes Moines County · 3,358 peopleB2.8 years of area income·Overall D · #130 of 140
86SpencerClay County · 11,218 peopleB3.0 years of area income·Overall B · #76 of 140
87DecorahWinneshiek County · 7,417 peopleB3.9 years of area income·Overall A+ · #9 of 140
88West BranchCedar County · 2,956 peopleB3.7 years of area income·Overall A− · #35 of 140
89AnamosaJones County · 5,901 peopleB3.2 years of area income·Overall C+ · #97 of 140
90Cedar RapidsLinn County · 137,935 peopleB2.8 years of area income·Overall C · #104 of 140
91HiawathaLinn County · 7,432 peopleB3.4 years of area income·Overall C · #107 of 140
92HudsonBlack Hawk County · 3,028 peopleB3.9 years of area income·Overall A+ · #12 of 140
93AtlanticCass County · 6,676 peopleB2.6 years of area income·Overall C− · #115 of 140
94NorwalkWarren County · 15,004 peopleB3.9 years of area income·Overall A+ · #2 of 140
95WintersetMadison County · 5,520 peopleB3.4 years of area income·Overall A · #33 of 140
96KalonaWashington County · 2,811 peopleB4.3 years of area income·Overall A− · #53 of 140
97OnawaMonona County · 2,821 peopleB2.3 years of area income·Overall C− · #114 of 140
98Clear LakeCerro Gordo County · 7,601 peopleB4.9 years of area income·Overall B+ · #66 of 140
99Saylorvilleunincorporated, Polk County · 3,366 peopleB3.7 years of area income·Overall A− · #39 of 140
100IndianolaWarren County · 16,829 peopleB3.6 years of area income·Overall B+ · #62 of 140
101DavenportScott County · 100,358 peopleB−2.7 years of area income·Overall D · #135 of 140
102Story CityStory County · 3,382 peopleB−3.9 years of area income·Overall A · #28 of 140
103Des MoinesPolk County · 212,086 peopleB−2.4 years of area income·Overall D · #134 of 140
104Sioux CenterSioux County · 8,864 peopleB−4.0 years of area income·Overall A · #29 of 140
105MarionLinn County · 42,732 peopleB−3.6 years of area income·Overall A · #31 of 140
106MuscatineMuscatine County · 23,164 peopleB−2.8 years of area income·Overall C− · #117 of 140
107West LibertyMuscatine County · 3,717 peopleB−3.3 years of area income·Overall C · #103 of 140
108AdelDallas County · 7,098 peopleB−4.7 years of area income·Overall A · #19 of 140
109WaverlyBremer County · 10,561 peopleB−4.0 years of area income·Overall B+ · #59 of 140
110DeWittClinton County · 5,704 peopleB−3.6 years of area income·Overall B+ · #64 of 140
111PellaMarion County · 10,992 peopleB−4.6 years of area income·Overall A+ · #7 of 140
112FairfieldJefferson County · 9,220 peopleC+2.5 years of area income·Overall C+ · #99 of 140
113RobinsLinn County · 3,366 peopleC+5.2 years of area income·Overall B− · #89 of 140
114Polk CityPolk County · 6,630 peopleC+5.0 years of area income·Overall A+ · #8 of 140
115EldridgeScott County · 6,954 peopleC+4.9 years of area income·Overall A+ · #10 of 140
116GrinnellPoweshiek County · 9,430 peopleC+3.2 years of area income·Overall B− · #81 of 140
117GrimesPolk County · 17,405 peopleC+4.1 years of area income·Overall A+ · #15 of 140
118FairfaxLinn County · 2,925 peopleC+4.0 years of area income·Overall B− · #82 of 140
119Sergeant BluffWoodbury County · 5,324 peopleC+4.8 years of area income·Overall A+ · #18 of 140
120UrbandalePolk County · 48,570 peopleC+4.1 years of area income·Overall A · #23 of 140
121ClivePolk County · 19,861 peopleC5.0 years of area income·Overall A− · #49 of 140
122BondurantPolk County · 9,647 peopleC3.9 years of area income·Overall A− · #45 of 140
123AltoonaPolk County · 22,796 peopleC3.7 years of area income·Overall B− · #85 of 140
124West Des MoinesPolk County · 74,224 peopleC3.7 years of area income·Overall B+ · #58 of 140
125SolonJohnson County · 3,345 peopleC6.0 years of area income·Overall A+ · #11 of 140
126Pleasant HillPolk County · 11,239 peopleC3.5 years of area income·Overall C− · #116 of 140
127AmesStory County · 68,220 peopleC4.1 years of area income·Overall B · #72 of 140
128AnkenyPolk County · 77,833 peopleC3.9 years of area income·Overall A · #30 of 140
129AsburyDubuque County · 6,035 peopleC5.0 years of area income·Overall B+ · #61 of 140
130North LibertyJohnson County · 21,976 peopleC4.1 years of area income·Overall A− · #47 of 140
131BettendorfScott County · 40,710 peopleC4.6 years of area income·Overall A− · #44 of 140
132Windsor HeightsPolk County · 5,059 peopleC3.3 years of area income·Overall C− · #119 of 140
133JohnstonPolk County · 25,065 peopleC−4.7 years of area income·Overall A · #25 of 140
134WaukeeDallas County · 34,890 peopleC−4.0 years of area income·Overall A− · #36 of 140
135TiffinJohnson County · 7,156 peopleC−4.6 years of area income·Overall B · #74 of 140
136Iowa CityJohnson County · 76,229 peopleC−4.0 years of area income·Overall C+ · #92 of 140
137HuxleyStory County · 4,715 peopleC−4.7 years of area income·Overall A · #26 of 140
138CoralvilleJohnson County · 23,960 peopleC−3.5 years of area income·Overall B− · #88 of 140
139Cedar FallsBlack Hawk County · 41,240 peopleC−3.8 years of area income·Overall A− · #46 of 140
140Le ClaireScott County · 4,741 peopleC−5.4 years of area income·Overall B+ · #57 of 140
Quick answers

Questions people ask

What is the most affordable town in Iowa?

Emmetsburg (Palo Alto County) ranks first on cost of living among 140 towns, with an A+; Osage and Missouri Valley 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 (140 in Iowa). Smaller towns have the grade on their page but no rank. Every town is on the Iowa page.

Go deeper

More Iowa lists

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

All Iowa rankings →
Other states

Most affordable towns in other states