Guest, Sign inJoin
Lakewood Bay Oswego LakeLake Oswego, #1 on this list · Photo: Esprqii · CC BY-SA 3.0
Oregon rankings · Schools

Towns with the best schools in Oregon

Lake Oswego ranks first on schools among Oregon’s 142 towns of 2,500+; 42 of the 142 grade A− or better (schools are graded within each state).

The Schools grade: state test results and graduation rates of the districts serving each town, compared with the state’s other districts (U.S. Department of Education). How grades work

#1

Lake Oswego

Clackamas County · 39,722 people
A+

Schools grade, graded within the state·Overall A · #4 of 142 in OR

#2

Sherwood

Washington County · 20,535 people
A+

Schools grade, graded within the state·Overall A− · #13 of 142 in OR

#3

Ashland

Jackson County · 20,889 people
A+

Schools grade, graded within the state·Overall B− · #45 of 142 in OR

All 142 towns

Schools grade, best first (graded within Oregon). Towns with the same score share a rank (T = tied; 71 towns here); the overall grade and state rank are beside each.

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

#TownGradeOverall
1Lake OswegoClackamas County · 39,722 peopleA+graded within the state·Overall A · #4 of 142
2SherwoodWashington County · 20,535 peopleA+graded within the state·Overall A− · #13 of 142
3AshlandJackson County · 20,889 peopleA+graded within the state·Overall B− · #45 of 142
T4West LinnClackamas County · 26,567 peopleAgraded within the state·Overall A · #6 of 142
T4WilsonvilleClackamas County · 27,833 peopleAgraded within the state·Overall B+ · #24 of 142
T6BeavertonWashington County · 97,842 peopleAgraded within the state·Overall B− · #38 of 142
T6Bethanyunincorporated, Washington County · 33,106 peopleAgraded within the state·Overall A · #1 of 142
T6Cedar Hillsunincorporated, Washington County · 8,388 peopleAgraded within the state·Overall A · #3 of 142
T6Cedar Millunincorporated, Multnomah County · 19,471 peopleAgraded within the state·Overall A · #7 of 142
T6Garden Home-Whitfordunincorporated, Washington County · 6,979 peopleAgraded within the state·Overall A− · #11 of 142
T6Marlene Villageunincorporated, Washington County · 5,439 peopleAgraded within the state·Overall A− · #14 of 142
T6Oak Hillsunincorporated, Washington County · 11,131 peopleAgraded within the state·Overall A · #2 of 142
T6Raleigh Hillsunincorporated, Washington County · 6,744 peopleAgraded within the state·Overall A− · #8 of 142
T6West Haven-Sylvanunincorporated, Multnomah County · 7,674 peopleAgraded within the state·Overall A · #5 of 142
T6West Slopeunincorporated, Washington County · 6,582 peopleAgraded within the state·Overall A− · #9 of 142
16TualatinWashington County · 28,139 peopleAgraded within the state·Overall B− · #42 of 142
17SilvertonMarion County · 10,450 peopleAgraded within the state·Overall B− · #41 of 142
T18BendDeschutes County · 107,342 peopleAgraded within the state·Overall B+ · #21 of 142
T18Deschutes River Woodsunincorporated, Deschutes County · 5,797 peopleAgraded within the state·Overall B+ · #19 of 142
T18La PineDeschutes County · 2,563 peopleAgraded within the state·Overall C+ · #51 of 142
T18Three Riversunincorporated, Deschutes County · 3,995 peopleAgraded within the state·Overall C+ · #58 of 142
22SistersDeschutes County · 2,934 peopleAgraded within the state·Overall B+ · #17 of 142
23PortlandMultnomah County · 635,109 peopleAgraded within the state·Overall C+ · #61 of 142
T24Juniper Canyonunincorporated, Crook County · 2,666 peopleAgraded within the state·Overall B · #31 of 142
T24PrinevilleCrook County · 11,994 peopleAgraded within the state·Overall C+ · #57 of 142
26McMinnvilleYamhill County · 34,647 peopleAgraded within the state·Overall C+ · #55 of 142
T27Mount Hood Villagesunincorporated, Clackamas County · 4,703 peopleA−graded within the state·Overall B+ · #25 of 142
T27SandyClackamas County · 13,323 peopleA−graded within the state·Overall B · #36 of 142
T29Alohaunincorporated, Washington County · 52,389 peopleA−graded within the state·Overall B+ · #22 of 142
T29Rockcreekunincorporated, Washington County · 9,223 peopleA−graded within the state·Overall A− · #10 of 142
31CorvallisBenton County · 61,499 peopleA−graded within the state·Overall C+ · #52 of 142
T32DundeeYamhill County · 3,193 peopleA−graded within the state·Overall B+ · #29 of 142
T32NewbergYamhill County · 26,896 peopleA−graded within the state·Overall B+ · #18 of 142
34LafayetteYamhill County · 4,705 peopleA−graded within the state·Overall A− · #16 of 142
T35Bull Mountainunincorporated, Washington County · 9,865 peopleA−graded within the state·Overall A− · #15 of 142
T35King CityWashington County · 5,044 peopleA−graded within the state·Overall B+ · #28 of 142
T35Metzgerunincorporated, Washington County · 3,714 peopleA−graded within the state·Overall B+ · #20 of 142
T35TigardWashington County · 57,929 peopleA−graded within the state·Overall B− · #47 of 142
39ScappooseColumbia County · 8,257 peopleA−graded within the state·Overall B · #30 of 142
40PhilomathBenton County · 5,699 peopleA−graded within the state·Overall B+ · #23 of 142
41CreswellLane County · 5,566 peopleA−graded within the state·Overall A− · #12 of 142
42Hood RiverHood River County · 8,315 peopleA−graded within the state·Overall B− · #43 of 142
T43River Roadunincorporated, Lane County · 8,862 peopleB+graded within the state·Overall C · #71 of 142
T43Santa Claraunincorporated, Lane County · 10,551 peopleB+graded within the state·Overall B · #35 of 142
45Baker CityBaker County · 10,071 peopleB+graded within the state·Overall C+ · #54 of 142
T46Crooked River Ranchunincorporated, Deschutes County · 5,160 peopleB+graded within the state·Overall C− · #88 of 142
T46Eagle Crestunincorporated, Deschutes County · 2,677 peopleB+graded within the state·Overall C · #67 of 142
T46RedmondDeschutes County · 38,547 peopleB+graded within the state·Overall C+ · #53 of 142
T49Happy ValleyClackamas County · 28,916 peopleB+graded within the state·Overall B+ · #26 of 142
T49MilwaukieClackamas County · 22,114 peopleB+graded within the state·Overall B− · #39 of 142
T49Oak Groveunincorporated, Clackamas County · 16,796 peopleB+graded within the state·Overall B · #37 of 142
T49Oatfieldunincorporated, Clackamas County · 13,294 peopleB+graded within the state·Overall B · #33 of 142
53BandonCoos County · 3,297 peopleB+graded within the state·Overall D · #104 of 142
54AstoriaClatsop County · 9,838 peopleB+graded within the state·Overall C− · #92 of 142
55LebanonLinn County · 20,267 peopleB+graded within the state·Overall C− · #78 of 142
56Jennings Lodgeunincorporated, Clackamas County · 7,971 peopleB+graded within the state·Overall B− · #50 of 142
57La GrandeUnion County · 12,985 peopleB+graded within the state·Overall C− · #79 of 142
58EugeneLane County · 178,618 peopleB+graded within the state·Overall C− · #89 of 142
59AumsvilleMarion County · 4,241 peopleB+graded within the state·Overall B− · #48 of 142
60NyssaMalheur County · 3,257 peopleB+graded within the state·Overall C+ · #59 of 142
T61JacksonvilleJackson County · 2,972 peopleB+graded within the state·Overall C · #69 of 142
T61MedfordJackson County · 86,494 peopleB+graded within the state·Overall C− · #91 of 142
T63HillsboroWashington County · 111,126 peopleBgraded within the state·Overall C+ · #56 of 142
T63North PlainsWashington County · 3,414 peopleBgraded within the state·Overall B+ · #27 of 142
65Mount AngelMarion County · 3,454 peopleBgraded within the state·Overall D · #124 of 142
66Oregon CityClackamas County · 38,175 peopleBgraded within the state·Overall B− · #44 of 142
67CanbyClackamas County · 18,004 peopleBgraded within the state·Overall B · #34 of 142
68BoardmanMorrow County · 4,495 peopleBgraded within the state·Overall C+ · #62 of 142
69EstacadaClackamas County · 5,814 peopleBgraded within the state·Overall B− · #40 of 142
70GladstoneClackamas County · 11,865 peopleBgraded within the state·Overall C · #63 of 142
T71StaytonMarion County · 8,488 peopleBgraded within the state·Overall C · #74 of 142
T71SublimityMarion County · 2,882 peopleBgraded within the state·Overall C · #65 of 142
73CorneliusWashington County · 15,520 peopleBgraded within the state·Overall C · #70 of 142
74Beavercreekunincorporated, Clackamas County · 4,894 peopleBgraded within the state·Overall B · #32 of 142
T75AlbanyLinn County · 56,894 peopleBgraded within the state·Overall C− · #82 of 142
T75MillersburgLinn County · 3,583 peopleBgraded within the state·Overall C+ · #60 of 142
77Altamontunincorporated, Klamath County · 19,927 peopleBgraded within the state·Overall D · #98 of 142
78Junction CityLane County · 7,224 peopleB−graded within the state·Overall C · #73 of 142
T79Grants PassJosephine County · 39,239 peopleB−graded within the state·Overall D− · #126 of 142
T79Redwoodunincorporated, Josephine County · 3,721 peopleB−graded within the state·Overall D · #113 of 142
81HermistonUmatilla County · 19,906 peopleB−graded within the state·Overall D · #101 of 142
T82PhoenixJackson County · 4,920 peopleB−graded within the state·Overall C− · #94 of 142
T82TalentJackson County · 6,296 peopleB−graded within the state·Overall C · #72 of 142
84OntarioMalheur County · 11,957 peopleB−graded within the state·Overall C− · #80 of 142
85GervaisMarion County · 2,572 peopleB−graded within the state·Overall C · #75 of 142
86TillamookTillamook County · 5,162 peopleC+graded within the state·Overall D · #111 of 142
87PendletonUmatilla County · 16,989 peopleC+graded within the state·Overall D · #99 of 142
88Klamath FallsKlamath County · 22,111 peopleC+graded within the state·Overall D− · #134 of 142
89VenetaLane County · 5,138 peopleC+graded within the state·Overall D · #100 of 142
T90Lincoln CityLincoln County · 10,117 peopleC+graded within the state·Overall D− · #130 of 142
T90NewportLincoln County · 10,383 peopleC+graded within the state·Overall D− · #129 of 142
T90ToledoLincoln County · 3,473 peopleC+graded within the state·Overall D · #121 of 142
93Coos BayCoos County · 15,686 peopleC+graded within the state·Overall D− · #137 of 142
94MadrasJefferson County · 7,829 peopleC+graded within the state·Overall D · #108 of 142
T95Greenunincorporated, Douglas County · 7,541 peopleC+graded within the state·Overall C− · #93 of 142
T95RoseburgDouglas County · 23,693 peopleC+graded within the state·Overall D− · #138 of 142
T95Roseburg Northunincorporated, Douglas County · 4,601 peopleC+graded within the state·Overall C · #66 of 142
98Cottage GroveLane County · 10,851 peopleC+graded within the state·Overall D · #95 of 142
99HarrisburgLinn County · 3,765 peopleC+graded within the state·Overall D · #112 of 142
100North BendCoos County · 9,966 peopleC+graded within the state·Overall D · #122 of 142
101DallasPolk County · 17,890 peopleC+graded within the state·Overall D · #96 of 142
102Sweet HomeLinn County · 10,308 peopleCgraded within the state·Overall D− · #135 of 142
103MolallaClackamas County · 10,104 peopleCgraded within the state·Overall B− · #46 of 142
104Forest GroveWashington County · 27,252 peopleCgraded within the state·Overall C− · #81 of 142
105Damascusunincorporated, Clackamas County · 11,437 peopleCgraded within the state·Overall C · #64 of 142
T106Four Cornersunincorporated, Marion County · 16,275 peopleCgraded within the state·Overall D · #109 of 142
T106Hayesvilleunincorporated, Marion County · 21,246 peopleCgraded within the state·Overall D− · #125 of 142
T106KeizerMarion County · 39,140 peopleCgraded within the state·Overall C− · #87 of 142
T106SalemMarion County · 181,779 peopleCgraded within the state·Overall D · #116 of 142
T110Eagle PointJackson County · 9,861 peopleCgraded within the state·Overall C− · #90 of 142
T110Shady CoveJackson County · 3,039 peopleCgraded within the state·Overall D− · #132 of 142
T110White Cityunincorporated, Jackson County · 10,750 peopleCgraded within the state·Overall D · #107 of 142
113Milton-FreewaterUmatilla County · 7,029 peopleCgraded within the state·Overall D · #105 of 142
114SheridanYamhill County · 6,243 peopleCgraded within the state·Overall C− · #77 of 142
T115FlorenceLane County · 9,468 peopleCgraded within the state·Overall D · #114 of 142
T115Heceta Beachunincorporated, Lane County · 2,651 peopleCgraded within the state·Overall D · #115 of 142
117SutherlinDouglas County · 8,635 peopleCgraded within the state·Overall D− · #128 of 142
118SeasideClatsop County · 7,092 peopleCgraded within the state·Overall D− · #141 of 142
119SpringfieldLane County · 61,431 peopleCgraded within the state·Overall D · #123 of 142
120Central PointJackson County · 19,139 peopleCgraded within the state·Overall C · #68 of 142
121WarrentonClatsop County · 6,312 peopleCgraded within the state·Overall D · #117 of 142
122The DallesWasco County · 15,745 peopleC−graded within the state·Overall D− · #136 of 142
123HubbardMarion County · 3,399 peopleC−graded within the state·Overall B− · #49 of 142
T124IndependencePolk County · 10,195 peopleC−graded within the state·Overall D · #97 of 142
T124MonmouthPolk County · 11,543 peopleC−graded within the state·Overall C · #76 of 142
126DaytonYamhill County · 2,647 peopleC−graded within the state·Overall C− · #86 of 142
127St. HelensColumbia County · 14,450 peopleC−graded within the state·Overall C− · #84 of 142
T128Myrtle CreekDouglas County · 3,481 peopleC−graded within the state·Overall D− · #131 of 142
T128Tri-Cityunincorporated, Douglas County · 4,234 peopleC−graded within the state·Overall D− · #142 of 142
130BrookingsCurry County · 6,431 peopleC−graded within the state·Overall D · #119 of 142
131GreshamMultnomah County · 111,513 peopleC−graded within the state·Overall D · #118 of 142
132JeffersonMarion County · 3,299 peopleDgraded within the state·Overall D · #110 of 142
133UmatillaUmatilla County · 8,220 peopleDgraded within the state·Overall D · #103 of 142
134WoodburnMarion County · 31,948 peopleDgraded within the state·Overall D− · #140 of 142
135WinstonDouglas County · 5,680 peopleDgraded within the state·Overall D− · #139 of 142
136CoquilleCoos County · 3,943 peopleDgraded within the state·Overall D− · #127 of 142
137BurnsHarney County · 2,692 peopleDgraded within the state·Overall D · #120 of 142
T138FairviewMultnomah County · 10,762 peopleDgraded within the state·Overall D · #102 of 142
T138TroutdaleMultnomah County · 15,776 peopleDgraded within the state·Overall C− · #83 of 142
T138Wood VillageMultnomah County · 4,706 peopleDgraded within the state·Overall C− · #85 of 142
141OakridgeLane County · 3,127 peopleD−graded within the state·Overall D− · #133 of 142
142ReedsportDouglas County · 4,271 peopleD−graded within the state·Overall D · #106 of 142
Quick answers

Questions people ask

Which Oregon town has the best schools?

Lake Oswego (Clackamas County) ranks first on schools among 142 towns, with an A+; Sherwood and Ashland follow. Schools are compared within Oregon, so the letter is a state grade.

How are these towns ranked?

The Schools grade: state test results and graduation rates of the districts serving each town, compared with the state’s other districts (U.S. Department of Education). 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 schools grade (142 in Oregon). Smaller towns have the grade on their page but no rank. Every town is on the Oregon page.

Go deeper

More Oregon lists

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

All Oregon rankings →
Other states

Towns with the best schools in other states