Guest, Sign inJoin
Minnesota rankings · Schools

Towns with the best schools in Minnesota

Deephaven, Delano and Franklin Township and 6 more share first place on schools among Minnesota’s 274 towns of 2,500+; 115 of the 274 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

#T1

Delano

Wright County · 7,788 people
A+

Schools grade, graded within the state·Overall A+ · #16 of 271 in MN

#T1

Franklin Township

Wright County · 2,939 people
A+

Schools grade, graded within the state·Overall A− · #130 of 271 in MN

All 274 towns

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

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

#TownGradeOverall
T1DeephavenHennepin County · 3,794 peopleA+graded within the state·Overall A+ · #3 of 271
T1DelanoWright County · 7,788 peopleA+graded within the state·Overall A+ · #16 of 271
T1Franklin TownshipWright County · 2,939 peopleA+graded within the state·Overall A− · #130 of 271
T1IndependenceHennepin County · 3,763 peopleA+graded within the state·Overall A · #61 of 271
T1MedinaHennepin County · 7,460 peopleA+graded within the state·Overall A+ · #11 of 271
T1OronoHennepin County · 8,301 peopleA+graded within the state·Overall A · #56 of 271
T1PlymouthHennepin County · 78,942 peopleA+graded within the state·Overall A+ · #23 of 271
T1ShorewoodHennepin County · 7,620 peopleA+graded within the state·Overall A · #47 of 271
T1WayzataHennepin County · 4,344 peopleA+graded within the state·Overall A · #59 of 271
T10EdinaHennepin County · 54,356 peopleA+graded within the state·Overall A · #79 of 271
T10MahtomediWashington County · 8,189 peopleA+graded within the state·Overall A · #51 of 271
T10Thomson TownshipCarlton County · 5,624 peopleA+graded within the state·Overall A · #81 of 271
T13ByronOlmsted County · 6,740 peopleA+graded within the state·Overall A+ · #9 of 271
T13MoundHennepin County · 9,064 peopleA+graded within the state·Overall A+ · #18 of 271
15SartellStearns County · 19,918 peopleAgraded within the state·Overall B+ · #153 of 271
T16Brockway TownshipStearns County · 3,016 peopleAgraded within the state·Overall A− · #123 of 271
T16CokatoWright County · 2,793 peopleAgraded within the state·Overall A · #49 of 271
T16MinnetonkaHennepin County · 53,969 peopleAgraded within the state·Overall A · #75 of 271
T16St. MichaelWright County · 22,498 peopleAgraded within the state·Overall A+ · #26 of 271
T20AnnandaleWright County · 3,801 peopleAgraded within the state·Overall A+ · #17 of 271
T20BarnesvilleClay County · 2,767 peopleAgraded within the state·Overall A+ · #2 of 271
T20Cedar Lake TownshipScott County · 3,080 peopleAgraded within the state·Overall A− · #115 of 271
T20MinnetristaHennepin County · 9,458 peopleAgraded within the state·Overall A+ · #35 of 271
T20New PragueScott County · 8,238 peopleAgraded within the state·Overall A+ · #7 of 271
T20WaconiaCarver County · 14,113 peopleAgraded within the state·Overall A+ · #31 of 271
T26ChatfieldFillmore County · 3,018 peopleAgraded within the state·Overall A+ · #1 of 271
T26Credit River5,644 peopleAgraded within the state·No overall grade
T26Eden PrairieHennepin County · 63,075 peopleAgraded within the state·Overall A · #54 of 271
T26Elko New MarketScott County · 5,300 peopleAgraded within the state·Overall A · #93 of 271
T26GrantWashington County · 3,954 peopleAgraded within the state·Overall A · #86 of 271
T26KassonDodge County · 7,350 peopleAgraded within the state·Overall A+ · #22 of 271
T26New Market TownshipScott County · 3,574 peopleAgraded within the state·Overall B+ · #164 of 271
T26Prior LakeScott County · 28,140 peopleAgraded within the state·Overall A · #74 of 271
T26Spring Lake TownshipScott County · 3,498 peopleAgraded within the state·Overall B+ · #154 of 271
T35AlbertvilleWright County · 8,544 peopleAgraded within the state·Overall A+ · #6 of 271
T35Corinna TownshipWright County · 2,596 peopleAgraded within the state·Overall A− · #134 of 271
T35LakevilleDakota County · 79,270 peopleAgraded within the state·Overall A+ · #30 of 271
T35LuverneRock County · 4,984 peopleAgraded within the state·Overall A+ · #32 of 271
T35OtsegoWright County · 24,525 peopleAgraded within the state·Overall A · #82 of 271
T40CaledoniaHouston County · 2,768 peopleAgraded within the state·Overall A+ · #4 of 271
T40CentervilleAnoka County · 3,978 peopleAgraded within the state·Overall A+ · #10 of 271
T40Circle PinesAnoka County · 4,967 peopleAgraded within the state·Overall A+ · #24 of 271
T40HermantownSt. Louis County · 10,110 peopleAgraded within the state·Overall B · #190 of 271
T40LexingtonAnoka County · 3,081 peopleAgraded within the state·Overall A− · #139 of 271
T40VictoriaCarver County · 12,447 peopleAgraded within the state·Overall A+ · #20 of 271
T46New London TownshipKandiyohi County · 2,965 peopleAgraded within the state·Overall A+ · #34 of 271
T46NorthfieldRice County · 21,992 peopleAgraded within the state·Overall A− · #102 of 271
T48Elk RiverSherburne County · 27,896 peopleAgraded within the state·Overall A · #48 of 271
T48Livonia TownshipSherburne County · 6,436 peopleAgraded within the state·Overall A · #65 of 271
T48MorrisStevens County · 5,150 peopleAgraded within the state·Overall A+ · #38 of 271
T48RogersHennepin County · 15,606 peopleAgraded within the state·Overall A · #95 of 271
T48ZimmermanSherburne County · 6,904 peopleAgraded within the state·Overall A− · #119 of 271
T53Big Lake TownshipSherburne County · 8,283 peopleAgraded within the state·Overall A− · #106 of 271
T53CarverCarver County · 7,198 peopleAgraded within the state·Overall A · #40 of 271
T53ChanhassenCarver County · 25,748 peopleAgraded within the state·Overall A · #72 of 271
T53ChaskaCarver County · 30,513 peopleAgraded within the state·Overall A+ · #33 of 271
T53MonticelloWright County · 15,670 peopleAgraded within the state·Overall A · #63 of 271
T53Monticello TownshipWright County · 3,374 peopleAgraded within the state·Overall A · #52 of 271
T53PlainviewWabasha County · 3,482 peopleAgraded within the state·Overall A+ · #5 of 271
T53Silver Creek TownshipWright County · 2,620 peopleAgraded within the state·Overall A · #85 of 271
T61AftonWashington County · 2,960 peopleAgraded within the state·Overall B+ · #162 of 271
T61AlbanyStearns County · 2,873 peopleAgraded within the state·Overall A+ · #14 of 271
T61BayportWashington County · 3,721 peopleAgraded within the state·Overall A+ · #25 of 271
T61Lake ElmoWashington County · 14,376 peopleAgraded within the state·Overall A− · #117 of 271
T61Oak Park HeightsWashington County · 4,625 peopleAgraded within the state·Overall B+ · #165 of 271
T61StillwaterWashington County · 19,354 peopleAgraded within the state·Overall A · #67 of 271
T61West Lakeland TownshipWashington County · 3,931 peopleAgraded within the state·Overall A · #60 of 271
T61ZumbrotaGoodhue County · 4,072 peopleAgraded within the state·Overall A+ · #12 of 271
T69AlexandriaDouglas County · 15,045 peopleA−graded within the state·Overall B+ · #144 of 271
T69Alexandria TownshipDouglas County · 3,114 peopleA−graded within the state·Overall A · #87 of 271
T69Arden HillsRamsey County · 9,583 peopleA−graded within the state·Overall A+ · #28 of 271
T69La Grand TownshipDouglas County · 4,309 peopleA−graded within the state·Overall A− · #131 of 271
T69Mounds ViewRamsey County · 12,786 peopleA−graded within the state·Overall A · #88 of 271
T69New BrightonRamsey County · 22,159 peopleA−graded within the state·Overall A · #73 of 271
T69ShoreviewRamsey County · 26,906 peopleA−graded within the state·Overall A · #42 of 271
T76BeckerSherburne County · 5,425 peopleA−graded within the state·Overall A · #39 of 271
T76Pine IslandGoodhue County · 3,911 peopleA−graded within the state·Overall A− · #114 of 271
78JordanScott County · 6,988 peopleA−graded within the state·Overall A · #66 of 271
T79Breezy PointCrow Wing County · 2,771 peopleA−graded within the state·Overall A− · #132 of 271
T79BuffaloWright County · 16,878 peopleA−graded within the state·Overall A · #64 of 271
T79FoleyBenton County · 2,650 peopleA−graded within the state·Overall B+ · #171 of 271
T79HanoverWright County · 4,392 peopleA−graded within the state·Overall A− · #101 of 271
T79LonsdaleRice County · 5,117 peopleA−graded within the state·Overall A+ · #19 of 271
T79MontroseWright County · 3,986 peopleA−graded within the state·Overall A− · #100 of 271
T79Rockford TownshipWright County · 3,474 peopleA−graded within the state·Overall A− · #107 of 271
T79St. CharlesWinona County · 4,090 peopleA−graded within the state·Overall A+ · #29 of 271
T87Chisago CityChisago County · 5,955 peopleA−graded within the state·Overall A− · #140 of 271
T87Chisago Lake TownshipChisago County · 4,958 peopleA−graded within the state·Overall A− · #103 of 271
T87HutchinsonMcLeod County · 14,655 peopleA−graded within the state·Overall B+ · #147 of 271
T87LindstromChisago County · 5,039 peopleA−graded within the state·Overall A · #53 of 271
T87Norwood Young AmericaCarver County · 3,777 peopleA−graded within the state·Overall A− · #120 of 271
T87NowthenAnoka County · 4,630 peopleA−graded within the state·Overall A · #55 of 271
T93Cottage GroveWashington County · 43,604 peopleA−graded within the state·Overall A · #50 of 271
T93GlenwoodPope County · 2,631 peopleA−graded within the state·Overall A− · #135 of 271
T93Lino LakesAnoka County · 23,220 peopleA−graded within the state·Overall A · #96 of 271
T93New UlmBrown County · 13,863 peopleA−graded within the state·Overall A · #78 of 271
T93NewportWashington County · 5,525 peopleA−graded within the state·Overall B · #185 of 271
T93St. Paul ParkWashington County · 5,396 peopleA−graded within the state·Overall A · #77 of 271
T93WoodburyWashington County · 81,558 peopleA−graded within the state·Overall A · #92 of 271
T100CorcoranHennepin County · 9,269 peopleA−graded within the state·Overall A · #44 of 271
T100MoraKanabec County · 3,763 peopleA−graded within the state·Overall B · #192 of 271
T100North OaksRamsey County · 5,283 peopleA−graded within the state·Overall A− · #138 of 271
T100St. AnthonyHennepin County · 9,989 peopleA−graded within the state·Overall A− · #125 of 271
T104Apple ValleyDakota County · 55,248 peopleA−graded within the state·Overall A− · #143 of 271
T104May TownshipWashington County · 2,638 peopleA−graded within the state·Overall B+ · #149 of 271
T104RamseyAnoka County · 29,624 peopleA−graded within the state·Overall A · #84 of 271
T104RosemountDakota County · 31,881 peopleA−graded within the state·Overall A+ · #13 of 271
T104Sylvan TownshipCass County · 3,030 peopleA−graded within the state·Overall A− · #136 of 271
T109MayerCarver County · 2,563 peopleA−graded within the state·Overall A− · #97 of 271
T109WatertownCarver County · 4,789 peopleA−graded within the state·Overall A+ · #21 of 271
T111Big LakeSherburne County · 12,929 peopleA−graded within the state·Overall A · #43 of 271
T111Cannon FallsGoodhue County · 4,209 peopleA−graded within the state·Overall A− · #128 of 271
T111Empire3,063 peopleA−graded within the state·No overall grade
T111LitchfieldMeeker County · 6,528 peopleA−graded within the state·Overall B+ · #176 of 271
T111Orrock TownshipSherburne County · 3,698 peopleA−graded within the state·Overall A− · #141 of 271
T116EaganDakota County · 67,109 peopleB+graded within the state·Overall A− · #108 of 271
T116HastingsDakota County · 22,563 peopleB+graded within the state·Overall A · #69 of 271
T118Inver Grove HeightsDakota County · 36,873 peopleB+graded within the state·Overall A · #89 of 271
T118St. PeterNicollet County · 12,275 peopleB+graded within the state·Overall A− · #124 of 271
T120AndoverAnoka County · 33,874 peopleB+graded within the state·Overall A− · #112 of 271
T120AnokaAnoka County · 18,169 peopleB+graded within the state·Overall B+ · #163 of 271
T120ChamplinHennepin County · 23,125 peopleB+graded within the state·Overall A · #91 of 271
T120Coon RapidsAnoka County · 64,193 peopleB+graded within the state·Overall B+ · #174 of 271
T120DaytonHennepin County · 11,402 peopleB+graded within the state·Overall A · #80 of 271
T120DilworthClay County · 4,823 peopleB+graded within the state·Overall B · #209 of 271
T120Ham LakeAnoka County · 17,104 peopleB+graded within the state·Overall A · #83 of 271
T120Le SueurLe Sueur County · 4,210 peopleB+graded within the state·Overall A · #90 of 271
T120WyomingChisago County · 8,121 peopleB+graded within the state·Overall A · #41 of 271
T129Cold SpringStearns County · 4,329 peopleB+graded within the state·Overall B− · #223 of 271
T129Vadnais HeightsRamsey County · 13,052 peopleB+graded within the state·Overall A · #94 of 271
T129Wakefield TownshipStearns County · 2,829 peopleB+graded within the state·Overall B · #194 of 271
T129White Bear LakeRamsey County · 23,392 peopleB+graded within the state·Overall A− · #122 of 271
T129White Bear TownshipRamsey County · 10,399 peopleB+graded within the state·Overall A · #68 of 271
T134ElySt. Louis County · 3,231 peopleB+graded within the state·Overall A− · #116 of 271
T134Fergus FallsOtter Tail County · 14,246 peopleB+graded within the state·Overall B · #208 of 271
T134Grand Lake TownshipSt. Louis County · 2,705 peopleB+graded within the state·Overall C+ · #247 of 271
T134ProctorSt. Louis County · 3,054 peopleB+graded within the state·Overall A− · #113 of 271
T138BaxterCrow Wing County · 9,217 peopleB+graded within the state·Overall C+ · #245 of 271
T138BlaineAnoka County · 76,603 peopleB+graded within the state·Overall B+ · #156 of 271
T138BrainerdCrow Wing County · 14,428 peopleB+graded within the state·Overall C+ · #238 of 271
T138CohassetItasca County · 2,728 peopleB+graded within the state·Overall C+ · #235 of 271
T138Grand RapidsItasca County · 11,181 peopleB+graded within the state·Overall B− · #211 of 271
T138Harris TownshipItasca County · 3,364 peopleB+graded within the state·Overall B− · #226 of 271
T138HugoWashington County · 17,167 peopleB+graded within the state·Overall A− · #127 of 271
145HibbingSt. Louis County · 15,823 peopleB+graded within the state·Overall A− · #121 of 271
T146MelroseStearns County · 3,888 peopleB+graded within the state·Overall A− · #118 of 271
T146ShakopeeScott County · 49,366 peopleB+graded within the state·Overall B+ · #150 of 271
T146StewartvilleOlmsted County · 6,850 peopleB+graded within the state·Overall A · #57 of 271
T149GreenfieldHennepin County · 2,962 peopleB+graded within the state·Overall A− · #142 of 271
T149JacksonJackson County · 3,305 peopleB+graded within the state·Overall A · #76 of 271
T149RockfordWright County · 4,827 peopleB+graded within the state·Overall A · #46 of 271
T152Baldwin7,231 peopleBgraded within the state·No overall grade
T152Blue Hill TownshipSherburne County · 2,625 peopleBgraded within the state·Overall B+ · #159 of 271
T152Brooklyn ParkHennepin County · 83,543 peopleBgraded within the state·Overall B · #199 of 271
T152ColumbusAnoka County · 4,356 peopleBgraded within the state·Overall B+ · #158 of 271
T152FarmingtonDakota County · 25,425 peopleBgraded within the state·Overall A+ · #37 of 271
T152Forest LakeWashington County · 20,952 peopleBgraded within the state·Overall B+ · #168 of 271
T152Linwood TownshipAnoka County · 5,403 peopleBgraded within the state·Overall B+ · #170 of 271
T152MontevideoChippewa County · 5,335 peopleBgraded within the state·Overall A− · #111 of 271
T152PrincetonMille Lacs County · 5,480 peopleBgraded within the state·Overall B+ · #151 of 271
T152SavageScott County · 32,970 peopleBgraded within the state·Overall A− · #133 of 271
T152ScandiaWashington County · 3,979 peopleBgraded within the state·Overall B+ · #152 of 271
T163Pelican RapidsOtter Tail County · 2,608 peopleBgraded within the state·Overall A− · #126 of 271
T163PerhamOtter Tail County · 3,746 peopleBgraded within the state·Overall B · #202 of 271
T163StaplesTodd County · 3,074 peopleBgraded within the state·Overall B− · #212 of 271
T166CloquetCarlton County · 12,399 peopleBgraded within the state·Overall B− · #228 of 271
T166Dodge CenterDodge County · 2,951 peopleBgraded within the state·Overall A+ · #8 of 271
T166East Grand ForksPolk County · 8,906 peopleBgraded within the state·Overall B+ · #148 of 271
T166International FallsKoochiching County · 5,481 peopleBgraded within the state·Overall B · #207 of 271
T166Sauk RapidsBenton County · 13,768 peopleBgraded within the state·Overall B+ · #175 of 271
T166Watab TownshipBenton County · 3,478 peopleBgraded within the state·Overall B+ · #172 of 271
T172GlencoeMcLeod County · 5,632 peopleBgraded within the state·Overall B+ · #179 of 271
T172Thief River FallsPennington County · 8,799 peopleBgraded within the state·Overall B · #182 of 271
T172WindomCottonwood County · 4,817 peopleBgraded within the state·Overall B+ · #173 of 271
T175La CrescentHouston County · 5,261 peopleBgraded within the state·Overall A · #71 of 271
T175Mendota HeightsDakota County · 11,475 peopleBgraded within the state·Overall A− · #109 of 271
T175MilacaMille Lacs County · 3,041 peopleBgraded within the state·Overall B · #189 of 271
T175Redwood FallsRedwood County · 5,040 peopleBgraded within the state·Overall B− · #216 of 271
T175RoseauRoseau County · 2,685 peopleBgraded within the state·Overall B · #195 of 271
T175West St. PaulDakota County · 21,950 peopleBgraded within the state·Overall B− · #217 of 271
T181Eagle LakeBlue Earth County · 3,357 peopleBgraded within the state·Overall B+ · #167 of 271
T181MankatoBlue Earth County · 46,529 peopleBgraded within the state·Overall C+ · #239 of 271
T181North MankatoNicollet County · 14,165 peopleBgraded within the state·Overall A− · #98 of 271
T181Rush CityChisago County · 3,300 peopleBgraded within the state·Overall B− · #220 of 271
185HopkinsHennepin County · 19,523 peopleBgraded within the state·Overall B · #198 of 271
T186BreckenridgeWilkin County · 3,323 peopleBgraded within the state·Overall B · #205 of 271
T186East BethelAnoka County · 12,605 peopleBgraded within the state·Overall B+ · #160 of 271
T186EvelethSt. Louis County · 3,381 peopleBgraded within the state·Overall C+ · #242 of 271
T186Lake CityWabasha County · 5,306 peopleBgraded within the state·Overall A · #45 of 271
T186Oak GroveAnoka County · 9,476 peopleBgraded within the state·Overall B · #181 of 271
T186St. FrancisAnoka County · 8,635 peopleBgraded within the state·Overall A− · #110 of 271
T186VirginiaSt. Louis County · 8,187 peopleBgraded within the state·Overall C+ · #244 of 271
T193Belle PlaineScott County · 7,632 peopleBgraded within the state·Overall A− · #129 of 271
T193Detroit LakesBecker County · 10,019 peopleBgraded within the state·Overall C+ · #243 of 271
T195Mountain IronSt. Louis County · 2,835 peopleBgraded within the state·Overall A− · #99 of 271
T195Pine CityPine County · 3,820 peopleBgraded within the state·Overall C · #252 of 271
T195Pokegama TownshipPine County · 2,884 peopleBgraded within the state·Overall C− · #263 of 271
T195St. Louis ParkHennepin County · 50,027 peopleBgraded within the state·Overall B · #180 of 271
T199FairmontMartin County · 10,099 peopleB−graded within the state·Overall C+ · #233 of 271
T199Falcon HeightsRamsey County · 5,071 peopleB−graded within the state·Overall A · #62 of 271
T199Little CanadaRamsey County · 10,567 peopleB−graded within the state·Overall B+ · #145 of 271
T199RosevilleRamsey County · 35,663 peopleB−graded within the state·Overall B− · #218 of 271
T203MarshallLyon County · 14,171 peopleB−graded within the state·Overall B · #184 of 271
T203OwatonnaSteele County · 26,633 peopleB−graded within the state·Overall B+ · #177 of 271
T205DuluthSt. Louis County · 88,330 peopleB−graded within the state·Overall C · #253 of 271
T205Rice LakeSt. Louis County · 4,169 peopleB−graded within the state·Overall B− · #214 of 271
T205Sauk CentreStearns County · 4,663 peopleB−graded within the state·Overall B− · #221 of 271
T208Maple GroveHennepin County · 73,893 peopleB−graded within the state·Overall B+ · #161 of 271
T208North BranchChisago County · 12,398 peopleB−graded within the state·Overall B+ · #146 of 271
T208OsseoHennepin County · 2,534 peopleB−graded within the state·Overall B · #191 of 271
T208StacyChisago County · 4,367 peopleB−graded within the state·Overall A− · #104 of 271
T212Cascade TownshipOlmsted County · 2,810 peopleB−graded within the state·Overall B · #183 of 271
T212Marion TownshipOlmsted County · 4,111 peopleB−graded within the state·Overall B+ · #157 of 271
T212RochesterOlmsted County · 124,292 peopleB−graded within the state·Overall B · #188 of 271
T215BemidjiBeltrami County · 15,770 peopleB−graded within the state·Overall D · #270 of 271
T215Bemidji TownshipBeltrami County · 4,031 peopleB−graded within the state·Overall B− · #229 of 271
T215Northern TownshipBeltrami County · 3,701 peopleB−graded within the state·Overall C+ · #248 of 271
T218Bradford TownshipIsanti County · 3,549 peopleB−graded within the state·Overall B− · #215 of 271
T218CambridgeIsanti County · 11,090 peopleB−graded within the state·Overall B · #197 of 271
T218Cambridge TownshipIsanti County · 2,592 peopleB−graded within the state·Overall B · #200 of 271
T218IsantiIsanti County · 7,714 peopleB−graded within the state·Overall A · #70 of 271
T218Moose LakeCarlton County · 2,948 peopleB−graded within the state·Overall C · #258 of 271
T218Red WingGoodhue County · 16,805 peopleB−graded within the state·Overall C · #254 of 271
T224Le CenterLe Sueur County · 2,524 peopleB−graded within the state·Overall A+ · #36 of 271
T224MontgomeryLe Sueur County · 3,539 peopleB−graded within the state·Overall A+ · #15 of 271
T224PipestonePipestone County · 4,100 peopleB−graded within the state·Overall B+ · #166 of 271
T227PaynesvilleStearns County · 2,591 peopleC+graded within the state·Overall A+ · #27 of 271
T227Spring Lake ParkAnoka County · 7,127 peopleC+graded within the state·Overall B · #204 of 271
T227St. JamesWatonwan County · 4,863 peopleC+graded within the state·Overall B · #196 of 271
T230MoorheadClay County · 46,533 peopleC+graded within the state·Overall C · #249 of 271
T230Two HarborsLake County · 3,443 peopleC+graded within the state·Overall A− · #137 of 271
T232BloomingtonHennepin County · 89,034 peopleC+graded within the state·Overall B− · #225 of 271
T232Blue EarthFaribault County · 3,165 peopleC+graded within the state·Overall B+ · #169 of 271
T234CrookstonPolk County · 7,375 peopleC+graded within the state·Overall C+ · #240 of 271
T234GoodviewWinona County · 4,122 peopleC+graded within the state·Overall A · #58 of 271
T234Granite FallsYellow Medicine County · 2,691 peopleC+graded within the state·Overall B · #193 of 271
T234WinonaWinona County · 26,530 peopleC+graded within the state·Overall B− · #230 of 271
T238Brooklyn CenterHennepin County · 31,846 peopleC+graded within the state·Overall C · #261 of 271
T238Golden ValleyHennepin County · 21,325 peopleC+graded within the state·Overall B+ · #155 of 271
T238WadenaWadena County · 4,341 peopleC+graded within the state·Overall C · #255 of 271
T238White TownshipSt. Louis County · 3,088 peopleC+graded within the state·Overall B− · #219 of 271
T242RichfieldHennepin County · 36,593 peopleC+graded within the state·Overall B · #203 of 271
T242Sleepy EyeBrown County · 3,461 peopleC+graded within the state·Overall A− · #105 of 271
T244BensonSwift County · 3,444 peopleC+graded within the state·Overall C+ · #232 of 271
T244WabashaWabasha County · 2,599 peopleC+graded within the state·Overall B+ · #178 of 271
T246ChisholmSt. Louis County · 4,625 peopleC+graded within the state·Overall C+ · #237 of 271
T246WasecaWaseca County · 9,035 peopleC+graded within the state·Overall B− · #213 of 271
T248Albert LeaFreeborn County · 18,217 peopleC+graded within the state·Overall C+ · #246 of 271
T248FridleyAnoka County · 30,829 peopleC+graded within the state·Overall C · #251 of 271
T248SandstonePine County · 2,543 peopleC+graded within the state·Overall C− · #267 of 271
T251Collegeville TownshipStearns County · 3,262 peopleCgraded within the state·Overall C · #257 of 271
T251WillmarKandiyohi County · 22,001 peopleCgraded within the state·Overall C · #256 of 271
T253CrystalHennepin County · 22,239 peopleCgraded within the state·Overall B · #201 of 271
T253New HopeHennepin County · 20,807 peopleCgraded within the state·Overall C+ · #231 of 271
T253RobbinsdaleHennepin County · 14,030 peopleCgraded within the state·Overall C+ · #241 of 271
T256MaplewoodRamsey County · 40,717 peopleCgraded within the state·Overall C+ · #236 of 271
T256North St. PaulRamsey County · 12,780 peopleCgraded within the state·Overall B− · #227 of 271
T256OakdaleWashington County · 30,588 peopleCgraded within the state·Overall B · #186 of 271
T256Park RapidsHubbard County · 4,447 peopleCgraded within the state·Overall C− · #265 of 271
T260BurnsvilleDakota County · 65,244 peopleCgraded within the state·Overall C+ · #234 of 271
T260Little FallsMorrison County · 9,277 peopleCgraded within the state·Overall C− · #264 of 271
T260Palmer TownshipSherburne County · 2,633 peopleCgraded within the state·Overall B− · #222 of 271
T263MinneapolisHennepin County · 430,324 peopleCgraded within the state·Overall C · #262 of 271
T263South St. PaulDakota County · 20,532 peopleCgraded within the state·Overall B · #206 of 271
T265AustinMower County · 26,689 peopleCgraded within the state·Overall C · #250 of 271
T265Columbia HeightsAnoka County · 22,482 peopleCgraded within the state·Overall C · #260 of 271
267Long PrairieTodd County · 3,830 peopleC−graded within the state·Overall B− · #224 of 271
T268FaribaultRice County · 25,040 peopleC−graded within the state·Overall C− · #268 of 271
T268WorthingtonNobles County · 13,979 peopleC−graded within the state·Overall C− · #266 of 271
T270St. AugustaStearns County · 3,799 peopleC−graded within the state·Overall B · #187 of 271
T270St. CloudStearns County · 72,647 peopleC−graded within the state·Overall C− · #269 of 271
T270St. JosephStearns County · 6,846 peopleC−graded within the state·Overall B− · #210 of 271
T270Waite ParkStearns County · 8,450 peopleC−graded within the state·Overall D · #271 of 271
274St. PaulRamsey County · 306,684 peopleC−graded within the state·Overall C · #259 of 271
Quick answers

Questions people ask

Which Minnesota town has the best schools?

Deephaven (Hennepin County), Delano (Wright County), Franklin Township (Wright County), Independence (Hennepin County) and Medina (Hennepin County) and 4 more share first place on schools among 274 towns. Schools are compared within Minnesota, 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 (274 in Minnesota). Smaller towns have the grade on their page but no rank. Every town is on the Minnesota page.

Go deeper

More Minnesota lists

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

All Minnesota rankings →
Other states

Towns with the best schools in other states