Millville ranks first of Utah’s 118 graded towns, with an A+: health (A+) and schools (A) are its strongest grades; walkability (B−) is its lowest. 64 of the 118 (54%) 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
Strongest: safety A+, health A·lowest: cost of living C+
C+CostA+SafetyASchoolsAHealthA−JobsBWalkB+Hazards
Where they are: Six of the top 10 are in Cache County. The top small town (2,500–9,999 residents) is Millville, #1 overall.
All 118 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.
41HeberWasatch County · 19,651 people65.2top 16.4%A−Strongest: health A, jobs & income A−·lowest: cost of living C
42RivertonSalt Lake County · 47,395 people65.1top 16.5%A−Strongest: jobs & income A, health A·lowest: cost of living C−
43South WeberDavis County · 8,218 people65.0top 16.8%A−Strongest: jobs & income A+, health A·lowest: walkability D
44North Salt LakeDavis County · 23,588 people64.8top 17.1%A−Strongest: health A, jobs & income A−·lowest: cost of living C
45SantaquinUtah County · 18,989 people64.7top 17.5%A−Strongest: health A, jobs & income A−·lowest: hazard risk C−
46Woods CrossDavis County · 11,429 people64.6top 17.6%A−Strongest: jobs & income A+, health A−·lowest: hazard risk C
47OremUtah County · 95,214 people64.6top 17.7%A−Strongest: walkability A, health A·lowest: hazard risk C+
48Cottonwood HeightsSalt Lake County · 32,265 people64.4top 18.1%A−Strongest: health A, walkability A·lowest: cost of living C
49SunsetDavis County · 5,549 people64.4top 18.2%A−Strongest: walkability A, cost of living A−·lowest: hazard risk C−
50SpringvilleUtah County · 35,670 people64.4top 18.2%A−Strongest: health A, jobs & income A−·lowest: hazard risk C
51EphraimSanpete County · 6,393 people64.0top 19.2%A−Strongest: walkability A−, health A−·lowest: jobs & income C
52RoyWeber County · 38,794 people63.5top 20.2%A−Strongest: jobs & income A, walkability A−·lowest: cost of living B−
53PerryBox Elder County · 6,226 people63.4top 20.6%A−Strongest: jobs & income A, health A·lowest: safety C+
54HerrimanSalt Lake County · 63,282 people62.5top 22.6%A−Strongest: health A, jobs & income A·lowest: cost of living C−
55AlpineUtah County · 10,444 people62.4top 22.8%A−Strongest: health A+, jobs & income A·lowest: cost of living C−
56VineyardUtah County · 16,092 people62.4top 23.0%A−Strongest: health A, walkability A−·lowest: cost of living C−
57DraperSalt Lake County · 50,652 people62.3top 23.2%A−Strongest: jobs & income A, health A·lowest: cost of living D
58BlandingSan Juan County · 3,199 people62.2top 23.5%A−Strongest: hazard risk A+, walkability A·lowest: jobs & income C
59East Basinunincorporated, Summit County · 4,002 people62.1top 23.6%A−Strongest: health A+, jobs & income A·lowest: cost of living D
60SalemUtah County · 12,234 people62.1top 23.8%A−Strongest: health A, jobs & income A−·lowest: hazard risk C
61MidvaleSalt Lake County · 36,099 people62.0top 23.9%A−Strongest: walkability A+, health A−·lowest: cost of living C
62MidwayWasatch County · 6,011 people62.0top 24.0%A−Strongest: health A+, jobs & income A·lowest: cost of living C−
63LindonUtah County · 12,015 people62.0top 24.2%A−Strongest: health A+, jobs & income A−·lowest: cost of living C
64FillmoreMillard County · 2,874 people61.9top 24.4%A−Strongest: cost of living A, schools A−·lowest: jobs & income D
65Mountain Greenunincorporated, Morgan County · 3,976 people61.6top 25.2%B+Strongest: health A+, jobs & income A·lowest: walkability D−
66EnochIron County · 8,847 people61.1top 26.6%B+Strongest: safety A, health B+·lowest: cost of living C+
67Elk RidgeUtah County · 4,969 people61.0top 26.8%B+Strongest: health A+, jobs & income A−·lowest: hazard risk D
68SandySalt Lake County · 92,386 people60.9top 27.2%B+Strongest: jobs & income A, health A·lowest: cost of living C
69South OgdenWeber County · 17,710 people60.7top 27.7%B+Strongest: walkability A, health A−·lowest: cost of living C+
70West HavenWeber County · 25,627 people60.0top 29.4%B+Strongest: jobs & income A, health A−·lowest: cost of living C
71ProvoUtah County · 114,527 people60.0top 29.5%B+Strongest: walkability A+, health A−·lowest: hazard risk C−
72MantiSanpete County · 3,794 people59.8top 29.9%B+Strongest: health B+, walkability B+·lowest: jobs & income C
73Stansbury Parkunincorporated, Tooele County · 11,242 people59.4top 30.8%B+Strongest: jobs & income A+, health A·lowest: schools C
74BluffdaleSalt Lake County · 19,506 people59.1top 31.7%B+Strongest: jobs & income A+, health A·lowest: hazard risk C−
75ClearfieldDavis County · 35,144 people59.0top 32.1%B+Strongest: walkability A−, health B+·lowest: cost of living C+
76Eagle MountainUtah County · 66,557 people58.6top 32.8%B+Strongest: health A, jobs & income A−·lowest: hazard risk D−
77Maeserunincorporated, Uintah County · 4,435 people58.5top 33.1%B+Strongest: hazard risk A+, health A−·lowest: schools C+
78HarrisvilleWeber County · 7,154 people58.4top 33.4%B+Strongest: jobs & income A, health A−·lowest: safety C
79Plain CityWeber County · 9,256 people57.9top 34.9%B+Strongest: jobs & income A+, health A−·lowest: walkability C−
80WashingtonWashington County · 37,107 people57.6top 35.8%BStrongest: health A, jobs & income A−·lowest: hazard risk D
81Brigham CityBox Elder County · 20,633 people57.4top 36.2%BStrongest: walkability A, health B+·lowest: hazard risk C−
82Park CitySummit County · 8,587 people57.2top 36.6%BStrongest: health A+, jobs & income A·lowest: cost of living C−
83GunnisonSanpete County · 3,693 people56.9top 37.5%BStrongest: hazard risk B+, schools B+·lowest: jobs & income D
84HooperWeber County · 9,741 people56.8top 37.8%BStrongest: jobs & income A, health A−·lowest: walkability C−
85Santa ClaraWashington County · 8,722 people56.8top 37.9%BStrongest: health A, jobs & income A−·lowest: hazard risk D
86GrantsvilleTooele County · 16,472 people56.4top 38.9%BStrongest: jobs & income B+, health B+·lowest: schools C
87West JordanSalt Lake County · 116,812 people56.4top 38.9%BStrongest: jobs & income A, health A−·lowest: cost of living C
88LoganCache County · 55,576 people56.3top 39.2%BStrongest: walkability A, health A−·lowest: jobs & income C
89HolladaySalt Lake County · 31,162 people55.3top 41.8%BStrongest: health A+, jobs & income A+·lowest: schools C−
90DeltaMillard County · 3,868 people54.9top 42.9%BStrongest: schools A−, hazard risk B+·lowest: jobs & income C−
91St. GeorgeWashington County · 108,713 people53.6top 46.5%B−Strongest: health A−, walkability B+·lowest: hazard risk D
92RichfieldSevier County · 8,478 people53.4top 47.0%B−Strongest: walkability A−, health B+·lowest: safety C
93HurricaneWashington County · 25,745 people52.3bottom 49.9%B−Strongest: health B+, schools B+·lowest: hazard risk D−
94SalinaSevier County · 2,640 people52.3bottom 49.6%B−Strongest: cost of living B+, health B·lowest: jobs & income D
95MillcreekSalt Lake County · 63,926 people52.2bottom 49.4%B−Strongest: walkability A, health A·lowest: hazard risk D
96TooeleTooele County · 42,270 people52.0bottom 48.9%B−Strongest: walkability A, health B+·lowest: schools C
97Cedar CityIron County · 41,871 people51.4bottom 47.4%B−Strongest: walkability A−, health B+·lowest: jobs & income C−
98Mount PleasantSanpete County · 4,018 people51.1bottom 46.6%B−Strongest: health B, walkability B·lowest: jobs & income C−
99RooseveltDuchesne County · 7,032 people50.7bottom 45.6%B−Strongest: hazard risk A+, walkability A−·lowest: jobs & income C−
100MonroeSevier County · 2,738 people50.0bottom 43.7%C+Strongest: schools B, cost of living B·lowest: walkability D
101VernalUintah County · 10,671 people49.5bottom 42.1%C+Strongest: hazard risk A+, walkability A·lowest: jobs & income D
102TremontonBox Elder County · 12,934 people49.0bottom 40.9%C+Strongest: health B+, schools B−·lowest: jobs & income C+
103MurraySalt Lake County · 53,297 people48.6bottom 39.6%C+Strongest: walkability A, health A·lowest: safety D
104GarlandBox Elder County · 2,915 people48.3bottom 38.9%C+Strongest: health B+, cost of living B·lowest: walkability D
105OgdenWeber County · 89,510 people46.9bottom 35.1%C+Strongest: walkability A, health B·lowest: safety C−
106IvinsWashington County · 11,546 people46.7bottom 34.7%CStrongest: health A−, schools B+·lowest: hazard risk D−
107MagnaSalt Lake County · 35,401 people46.7bottom 34.6%CStrongest: jobs & income B+, health B·lowest: schools C−
108KearnsSalt Lake County · 35,404 people46.6bottom 34.4%CStrongest: walkability A−, jobs & income B+·lowest: schools C−
109TaylorsvilleSalt Lake County · 57,484 people46.3bottom 33.7%CStrongest: walkability A−, jobs & income B+·lowest: schools C−
110RiverdaleWeber County · 9,206 people45.6bottom 31.7%CStrongest: walkability B+, jobs & income B·lowest: safety D
111ErdaTooele County · 4,056 people44.7bottom 29.4%CStrongest: health A, jobs & income B+·lowest: hazard risk C−
112La VerkinWashington County · 4,515 people42.3bottom 23.8%C−Strongest: schools B+, walkability B−·lowest: jobs & income C−
113West Valley CitySalt Lake County · 137,491 people41.4bottom 22.1%C−Strongest: walkability A, jobs & income B+·lowest: schools C−
114Salt Lake CitySalt Lake County · 218,428 people39.3bottom 17.7%C−Strongest: walkability A+, health A−·lowest: safety D−
115ParowanIron County · 3,282 people38.2bottom 15.5%C−Strongest: schools B, health C+·lowest: jobs & income D
116PriceCarbon County · 8,368 people38.0bottom 15.2%C−Strongest: hazard risk A−, walkability B·lowest: jobs & income D
117South Salt LakeSalt Lake County · 26,934 people37.2bottom 13.9%DStrongest: walkability A, health B·lowest: safety D−
118MoabGrand County · 5,206 people35.5bottom 11.2%DStrongest: walkability A, health B·lowest: safety C−
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 Utah. 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 place to live in Utah?
Millville (Cache County) ranks first of 118 graded towns, with an A+; health (A+) and schools (A) are its strongest grades; walkability (B−) is its lowest. Richmond and Smithfield follow.
What is the best small town in Utah?
Among towns of 2,500 to 9,999 residents, Millville ranks first (A+), then Richmond and Hyde Park.
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 Utah. The full method is on How grades work.
Why isn’t my town on this list?
The list covers towns of 2,500+ residents with an overall grade (118 in Utah). 54 smaller places have subject grades only; 1 town of 2,500+ lack enough data for a grade; Every town is on the Utah page.
Go deeper
More Utah lists
Every list ranks the same 2,500+ towns, so a town’s rank means the same thing on each.