Guest, Sign inJoin
Mt. Horeb Opera BlockMount Horeb, #1 on this list · Photo: Jaknelaps · CC BY-SA 3.0
Wisconsin rankings · 2026

Best small towns in Wisconsin

Mount Horeb ranks first of Wisconsin’s 260 graded small towns (2,500–9,999 residents), with an A+: hazard risk (A+) and safety (A+) are its strongest grades; cost of living (C+) is its lowest. 102 of the 260 (39%) grade A− or better nationally, against 25% of U.S. towns.

The overall grade, sorted: cost of living, safety, schools, health, jobs & income, walkability and hazard risk, from Census, FBI, state, CDC, EPA and FEMA data. How grades work

#1

Mount Horeb

Dane County · 7,725 people
A+

Strongest: hazard risk A+, safety A+·lowest: cost of living C+

C+CostA+SafetyA−SchoolsAHealthAJobsA−WalkA+Hazards
#2

Kiel

Manitowoc County · 3,973 people
A+

Strongest: safety A, hazard risk A·lowest: health B−

A−CostASafetyA−SchoolsB−HealthB+JobsB+WalkAHazards
#3

New Holstein

Calumet County · 3,040 people
A+

Strongest: hazard risk A+, cost of living A·lowest: schools B

ACostA−SafetyBSchoolsB+HealthB+JobsB+WalkA+Hazards

Where they are: Two of the top 10 are in Calumet County.

All 260 small towns

Overall score, highest first. The score (0–100) blends the seven livability grades and sets the order; the letter places that score among every U.S. town of 2,500+, and A+ is the top 5%, so neighbors on the list often share a letter. Each town links to its page, where the grade sheet shows every subject. The rank is the town’s place among all 357 Wisconsin towns.

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

#TownScoreGradeWhat drives it
1Mount HorebDane County · 7,725 people78.0top 0.4%A+Strongest: hazard risk A+, safety A+·lowest: cost of living C+
2KielManitowoc County · 3,973 people76.9top 0.6%A+Strongest: safety A, hazard risk A·lowest: health B−
3New HolsteinCalumet County · 3,040 people76.2top 0.9%A+Strongest: hazard risk A+, cost of living A·lowest: schools B
4KimberlyOutagamie County · 7,556 people75.8top 1.0%A+Strongest: hazard risk A+, schools A·lowest: health B+
7Fox PointMilwaukee County · 6,583 people75.2top 1.3%A+Strongest: jobs & income A+, schools A+·lowest: cost of living D
8Combined LocksOutagamie County · 3,626 people74.8top 1.6%A+Strongest: hazard risk A+, schools A·lowest: walkability C+
11BrillionCalumet County · 3,327 people74.0top 2.1%A+Strongest: hazard risk A+, safety A·lowest: health B−
13Elm GroveWaukesha County · 6,354 people73.4top 2.6%A+Strongest: jobs & income A+, schools A·lowest: cost of living D
14HartfordWashington County · 3,359 people73.4top 2.7%A+Strongest: hazard risk A+, jobs & income A·lowest: walkability C+
15OostburgSheboygan County · 3,056 people73.2top 2.8%A+Strongest: hazard risk A, schools A·lowest: cost of living B−
16Howards GroveSheboygan County · 3,190 people72.8top 3.2%A+Strongest: schools A−, jobs & income A−·lowest: walkability B
18BaysideMilwaukee County · 4,331 people72.6top 3.4%A+Strongest: schools A+, jobs & income A+·lowest: cost of living D
19Mineral PointIowa County · 2,555 people72.4top 3.5%A+Strongest: hazard risk A, safety A−·lowest: schools B+
22AddisonWashington County · 3,416 people71.8top 4.3%A+Strongest: hazard risk A, schools A·lowest: walkability C−
24KewauneeKewaunee County · 2,793 people71.3top 4.8%A+Strongest: hazard risk A+, cost of living A·lowest: schools C+
25PrescottPierce County · 4,581 people71.3top 4.8%A+Strongest: schools A, health A−·lowest: cost of living C+
26FreedomOutagamie County · 6,354 people71.1top 5.2%AStrongest: jobs & income A+, hazard risk A·lowest: walkability C+
28ChiltonCalumet County · 4,183 people70.8top 5.5%AStrongest: hazard risk A, cost of living A−·lowest: health B−
29BaldwinSt. Croix County · 4,347 people70.8top 5.6%AStrongest: schools A−, health A−·lowest: walkability C+
31BristolKenosha County · 5,300 people70.6top 6.0%AStrongest: hazard risk A+, jobs & income A·lowest: cost of living C
32JacksonWashington County · 8,322 people69.9top 6.9%AStrongest: safety A+, jobs & income A·lowest: walkability C−
33SpringfieldDane County · 2,800 people69.9top 6.9%AStrongest: jobs & income A+, health A·lowest: cost of living C
35ThiensvilleOzaukee County · 3,267 people69.7top 7.3%AStrongest: jobs & income A+, schools A+·lowest: cost of living C−
37MosineeMarathon County · 4,529 people69.5top 7.5%AStrongest: cost of living A−, schools B+·lowest: hazard risk B−
38CenterOutagamie County · 3,706 people69.5top 7.5%AStrongest: jobs & income A+, hazard risk A·lowest: walkability C−
39WalesWaukesha County · 2,885 people69.5top 7.6%AStrongest: health A, schools A·lowest: cost of living C
41PulaskiBrown County · 4,048 people69.2top 8.0%AStrongest: hazard risk A+, safety A·lowest: walkability B−
42EllsworthPierce County · 3,336 people69.2top 8.0%AStrongest: cost of living A−, jobs & income B+·lowest: walkability C
44SomersetSt. Croix County · 3,408 people69.1top 8.2%AStrongest: safety A, health A−·lowest: cost of living B−
45MiltonRock County · 6,024 people69.1top 8.2%AStrongest: safety A, jobs & income A·lowest: walkability B−
47LuxemburgKewaunee County · 2,784 people69.1top 8.3%AStrongest: hazard risk A+, schools A·lowest: cost of living B−
48SlingerWashington County · 6,495 people69.0top 8.4%AStrongest: hazard risk A, schools A·lowest: cost of living C+
49BurkeDane County · 3,089 people69.0top 8.5%AStrongest: hazard risk A, walkability A·lowest: cost of living C+
50KronenwetterMarathon County · 8,413 people68.2top 9.7%AStrongest: safety A, jobs & income A·lowest: walkability C−
53HortonvilleOutagamie County · 3,340 people68.1top 10.0%AStrongest: jobs & income A, schools A−·lowest: walkability C+
54Hales CornersMilwaukee County · 7,740 people68.0top 10.1%AStrongest: hazard risk A+, jobs & income A·lowest: cost of living C−
55AmeryPolk County · 2,927 people68.0top 10.1%AStrongest: walkability A, hazard risk A−·lowest: cost of living C+
56IxoniaJefferson County · 5,083 people68.0top 10.2%AStrongest: jobs & income A, hazard risk A−·lowest: walkability B−
57GraftonOzaukee County · 4,343 people67.8top 10.5%AStrongest: jobs & income A, hazard risk A·lowest: walkability C−
58PoynetteColumbia County · 2,924 people67.7top 10.8%AStrongest: jobs & income A, schools A−·lowest: hazard risk D
59Cross PlainsDane County · 4,182 people67.6top 11.0%AStrongest: jobs & income A+, schools A·lowest: cost of living C−
60OttawaWaukesha County · 3,642 people67.6top 11.0%AStrongest: jobs & income A+, schools A·lowest: walkability D
61SherwoodCalumet County · 3,311 people67.6top 11.1%AStrongest: jobs & income A, health A·lowest: walkability C−
64WrightstownBrown County · 4,169 people67.4top 11.5%AStrongest: jobs & income A+, schools A·lowest: cost of living C−
65BellevilleDane County · 2,705 people67.3top 11.7%AStrongest: jobs & income A, hazard risk A·lowest: walkability C−
66Pleasant SpringsDane County · 2,968 people67.2top 12.0%AStrongest: jobs & income A+, health A−·lowest: cost of living C+
67Oak GrovePierce County · 2,561 people67.1top 12.1%AStrongest: jobs & income A, schools A·lowest: walkability C
69PewaukeeWaukesha County · 8,216 people66.9top 12.5%AStrongest: hazard risk A, health A·lowest: cost of living C−
70PolkWashington County · 4,041 people66.8top 12.8%AStrongest: schools A, jobs & income A·lowest: walkability C−
71MertonWaukesha County · 3,676 people66.8top 12.8%AStrongest: jobs & income A+, schools A+·lowest: cost of living C−
72SomersetSt. Croix County · 4,536 people66.8top 12.8%AStrongest: jobs & income A+, health A−·lowest: cost of living C
74WestportDane County · 4,249 people66.6top 13.1%AStrongest: health A, jobs & income A·lowest: cost of living C
75PeshtigoMarinette County · 3,423 people66.5top 13.4%AStrongest: safety A, cost of living A·lowest: schools C
76PittsfieldBrown County · 2,838 people66.4top 13.6%AStrongest: hazard risk A+, jobs & income A·lowest: walkability C
77SummitWaukesha County · 5,323 people66.4top 13.7%AStrongest: jobs & income A+, schools A·lowest: cost of living C−
78DousmanWaukesha County · 2,665 people66.2top 14.0%AStrongest: jobs & income A, schools A·lowest: cost of living C−
79BelgiumOzaukee County · 2,540 people66.2top 14.0%AStrongest: hazard risk A, schools A·lowest: walkability C−
80SeymourOutagamie County · 3,628 people66.1top 14.2%AStrongest: hazard risk A, cost of living A·lowest: schools C−
81North HudsonSt. Croix County · 3,803 people66.1top 14.4%AStrongest: jobs & income A, schools A·lowest: walkability D
82HudsonSt. Croix County · 8,736 people66.0top 14.4%AStrongest: jobs & income A+, schools A·lowest: cost of living C
83RiponFond du Lac County · 7,738 people65.9top 14.6%AStrongest: hazard risk A, schools A−·lowest: jobs & income C+
84JacksonWashington County · 3,950 people65.9top 14.8%AStrongest: jobs & income A+, hazard risk A·lowest: walkability C−
85GenevaWalworth County · 5,443 people65.7top 15.1%A−Strongest: safety A+, jobs & income A·lowest: cost of living C−
86Cottage GroveDane County · 8,930 people65.7top 15.1%A−Strongest: jobs & income A+, health A·lowest: cost of living D
88Star PrairieSt. Croix County · 3,771 people65.7top 15.2%A−Strongest: jobs & income A, schools A−·lowest: walkability D
89Lake MillsJefferson County · 6,655 people65.5top 15.6%A−Strongest: jobs & income A, hazard risk A·lowest: cost of living C
90MiddletonDane County · 6,833 people65.5top 15.7%A−Strongest: jobs & income A+, health A+·lowest: cost of living D
91KewaskumWashington County · 4,561 people65.3top 15.9%A−Strongest: schools A, safety A−·lowest: walkability C+
92MukwonagoWaukesha County · 8,544 people65.3top 15.9%A−Strongest: schools A, jobs & income A−·lowest: cost of living C
94MertonWaukesha County · 8,319 people65.1top 16.4%A−Strongest: jobs & income A+, schools A+·lowest: cost of living D
95RothschildMarathon County · 5,627 people65.1top 16.5%A−Strongest: jobs & income A−, cost of living B+·lowest: walkability C
96BristolDane County · 4,347 people65.1top 16.5%A−Strongest: jobs & income A+, health A·lowest: cost of living C−
99FennimoreGrant County · 2,775 people64.8top 17.2%A−Strongest: safety A, hazard risk A·lowest: health C
100ColumbusColumbia County · 5,400 people64.8top 17.2%A−Strongest: safety A−, health A−·lowest: hazard risk C−
102Union GroveRacine County · 5,370 people64.7top 17.4%A−Strongest: hazard risk A+, jobs & income A+·lowest: walkability C
103PlymouthSheboygan County · 8,821 people64.7top 17.5%A−Strongest: hazard risk A, safety A−·lowest: jobs & income B−
104ChaseOconto County · 3,373 people64.6top 17.7%A−Strongest: jobs & income A, hazard risk A−·lowest: walkability D−
105CedarburgOzaukee County · 6,169 people64.6top 17.7%A−Strongest: schools A+, health A·lowest: cost of living D
107BuchananOutagamie County · 6,793 people64.4top 18.1%A−Strongest: hazard risk A+, schools A−·lowest: cost of living C+
109Paddock LakeKenosha County · 2,974 people64.2top 18.6%A−Strongest: hazard risk A+, jobs & income A·lowest: walkability C+
111East TroyWalworth County · 4,988 people64.2top 18.7%A−Strongest: safety A, hazard risk A−·lowest: cost of living D
112MaineMarathon County · 2,621 people64.1top 19.0%A−Strongest: jobs & income A, hazard risk A·lowest: schools C+
114DelafieldWaukesha County · 7,314 people64.0top 19.2%A−Strongest: schools A, health A·lowest: cost of living D
117ViroquaVernon County · 4,435 people63.8top 19.5%A−Strongest: hazard risk A, walkability A·lowest: safety B−
118West SalemLa Crosse County · 5,288 people63.8top 19.5%A−Strongest: schools A−, hazard risk A−·lowest: cost of living C+
121RochesterRacine County · 3,786 people63.5top 20.3%A−Strongest: jobs & income A+, schools B+·lowest: walkability C−
122Little SuamicoOconto County · 5,794 people63.4top 20.4%A−Strongest: jobs & income A, hazard risk A−·lowest: walkability D
123MayvilleDodge County · 5,184 people63.4top 20.5%A−Strongest: hazard risk A−, safety A−·lowest: walkability C+
124LimaSheboygan County · 2,920 people63.3top 20.7%A−Strongest: jobs & income A, hazard risk B+·lowest: walkability C
125LawrenceBrown County · 6,937 people63.2top 21.0%A−Strongest: hazard risk A+, jobs & income A+·lowest: walkability C−
127LedgeviewBrown County · 9,642 people63.0top 21.4%A−Strongest: jobs & income A+, schools A·lowest: cost of living C
128DenmarkBrown County · 2,875 people63.0top 21.5%A−Strongest: hazard risk A+, jobs & income B+·lowest: walkability C+
130EagleWaukesha County · 3,536 people62.9top 21.6%A−Strongest: jobs & income A, schools A·lowest: walkability C−
131DeerfieldDane County · 2,619 people62.9top 21.8%A−Strongest: jobs & income A, hazard risk A·lowest: walkability C
132EllingtonOutagamie County · 3,307 people62.9top 21.8%A−Strongest: jobs & income A, schools A−·lowest: walkability D−
134Sheboygan FallsSheboygan County · 8,687 people62.8top 22.0%A−Strongest: hazard risk A−, safety B+·lowest: schools B−
136HollandLa Crosse County · 4,512 people62.4top 22.9%A−Strongest: jobs & income A, health A−·lowest: walkability C
137JuneauDodge County · 2,706 people62.3top 23.3%A−Strongest: hazard risk A, safety A·lowest: health C+
138Sugar CreekWalworth County · 3,888 people62.1top 23.8%A−Strongest: jobs & income A, hazard risk B+·lowest: schools B−
140ClaytonWinnebago County · 5,303 people61.9top 24.3%A−Strongest: jobs & income A+, schools A−·lowest: cost of living C
142FarmingtonWashington County · 3,586 people61.8top 24.6%A−Strongest: jobs & income A+, schools A·lowest: walkability D−
143DoverRacine County · 4,202 people61.8top 24.6%A−Strongest: hazard risk A, jobs & income A·lowest: walkability C+
144Rice LakeBarron County · 2,897 people61.6top 25.2%B+Strongest: hazard risk A, jobs & income A−·lowest: health C+
145OconomowocWaukesha County · 8,849 people61.4top 25.7%B+Strongest: jobs & income A+, schools A·lowest: cost of living D
146BrookfieldWaukesha County · 6,515 people61.3top 26.1%B+Strongest: hazard risk A, health A·lowest: cost of living D
147NeenahWinnebago County · 3,673 people61.3top 26.1%B+Strongest: jobs & income A, schools A−·lowest: walkability C
148TrentonWashington County · 4,721 people61.3top 26.2%B+Strongest: jobs & income A+, hazard risk A·lowest: walkability C−
150AshippunDodge County · 2,666 people61.0top 26.8%B+Strongest: jobs & income A, hazard risk A·lowest: walkability C−
151LodiColumbia County · 3,190 people61.0top 26.8%B+Strongest: health A, jobs & income A−·lowest: hazard risk D
152TroySt. Croix County · 5,686 people61.0top 27.0%B+Strongest: jobs & income A, schools A·lowest: walkability D
153RandallKenosha County · 3,276 people60.8top 27.4%B+Strongest: jobs & income A, hazard risk A−·lowest: walkability C−
155EdgertonRock County · 6,121 people60.8top 27.4%B+Strongest: safety A+, walkability B+·lowest: hazard risk C−
156StocktonPortage County · 3,019 people60.8top 27.4%B+Strongest: hazard risk A, jobs & income A−·lowest: walkability C−
158HammondSt. Croix County · 2,732 people60.6top 28.0%B+Strongest: jobs & income A+, hazard risk A−·lowest: walkability C−
159SaukvilleOzaukee County · 4,554 people60.5top 28.1%B+Strongest: schools A, hazard risk A−·lowest: cost of living C
160West BendWashington County · 4,401 people60.5top 28.3%B+Strongest: jobs & income A+, hazard risk A·lowest: walkability D
161WheatonChippewa County · 2,785 people60.4top 28.4%B+Strongest: jobs & income A−, hazard risk B+·lowest: walkability B−
162YorkvilleRacine County · 3,253 people60.4top 28.4%B+Strongest: hazard risk A+, jobs & income A−·lowest: cost of living C−
163LinnWalworth County · 2,707 people60.4top 28.5%B+Strongest: hazard risk A, jobs & income A·lowest: cost of living C−
164WashingtonEau Claire County · 7,478 people60.1top 29.2%B+Strongest: jobs & income A, health A−·lowest: walkability C+
166GeneseeWaukesha County · 7,235 people60.0top 29.4%B+Strongest: jobs & income A+, health A−·lowest: cost of living C
167OregonDane County · 2,994 people59.9top 29.6%B+Strongest: jobs & income A+, hazard risk A·lowest: walkability D
169DaleOutagamie County · 2,902 people59.9top 29.6%B+Strongest: jobs & income A, schools B+·lowest: walkability D
170St. JosephSt. Croix County · 4,408 people59.7top 30.0%B+Strongest: jobs & income A+, schools A·lowest: cost of living D
171OneidaOutagamie County · 4,568 people59.5top 30.6%B+Strongest: hazard risk A, cost of living A−·lowest: walkability C−
172PlymouthSheboygan County · 3,038 people59.4top 30.8%B+Strongest: hazard risk A, jobs & income A−·lowest: walkability D
173DaytonWaupaca County · 2,608 people59.3top 31.2%B+Strongest: hazard risk A−, jobs & income B+·lowest: walkability C−
174New LondonWaupaca County · 7,726 people59.2top 31.4%B+Strongest: safety A, walkability A−·lowest: health C
175Grand RapidsWood County · 7,622 people59.2top 31.6%B+Strongest: safety A, hazard risk B+·lowest: walkability D
178StanleyChippewa County · 3,876 people58.8top 32.5%B+Strongest: cost of living A, walkability A·lowest: jobs & income D
179Arbor VitaeVilas County · 3,503 people58.7top 32.7%B+Strongest: hazard risk A, walkability B+·lowest: jobs & income B−
180BartonWashington County · 2,769 people58.7top 32.7%B+Strongest: hazard risk A, jobs & income A·lowest: walkability D
181HullPortage County · 5,239 people58.6top 32.8%B+Strongest: jobs & income A, health A−·lowest: walkability C−
182Sturgeon BayDoor County · 9,917 people58.6top 32.9%B+Strongest: hazard risk A+, walkability A−·lowest: cost of living C
183OnalaskaLa Crosse County · 5,809 people58.5top 33.2%B+Strongest: jobs & income A, health A−·lowest: walkability C−
185OmroWinnebago County · 3,639 people58.3top 33.6%B+Strongest: safety A−, jobs & income B·lowest: hazard risk C+
186East TroyWalworth County · 4,002 people58.3top 33.8%B+Strongest: jobs & income A+, schools B+·lowest: walkability C−
187Williams BayWalworth County · 2,935 people58.2top 33.9%B+Strongest: hazard risk A, jobs & income B+·lowest: cost of living C+
188RaymondRacine County · 4,006 people58.2top 34.0%B+Strongest: jobs & income A+, hazard risk A+·lowest: walkability C−
189MenomonieDunn County · 3,514 people58.2top 34.1%B+Strongest: jobs & income A, hazard risk B+·lowest: walkability C
190MarshallDane County · 3,696 people58.2top 34.1%B+Strongest: safety A, hazard risk A−·lowest: walkability C−
192EvansvilleRock County · 5,837 people58.1top 34.5%B+Strongest: hazard risk A, jobs & income A−·lowest: cost of living C
193BurlingtonRacine County · 6,403 people58.0top 34.6%B+Strongest: jobs & income A−, hazard risk B+·lowest: walkability C
195UnionEau Claire County · 2,556 people57.9top 34.9%B+Strongest: jobs & income A, health B+·lowest: walkability C
196AldenPolk County · 3,019 people57.9top 35.1%BStrongest: schools A−, jobs & income B+·lowest: cost of living C
198HarmonyRock County · 2,608 people57.6top 35.9%BStrongest: jobs & income A, schools A−·lowest: cost of living C
199WaterfordRacine County · 6,025 people57.5top 36.1%BStrongest: jobs & income A, schools A·lowest: cost of living D
202MiltonRock County · 3,129 people57.0top 37.2%BStrongest: jobs & income A+, schools A−·lowest: cost of living C−
203Beaver DamDodge County · 4,105 people57.0top 37.2%BStrongest: hazard risk A, jobs & income B+·lowest: schools C+
204SevastopolDoor County · 2,835 people57.0top 37.2%BStrongest: schools A+, hazard risk A·lowest: cost of living C−
205BloomerChippewa County · 3,634 people57.0top 37.3%BStrongest: hazard risk B+, cost of living B·lowest: health B−
206Twin LakesKenosha County · 6,338 people57.0top 37.4%BStrongest: hazard risk A−, jobs & income B+·lowest: walkability C
207NorwayRacine County · 7,856 people57.0top 37.4%BStrongest: jobs & income A, schools A−·lowest: cost of living C
209FultonRock County · 3,715 people56.8top 37.8%BStrongest: jobs & income A, schools B+·lowest: hazard risk C−
211FarmingtonWaupaca County · 3,501 people56.6top 38.4%BStrongest: hazard risk A, jobs & income B+·lowest: walkability D
213DelavanWalworth County · 5,210 people56.4top 39.0%BStrongest: hazard risk A, safety A−·lowest: walkability C−
215ErinWashington County · 3,835 people56.3top 39.3%BStrongest: jobs & income A, hazard risk A−·lowest: walkability C−
216LomiraDodge County · 2,686 people56.1top 40.0%BStrongest: hazard risk A, walkability B+·lowest: health C+
217WaterlooJefferson County · 3,600 people55.9top 40.3%BStrongest: safety A, jobs & income B+·lowest: schools C−
219BerlinGreen Lake County · 5,588 people55.7top 40.8%BStrongest: walkability A−, safety A−·lowest: health C−
220SeymourEau Claire County · 3,261 people55.7top 40.9%BStrongest: jobs & income A, health B+·lowest: walkability C
222OcontoOconto County · 4,640 people55.4top 41.7%BStrongest: cost of living A, safety B+·lowest: hazard risk C−
223DodgevilleIowa County · 5,076 people55.1top 42.2%BStrongest: hazard risk A+, walkability B+·lowest: safety C+
224AltoonaEau Claire County · 9,376 people55.0top 42.7%BStrongest: health A−, walkability B+·lowest: cost of living C+
225PacificColumbia County · 2,769 people54.8top 43.4%BStrongest: cost of living A, jobs & income A−·lowest: walkability D
226RhinelanderOneida County · 8,242 people54.7top 43.5%BStrongest: walkability A, cost of living A−·lowest: health C
227McFarlandDane County · 9,145 people54.5top 44.0%BStrongest: health A, jobs & income A·lowest: schools D
229Rib MountainMarathon County · 7,280 people54.2top 44.9%BStrongest: health A−, jobs & income B+·lowest: walkability C
230Lake DeltonSauk County · 3,451 people54.1top 45.1%B−Strongest: cost of living B+, hazard risk B·lowest: jobs & income C
231Lake GenevaWalworth County · 8,818 people53.9top 45.5%B−Strongest: hazard risk A+, walkability A−·lowest: cost of living D
232EmpireFond du Lac County · 2,790 people53.7top 46.0%B−Strongest: jobs & income A+, hazard risk A·lowest: walkability D
233WheatlandKenosha County · 3,337 people53.7top 46.1%B−Strongest: jobs & income A, schools B+·lowest: cost of living C−
234MononaDane County · 8,664 people53.7top 46.2%B−Strongest: health A, hazard risk A·lowest: cost of living C−
236LyonsWalworth County · 3,635 people53.6top 46.6%B−Strongest: hazard risk A−, schools B+·lowest: walkability C−
237MedfordTaylor County · 2,506 people53.5top 46.7%B−Strongest: hazard risk A−, jobs & income A−·lowest: health C+
238RichmondSt. Croix County · 4,276 people53.5top 46.7%B−Strongest: schools A−, health B+·lowest: walkability C−
240LincolnVilas County · 2,737 people53.4top 46.9%B−Strongest: walkability A−, jobs & income B−·lowest: schools B−
241OsceolaPolk County · 2,890 people53.4top 47.0%B−Strongest: hazard risk A−, schools A−·lowest: jobs & income C−
242WaupacaWaupaca County · 6,352 people53.3top 47.4%B−Strongest: hazard risk A+, cost of living B+·lowest: jobs & income C
243TaycheedahFond du Lac County · 4,690 people53.2top 47.7%B−Strongest: jobs & income A, hazard risk A·lowest: walkability C−
244BrodheadGreen County · 3,214 people53.2top 47.8%B−Strongest: safety B+, hazard risk B+·lowest: jobs & income C
245BloomfieldWalworth County · 6,369 people53.1top 48.0%B−Strongest: hazard risk A−, jobs & income B+·lowest: walkability C−
246MedfordTaylor County · 4,589 people53.1top 48.1%B−Strongest: hazard risk A−, cost of living B+·lowest: safety C+
247HoriconDodge County · 3,917 people53.1top 48.2%B−Strongest: schools A−, hazard risk A−·lowest: health C
248KoshkonongJefferson County · 3,776 people53.0top 48.2%B−Strongest: jobs & income A, schools B−·lowest: walkability C−
249AlgomaKewaunee County · 3,225 people52.9top 48.5%B−Strongest: hazard risk A+, cost of living A·lowest: schools D
250Johnson CreekJefferson County · 3,435 people52.9top 48.6%B−Strongest: jobs & income A+, health B+·lowest: schools C
251DunnDane County · 4,676 people52.9top 48.6%B−Strongest: jobs & income A+, health A·lowest: walkability D
252BeloitRock County · 8,014 people52.9top 48.6%B−Strongest: jobs & income A−, schools B·lowest: health C−
253Eagle PointChippewa County · 3,267 people52.7top 48.9%B−Strongest: jobs & income A, health B−·lowest: walkability C−
255PelicanOneida County · 2,840 people52.6top 49.3%B−Strongest: cost of living A−, hazard risk B·lowest: schools C+
259ShelbyLa Crosse County · 4,668 people52.4top 50.0%B−Strongest: jobs & income A, walkability B·lowest: schools C
260MerrillLincoln County · 2,856 people52.3bottom 49.9%B−Strongest: cost of living A−, jobs & income B·lowest: walkability C−
262Prairie du SacSauk County · 4,316 people52.1bottom 49.1%B−Strongest: jobs & income A, health B·lowest: cost of living C
265SheboyganSheboygan County · 8,615 people51.8bottom 48.5%B−Strongest: hazard risk A, jobs & income A·lowest: schools C−
270Sauk CitySauk County · 3,439 people51.4bottom 47.4%B−Strongest: walkability A−, jobs & income B+·lowest: hazard risk C−
272St. FrancisMilwaukee County · 8,955 people51.2bottom 46.9%B−Strongest: hazard risk A+, walkability A·lowest: schools C−
273Lake HallieChippewa County · 7,396 people51.1bottom 46.7%B−Strongest: jobs & income B+, hazard risk B·lowest: cost of living C+
275Cottage GroveDane County · 3,677 people50.9bottom 46.2%B−Strongest: health A, hazard risk A−·lowest: cost of living D
276MukwaWaupaca County · 2,793 people50.7bottom 45.6%B−Strongest: jobs & income A−, schools B·lowest: walkability D
277SturtevantRacine County · 6,852 people50.5bottom 45.0%B−Strongest: hazard risk A+, walkability A−·lowest: schools D
278Fond du LacFond du Lac County · 3,780 people50.4bottom 44.7%C+Strongest: jobs & income A, hazard risk A−·lowest: schools C
279AlgomaWinnebago County · 6,956 people50.4bottom 44.6%C+Strongest: jobs & income A+, health B+·lowest: walkability D
280Oconto FallsOconto County · 3,012 people50.1bottom 43.9%C+Strongest: hazard risk A, cost of living B+·lowest: health C−
281Wisconsin DellsColumbia County · 3,149 people50.1bottom 43.8%C+Strongest: walkability A−, cost of living B·lowest: jobs & income C−
282ArcadiaTrempealeau County · 3,840 people50.1bottom 43.8%C+Strongest: safety A+, cost of living A−·lowest: jobs & income C−
283MondoviBuffalo County · 2,853 people50.0bottom 43.7%C+Strongest: walkability B+, schools B+·lowest: health C
284Pine LakeOneida County · 2,733 people50.0bottom 43.7%C+Strongest: jobs & income B, walkability B·lowest: schools C+
285Prairie du ChienCrawford County · 5,408 people50.0bottom 43.5%C+Strongest: walkability A, schools B+·lowest: health C−
286Pleasant ValleyEau Claire County · 3,878 people49.9bottom 43.3%C+Strongest: jobs & income A+, health A−·lowest: cost of living D
287ScottBrown County · 3,650 people49.8bottom 43.1%C+Strongest: hazard risk A+, jobs & income A·lowest: walkability D
288FriendshipFond du Lac County · 2,774 people49.7bottom 42.7%C+Strongest: jobs & income A, hazard risk B+·lowest: walkability D
290DelavanWalworth County · 9,228 people49.4bottom 42.0%C+Strongest: hazard risk A, walkability B·lowest: schools C
291JanesvilleRock County · 3,699 people49.2bottom 41.3%C+Strongest: jobs & income A+, hazard risk A−·lowest: cost of living C−
293PortageColumbia County · 9,956 people49.0bottom 40.8%C+Strongest: walkability A−, cost of living B+·lowest: hazard risk D
295TomahawkLincoln County · 3,387 people48.8bottom 40.3%C+Strongest: cost of living B+, walkability B+·lowest: health C−
296WalworthWalworth County · 2,759 people48.7bottom 39.9%C+Strongest: hazard risk A+, safety A−·lowest: schools D
297NewboldOneida County · 2,869 people48.6bottom 39.8%C+Strongest: jobs & income B+, hazard risk B·lowest: walkability C
299StettinMarathon County · 2,593 people48.6bottom 39.6%C+Strongest: jobs & income A, health B·lowest: walkability C−
300JeffersonJefferson County · 7,814 people48.4bottom 39.2%C+Strongest: jobs & income B+, walkability B·lowest: hazard risk C−
301MinocquaOneida County · 5,062 people48.1bottom 38.3%C+Strongest: hazard risk A+, jobs & income B−·lowest: walkability C+
302OaklandJefferson County · 3,215 people48.0bottom 38.0%C+Strongest: hazard risk B+, schools B·lowest: walkability C
303LancasterGrant County · 4,031 people47.6bottom 36.9%C+Strongest: hazard risk A+, walkability A−·lowest: schools D−
304Genoa CityWalworth County · 2,866 people47.5bottom 36.6%C+Strongest: hazard risk A−, jobs & income B+·lowest: walkability C−
309Rice LakeBarron County · 8,882 people47.3bottom 36.1%C+Strongest: hazard risk A+, schools B+·lowest: safety C
310Black River FallsJackson County · 3,555 people47.2bottom 35.9%C+Strongest: cost of living B+, walkability B+·lowest: schools C−
312LafayetteChippewa County · 6,430 people46.9bottom 35.1%C+Strongest: jobs & income B+, hazard risk B·lowest: walkability C−
314ClintonvilleWaupaca County · 4,499 people46.8bottom 34.7%CStrongest: hazard risk A, walkability B+·lowest: health C
315SpoonerWashburn County · 2,531 people46.2bottom 33.5%CStrongest: hazard risk A, walkability A·lowest: jobs & income D−
316MaustonJuneau County · 4,133 people46.0bottom 32.9%CStrongest: walkability A, cost of living B·lowest: health D
317PeshtigoMarinette County · 4,087 people45.8bottom 32.3%CStrongest: hazard risk B+, jobs & income B+·lowest: schools C−
319CampbellLa Crosse County · 4,092 people45.6bottom 31.7%CStrongest: walkability A−, safety A−·lowest: jobs & income C−
320BarronBarron County · 3,634 people45.3bottom 31.1%CStrongest: hazard risk A, walkability B+·lowest: jobs & income D
321ShawanoShawano County · 9,693 people45.3bottom 31.0%CStrongest: walkability A−, cost of living B·lowest: health C−
322TainterDunn County · 2,690 people45.2bottom 30.7%CStrongest: jobs & income B+, schools B·lowest: walkability D−
323AntigoLanglade County · 8,060 people45.1bottom 30.5%CStrongest: hazard risk A+, cost of living A−·lowest: jobs & income D
324Fox LakeDodge County · 2,550 people45.0bottom 30.1%CStrongest: hazard risk A−, jobs & income A−·lowest: walkability D
325WilsonSheboygan County · 3,401 people44.8bottom 29.8%CStrongest: hazard risk A, jobs & income A·lowest: walkability D
326New LisbonJuneau County · 2,577 people44.3bottom 28.6%CStrongest: safety A, cost of living A−·lowest: schools D
329MerrillLincoln County · 9,389 people43.5bottom 26.6%CStrongest: walkability B+, cost of living B+·lowest: health C−
330SaratogaWood County · 5,141 people43.0bottom 25.5%CStrongest: cost of living B+, jobs & income B−·lowest: walkability D
332RockRock County · 2,988 people42.9bottom 25.2%CStrongest: hazard risk B+, jobs & income B·lowest: walkability C
334LadysmithRusk County · 3,172 people42.5bottom 24.2%C−Strongest: safety B+, walkability B+·lowest: jobs & income D−
335SpartaMonroe County · 3,277 people42.1bottom 23.5%C−Strongest: jobs & income A−, cost of living B−·lowest: walkability D
337BoscobelGrant County · 3,250 people41.5bottom 22.1%C−Strongest: cost of living A−, walkability A−·lowest: jobs & income D
338SomersKenosha County · 8,171 people40.1bottom 19.3%C−Strongest: hazard risk A+, health B+·lowest: cost of living C−
339North Fond du LacFond du Lac County · 5,425 people39.9bottom 18.8%C−Strongest: hazard risk B, safety B·lowest: schools C
340SpartaMonroe County · 9,974 people39.8bottom 18.6%C−Strongest: walkability A−, cost of living B·lowest: safety C−
341HaywardSawyer County · 3,928 people39.3bottom 17.8%C−Strongest: hazard risk B, cost of living B−·lowest: jobs & income C
344Bass LakeSawyer County · 2,896 people37.9bottom 15.0%C−Strongest: cost of living B, hazard risk B−·lowest: jobs & income D−
345Richland CenterRichland County · 5,020 people37.5bottom 14.5%DStrongest: cost of living B+, walkability B·lowest: schools D
346TomahMonroe County · 9,600 people37.1bottom 13.7%DStrongest: walkability A−, cost of living B·lowest: jobs & income C−
347RomeAdams County · 3,420 people36.7bottom 13.1%DStrongest: safety A−, jobs & income B·lowest: schools D−
348HaywardSawyer County · 2,614 people36.6bottom 12.9%DStrongest: walkability A, hazard risk B+·lowest: jobs & income D
349West MilwaukeeMilwaukee County · 3,984 people36.2bottom 12.3%DStrongest: hazard risk A+, walkability A·lowest: safety D−
351AshlandAshland County · 7,927 people34.7bottom 10.2%DStrongest: hazard risk A+, walkability A·lowest: schools D
353BrockwayJackson County · 2,991 people32.6bottom 7.6%DStrongest: cost of living B, hazard risk B·lowest: jobs & income D
354StephensonMarinette County · 3,654 people32.3bottom 7.2%DStrongest: cost of living B, hazard risk B−·lowest: jobs & income D
355WescottShawano County · 3,287 people28.3bottom 3.5%D−Strongest: hazard risk C+, health C·lowest: walkability C−
356Lac du FlambeauVilas County · 3,659 people26.7bottom 2.5%D−Strongest: hazard risk A+, cost of living B−·lowest: jobs & income D−
Method

How this list is made

Each town’s overall grade blends seven livability grades: cost of living (weight 18), safety (18), schools (16), health (14), jobs & income (12), walkability (8) and hazard risk (4). A town needs 2,500+ residents and three of the first four. Letters are national, so an A here means the same as an A in any state; the list is the same towns in the same order, ranked within Wisconsin. Towns without their own FBI figures are graded on the rest and their page says why.

Data years: crime 2023–2025 (FBI), Census ACS 2020–2024, CDC PLACES 2025, state school tests. How grades work

Quick answers

Questions people ask

What is the best small town in Wisconsin?

Among 260 graded towns of 2,500 to 9,999 residents, Mount Horeb (Dane County) ranks first, with an A+; hazard risk (A+) and safety (A+) are its strongest grades; cost of living (C+) is its lowest. Kiel and New Holstein follow.

How are these towns ranked?

By the overall grade, which blends seven livability grades from public data. The letter is national; the rank is within Wisconsin. The full method is on How grades work.

Why isn’t my town on this list?

The list covers towns of 2,500 to 9,999 residents with an overall grade (260 in Wisconsin). 517 smaller places have subject grades only; 5 towns of 2,500+ lack enough data for a grade; Larger towns are on the best places to live list. Every town is on the Wisconsin page.

Go deeper

More Wisconsin lists

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

All Wisconsin rankings →
Other states

Best small towns in other states