Guest, Sign inJoin
Downtown GalenaGalena, #1 on this list · Photo: Abe Ezekowitz · CC BY-SA 3.0
Kansas rankings · Cost of living

Most affordable towns in Kansas

Galena ranks first on cost of living among Kansas’ 151 towns of 2,500+; 29 of the 151 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

Galena

Cherokee County · 2,788 people
A+

Cost of living grade, homes cost 1.9 years of area income·Overall C · #114 of 150 in KS

#2

Lyons

Rice County · 3,488 people
A+

Cost of living grade, homes cost 1.7 years of area income·Overall C+ · #101 of 150 in KS

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

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

#TownGradeHome price · overall
1GalenaCherokee County · 2,788 peopleA+1.9 years of area income·Overall C · #114 of 150
2LyonsRice County · 3,488 peopleA+1.7 years of area income·Overall C+ · #101 of 150
3Lincoln TownshipLinn County · 2,730 peopleA1.9 years of area income·Overall B− · #78 of 150
4UlyssesGrant County · 5,524 peopleA2.4 years of area income·Overall A− · #38 of 150
5Washington TownshipDoniphan County · 2,966 peopleA1.9 years of area income·Overall A− · #27 of 150
6Oaklawn-Sunviewunincorporated, Sedgwick County · 2,789 peopleA1.0 years of area income·Overall B− · #86 of 150
7HillsboroMarion County · 2,646 peopleA2.5 years of area income·Overall A · #15 of 150
8HiawathaBrown County · 3,124 peopleA2.3 years of area income·Overall C+ · #93 of 150
9Belle Plaine TownshipSumner County · 3,025 peopleA2.3 years of area income·Overall B · #70 of 150
10IolaAllen County · 5,240 peopleA1.5 years of area income·Overall C · #113 of 150
11NortonNorton County · 2,651 peopleA2.2 years of area income·Overall B− · #76 of 150
12WellingtonSumner County · 7,541 peopleA1.6 years of area income·Overall D · #138 of 150
13ChanuteNeosho County · 8,584 peopleA1.7 years of area income·Overall C− · #129 of 150
14KingmanKingman County · 2,884 peopleA−2.4 years of area income·Overall C · #105 of 150
15OsawatomieMiami County · 4,215 peopleA−2.4 years of area income·Overall C · #111 of 150
16Prospect TownshipButler County · 2,548 peopleA−2.8 years of area income·Overall C− · #132 of 150
17LarnedPawnee County · 3,596 peopleA−1.7 years of area income·Overall C− · #118 of 150
18El DoradoButler County · 12,696 peopleA−2.4 years of area income·Overall B− · #87 of 150
19Baxter SpringsCherokee County · 3,823 peopleA−1.9 years of area income·Overall C− · #117 of 150
20Fort ScottBourbon County · 7,500 peopleA−2.2 years of area income·Overall C− · #122 of 150
21ParsonsLabette County · 9,315 peopleA−1.4 years of area income·Overall C · #108 of 150
22PrattPratt County · 6,574 peopleA−1.9 years of area income·Overall B · #62 of 150
23BeloitMitchell County · 3,288 peopleA−2.2 years of area income·Overall B · #75 of 150
24CoffeyvilleMontgomery County · 8,460 peopleA−1.2 years of area income·Overall D · #144 of 150
25MarysvilleMarshall County · 3,385 peopleA−2.4 years of area income·Overall B− · #80 of 150
26Scott CityScott County · 3,855 peopleA−2.7 years of area income·Overall B+ · #50 of 150
27BurlingtonCoffey County · 2,640 peopleA−2.6 years of area income·Overall C · #103 of 150
28IndependenceMontgomery County · 8,193 peopleA−2.2 years of area income·Overall C · #107 of 150
29HoltonJackson County · 3,396 peopleA−3.3 years of area income·Overall B · #69 of 150
30Osage CityOsage County · 2,784 peopleB+2.8 years of area income·Overall C+ · #91 of 150
31St. MarysPottawatomie County · 2,790 peopleB+4.4 years of area income·Overall B+ · #54 of 150
32Garden TownshipCherokee County · 2,713 peopleB+2.4 years of area income·Overall C− · #127 of 150
33Washington TownshipCrawford County · 3,543 peopleB+2.1 years of area income·Overall C · #112 of 150
34Dodge CityFord County · 27,653 peopleB+2.9 years of area income·Overall C− · #124 of 150
35ColumbusCherokee County · 2,866 peopleB+2.2 years of area income·Overall C− · #119 of 150
36ConcordiaCloud County · 4,991 peopleB+2.2 years of area income·Overall C+ · #96 of 150
37EllsworthEllsworth County · 3,092 peopleB+2.6 years of area income·Overall A · #16 of 150
38Arkansas CityCowley County · 11,800 peopleB+1.7 years of area income·Overall D− · #150 of 150
39St. Marys TownshipPottawatomie County · 4,018 peopleB+3.4 years of area income·Overall B · #60 of 150
40AbileneDickinson County · 6,552 peopleB+2.7 years of area income·Overall B · #61 of 150
41NewtonHarvey County · 18,353 peopleB+2.5 years of area income·Overall C− · #133 of 150
42AtchisonAtchison County · 10,789 peopleB+2.8 years of area income·Overall C+ · #100 of 150
43GarnettAnderson County · 3,242 peopleB+2.1 years of area income·Overall C+ · #90 of 150
44McPhersonMcPherson County · 13,918 peopleB+2.7 years of area income·Overall B · #71 of 150
45Wamego TownshipPottawatomie County · 5,838 peopleB+3.0 years of area income·Overall A+ · #3 of 150
46HesstonHarvey County · 3,458 peopleB+3.5 years of area income·Overall A · #4 of 150
47LindsborgMcPherson County · 3,824 peopleB+3.0 years of area income·Overall A · #5 of 150
48ColbyThomas County · 5,489 peopleB+2.6 years of area income·Overall B+ · #42 of 150
49Salem TownshipSedgwick County · 9,673 peopleB+2.4 years of area income·Overall B− · #83 of 150
50Riverside TownshipSedgwick County · 13,603 peopleB+2.2 years of area income·Overall C · #109 of 150
51MulvaneSedgwick County · 7,030 peopleB+3.3 years of area income·Overall B+ · #49 of 150
52LiberalSeward County · 19,010 peopleB+2.3 years of area income·Overall C− · #135 of 150
53HaysvilleSedgwick County · 11,353 peopleB3.0 years of area income·Overall C · #110 of 150
54Towanda TownshipButler County · 2,574 peopleB2.3 years of area income·Overall B− · #82 of 150
55Park CitySedgwick County · 9,458 peopleB3.2 years of area income·Overall C− · #121 of 150
56Reno TownshipReno County · 4,360 peopleB2.5 years of area income·Overall C · #104 of 150
57TopekaShawnee County · 125,795 peopleB2.8 years of area income·Overall C− · #136 of 150
58Great BendBarton County · 14,266 peopleB2.1 years of area income·Overall C− · #120 of 150
59FrontenacCrawford County · 3,443 peopleB3.2 years of area income·Overall B · #63 of 150
60Kansas CityWyandotte County · 157,805 peopleB2.4 years of area income·Overall D · #146 of 150
61Morton TownshipSedgwick County · 2,819 peopleB2.5 years of area income·Overall A+ · #1 of 150
62LeavenworthLeavenworth County · 37,012 peopleB3.1 years of area income·Overall B− · #84 of 150
63WamegoPottawatomie County · 4,912 peopleB4.6 years of area income·Overall A · #6 of 150
64Emma TownshipHarvey County · 4,017 peopleB3.1 years of area income·Overall A · #9 of 150
65South HutchinsonReno County · 2,516 peopleB2.4 years of area income·Overall C · #102 of 150
66HugotonStevens County · 3,545 peopleB2.5 years of area income·Overall C · #106 of 150
67Clay CenterClay County · 4,061 peopleB2.5 years of area income·Overall C+ · #99 of 150
68Rock Creek TownshipJefferson County · 2,773 peopleB3.3 years of area income·Overall B+ · #40 of 150
69HoisingtonBarton County · 2,598 peopleB1.5 years of area income·Overall B− · #79 of 150
70PaolaMiami County · 5,880 peopleB4.5 years of area income·Overall B · #74 of 150
71OttawaFranklin County · 12,716 peopleB3.1 years of area income·Overall C+ · #88 of 150
72Grant TownshipSedgwick County · 5,743 peopleB3.4 years of area income·Overall A · #8 of 150
73GoodlandSherman County · 4,366 peopleB2.5 years of area income·Overall C− · #123 of 150
74Kechi TownshipSedgwick County · 10,931 peopleB4.2 years of area income·Overall C+ · #98 of 150
75Sherman TownshipLeavenworth County · 2,920 peopleB4.9 years of area income·Overall A · #10 of 150
76Auburn TownshipShawnee County · 3,319 peopleB3.4 years of area income·Overall A− · #37 of 150
77Valley Center TownshipSedgwick County · 5,036 peopleB3.1 years of area income·Overall A− · #35 of 150
78HutchinsonReno County · 39,595 peopleB2.5 years of area income·Overall D · #145 of 150
79WichitaSedgwick County · 400,987 peopleB2.9 years of area income·Overall D · #149 of 150
80ClearwaterSedgwick County · 2,792 peopleB3.8 years of area income·Overall A · #7 of 150
81Valley CenterSedgwick County · 7,685 peopleB3.7 years of area income·Overall A · #14 of 150
82EmporiaLyon County · 24,137 peopleB3.0 years of area income·Overall C− · #131 of 150
83Rose HillButler County · 4,320 peopleB3.8 years of area income·Overall A− · #24 of 150
84Bonner SpringsWyandotte County · 7,962 peopleB−3.6 years of area income·Overall C · #116 of 150
85SalinaSaline County · 46,094 peopleB−2.7 years of area income·Overall C− · #134 of 150
86Richland TownshipButler County · 2,620 peopleB−3.4 years of area income·Overall B · #58 of 150
87AugustaButler County · 9,073 peopleB−3.2 years of area income·Overall C− · #125 of 150
88Garden CityFinney County · 27,402 peopleB−3.2 years of area income·Overall D · #140 of 150
89Big Creek TownshipEllis County · 2,622 peopleB−3.5 years of area income·Overall A− · #21 of 150
90WinfieldCowley County · 11,745 peopleB−2.4 years of area income·Overall D · #147 of 150
91Sherlock TownshipFinney County · 2,907 peopleB−3.2 years of area income·Overall C− · #130 of 150
92RussellRussell County · 4,286 peopleB−2.0 years of area income·Overall C− · #137 of 150
93Tecumseh TownshipShawnee County · 7,829 peopleB−4.3 years of area income·Overall B+ · #43 of 150
94MerriamJohnson County · 11,509 peopleB−3.9 years of area income·Overall B+ · #56 of 150
95Garden City TownshipFinney County · 5,667 peopleB−3.1 years of area income·Overall D · #148 of 150
96Union TownshipSedgwick County · 2,704 peopleB−3.8 years of area income·Overall A · #12 of 150
97Rockford TownshipSedgwick County · 24,796 peopleB−3.1 years of area income·Overall B · #72 of 150
98Aubry TownshipJohnson County · 4,719 peopleB−6.4 years of area income·Overall A+ · #2 of 150
99Ninnescah TownshipSedgwick County · 3,563 peopleC+3.4 years of area income·Overall A− · #28 of 150
100Soldier TownshipShawnee County · 15,282 peopleC+3.5 years of area income·Overall B+ · #52 of 150
101EdwardsvilleWyandotte County · 4,748 peopleC+3.6 years of area income·Overall D · #139 of 150
102Pleasant TownshipButler County · 5,459 peopleC+3.6 years of area income·Overall B · #67 of 150
103PittsburgCrawford County · 20,569 peopleC+2.6 years of area income·Overall D · #143 of 150
104Junction CityGeary County · 22,583 peopleC+3.1 years of area income·Overall D · #142 of 150
105Baker TownshipCrawford County · 3,483 peopleC+4.2 years of area income·Overall C− · #126 of 150
106Williamsport TownshipShawnee County · 4,334 peopleC+2.2 years of area income·Overall B− · #81 of 150
107LansingLeavenworth County · 11,331 peopleC+3.9 years of area income·Overall A− · #31 of 150
108Monmouth TownshipShawnee County · 3,224 peopleC+4.6 years of area income·Overall B+ · #55 of 150
109Franklin TownshipFranklin County · 3,179 peopleC+3.0 years of area income·Overall B · #68 of 150
110St. George TownshipPottawatomie County · 5,056 peopleC+6.0 years of area income·Overall C− · #128 of 150
111Baldwin CityDouglas County · 4,946 peopleC+5.2 years of area income·Overall A− · #19 of 150
112DerbySedgwick County · 26,606 peopleC+4.0 years of area income·Overall B− · #85 of 150
113MissionJohnson County · 10,125 peopleC3.9 years of area income·Overall B · #66 of 150
114Fairmount TownshipLeavenworth County · 12,817 peopleC4.5 years of area income·Overall B+ · #47 of 150
115De SotoJohnson County · 7,083 peopleC5.1 years of area income·Overall A− · #22 of 150
116TonganoxieLeavenworth County · 6,208 peopleC4.5 years of area income·Overall B · #64 of 150
117ShawneeJohnson County · 69,848 peopleC5.1 years of area income·Overall A− · #26 of 150
118GardnerJohnson County · 26,154 peopleC4.2 years of area income·Overall B+ · #51 of 150
119Minneha TownshipSedgwick County · 3,472 peopleC5.5 years of area income·Overall C+ · #95 of 150
120Gardner TownshipJohnson County · 2,550 peopleC4.6 years of area income·Overall B+ · #44 of 150
121Mission TownshipShawnee County · 10,195 peopleC4.2 years of area income·Overall B+ · #53 of 150
122OlatheJohnson County · 150,025 peopleC5.2 years of area income·Overall A− · #18 of 150
123Madison TownshipRiley County · 9,403 peopleC2.8 years of area income·No overall grade
124BasehorLeavenworth County · 8,249 peopleC5.4 years of area income·Overall B+ · #45 of 150
125Spring HillJohnson County · 10,777 peopleC5.0 years of area income·Overall A− · #29 of 150
126GoddardSedgwick County · 6,638 peopleC4.3 years of area income·Overall A− · #36 of 150
127Attica TownshipSedgwick County · 9,068 peopleC3.7 years of area income·Overall A− · #39 of 150
128HaysEllis County · 21,258 peopleC4.0 years of area income·Overall B+ · #57 of 150
129Roeland ParkJohnson County · 6,683 peopleC−4.0 years of area income·Overall B+ · #46 of 150
130Palmyra TownshipDouglas County · 7,847 peopleC−4.7 years of area income·Overall A− · #30 of 150
131Bel AireSedgwick County · 10,287 peopleC−4.0 years of area income·Overall C+ · #97 of 150
132ManhattanRiley County · 54,673 peopleC−4.5 years of area income·Overall B · #73 of 150
133EudoraDouglas County · 6,506 peopleC−4.9 years of area income·Overall A− · #32 of 150
134Blue TownshipPottawatomie County · 5,449 peopleC−5.2 years of area income·Overall C+ · #94 of 150
135LouisburgMiami County · 5,299 peopleC−4.9 years of area income·Overall A− · #33 of 150
136Gypsum TownshipSedgwick County · 10,370 peopleC−4.6 years of area income·Overall C+ · #92 of 150
137Bruno TownshipButler County · 19,221 peopleC−4.1 years of area income·Overall B+ · #41 of 150
138AndoverButler County · 17,370 peopleC−4.7 years of area income·Overall A− · #25 of 150
139Eudora TownshipDouglas County · 7,870 peopleC−4.4 years of area income·Overall B · #59 of 150
140Mission HillsJohnson County · 3,522 peopleC−20.5 years of area income·Overall A− · #17 of 150
141LenexaJohnson County · 60,506 peopleC−5.7 years of area income·Overall A− · #23 of 150
142LawrenceDouglas County · 96,367 peopleC−4.8 years of area income·Overall B− · #77 of 150
143MaizeSedgwick County · 7,853 peopleC−4.4 years of area income·Overall B · #65 of 150
144Overland ParkJohnson County · 203,677 peopleC−5.8 years of area income·Overall A− · #34 of 150
145Park TownshipSedgwick County · 8,984 peopleD3.8 years of area income·Overall B+ · #48 of 150
146Stranger TownshipLeavenworth County · 5,467 peopleD4.0 years of area income·Overall C+ · #89 of 150
147Smoky Hill TownshipGeary County · 9,191 peopleD3.7 years of area income·Overall D · #141 of 150
148LeawoodJohnson County · 34,093 peopleD9.5 years of area income·Overall A− · #20 of 150
149Prairie VillageJohnson County · 23,008 peopleD5.9 years of area income·Overall A · #13 of 150
150FairwayJohnson County · 4,181 peopleD7.6 years of area income·Overall A · #11 of 150
151Fort Rileyunincorporated, Geary County · 8,606 peopleD−better than 4% of U.S. towns·Overall C · #115 of 150
Quick answers

Questions people ask

What is the most affordable town in Kansas?

Galena (Cherokee County) ranks first on cost of living among 151 towns, with an A+; Lyons and Lincoln Township 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 (151 in Kansas). Smaller towns have the grade on their page but no rank. Every town is on the Kansas page.

Go deeper

More Kansas lists

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

All Kansas rankings →
Other states

Most affordable towns in other states