PantryPath Research · School Hunger Atlas
School hunger in Minnesota
42% certified free/reducedAcross 1,870 public schools serving 833,684 students, 41.7% of Minnesota students are certified free or reduced-price. 347 schools (21% of NSLP participants) operate under the Community Eligibility Provision, and 31.1% of students are directly certified through SNAP, TANF, or Medicaid linkage.
834K
Students enrolled
1,870
Public schools (CCD)
347
CEP / Provision 2 schools
87
Counties in atlas
Minnesota by county
← Back to national atlasToggle between the school-food-access composite, free/reduced eligibility, CEP share, direct-certification rate, and SAIPE school-age poverty. Hover a county to see schools, enrollment, and the underlying certification mix.
Loading county map…
Minnesota at a glance
Free/reduced
41.7%
Share of enrollment
CEP share
21%
Of NSLP schools
Direct cert
31.1%
SNAP/TANF/Medicaid
NSLP schools
87%
Serve NSLP meals
5–17 in poverty
9.7%
Census SAIPE 2023
Access score
0.45
Composite 0–1
The access score is a 0–1 composite weighted 50% eligibility, 30% CEP share, 20% NSLP share — a visualization and ranking aid, not a direct measurement. See methodology.
County-level hotspots
Top five counties across 87 in Minnesota.
Highest free/reduced share
Certified ≤185% FPL per enrollment
- 1 Mahnomen 76.4%
- 2 Nobles 68.6%
- 3 Cass 63.4%
- 4 Todd 58.9%
- 5 Ramsey 58.9%
Highest CEP adoption
Of NSLP schools — min. 3 NSLP schools
- 1 Mahnomen 100%
- 2 Ramsey 64%
- 3 Freeborn 60%
- 4 Cass 54%
- 5 Hennepin 48%
Largest enrollment
Total students in CCD universe
- 1 Hennepin 168K
- 2 Ramsey 83K
- 3 Dakota 70K
- 4 Anoka 55K
- 5 Washington 44K
Every county in Minnesota
All 87 counties with school counts, enrollment, certification mix, CEP adoption, and the SAIPE 5–17 poverty backdrop.
| County | Schools | Enrollment | Free/reduced | CEP | Direct cert | 5–17 poverty | Access |
|---|---|---|---|---|---|---|---|
| Aitkin | 7 | 1,649 | 54.0% | 0% | 44.5% | 14.6% | 0.47 |
| Anoka | 88 | 55,306 | 42.8% | 18% | 31.8% | 7.1% | 0.43 |
| Becker | 12 | 4,538 | 46.7% | 18% | 36.6% | 13.1% | 0.47 |
| Beltrami | 26 | 7,830 | 55.3% | 32% | 46.2% | 17.9% | 0.56 |
| Benton | 10 | 6,504 | 37.5% | 11% | 29.0% | 13.6% | 0.40 |
| Big Stone | 8 | 825 | 39.1% | 33% | 27.3% | 14.4% | 0.45 |
| Blue Earth | 19 | 8,588 | 40.1% | 6% | 32.8% | 9.1% | 0.41 |
| Brown | 10 | 3,435 | 39.8% | 0% | 28.6% | 7.3% | 0.40 |
| Carlton | 16 | 5,904 | 37.6% | 0% | 30.1% | 7.8% | 0.39 |
| Carver | 32 | 17,014 | 18.0% | 0% | 14.0% | 3.4% | 0.25 |
| Cass | 13 | 4,200 | 63.4% | 54% | 53.8% | 20.0% | 0.68 |
| Chippewa | 8 | 2,154 | 54.6% | 0% | 36.4% | 19.2% | 0.42 |
| Chisago | 19 | 7,669 | 31.3% | 0% | 24.2% | 5.6% | 0.30 |
| Clay | 19 | 10,792 | 39.9% | 0% | 33.0% | 12.3% | 0.37 |
| Clearwater | 4 | 1,400 | 57.2% | 0% | 43.4% | 16.6% | 0.49 |
| Cook | 6 | 647 | 44.2% | 20% | 37.4% | 14.8% | 0.45 |
| Cottonwood | 8 | 1,838 | 54.4% | 17% | 38.9% | 13.2% | 0.47 |
| Crow Wing | 18 | 9,008 | 42.2% | 20% | 32.9% | 10.4% | 0.44 |
| Dakota | 110 | 70,303 | 35.1% | 12% | 26.0% | 6.2% | 0.38 |
| Dodge | 8 | 3,697 | 29.7% | 0% | 22.4% | 7.7% | 0.35 |
| Douglas | 17 | 5,706 | 34.5% | 0% | 24.3% | 8.2% | 0.35 |
| Faribault | 5 | 1,862 | 47.7% | 0% | 39.0% | 11.3% | 0.44 |
| Fillmore | 12 | 2,887 | 33.8% | 0% | 25.0% | 11.7% | 0.37 |
| Freeborn | 10 | 3,821 | 56.7% | 60% | 44.1% | 11.2% | 0.66 |
| Goodhue | 19 | 6,707 | 29.3% | 0% | 24.0% | 6.5% | 0.33 |
| Grant | 7 | 1,048 | 42.3% | 0% | 32.3% | 11.6% | 0.41 |
| Hennepin | 325 | 167,525 | 43.4% | 48% | 30.5% | 11.6% | 0.54 |
| Houston | 15 | 4,150 | 43.3% | 0% | 33.9% | 6.4% | 0.35 |
| Hubbard | 11 | 2,577 | 53.4% | 0% | 42.9% | 13.8% | 0.39 |
| Isanti | 14 | 5,915 | 37.2% | 0% | 28.0% | 7.4% | 0.34 |
| Itasca | 17 | 6,306 | 51.4% | 6% | 39.9% | 15.0% | 0.46 |
| Jackson | 6 | 1,394 | 43.3% | 0% | 38.2% | 9.5% | 0.42 |
| Kanabec | 4 | 2,078 | 44.7% | 0% | 32.9% | 12.4% | 0.42 |
| Kandiyohi | 10 | 5,923 | 57.0% | 0% | 43.9% | 14.3% | 0.46 |
| Kittson | 6 | 619 | 43.9% | 0% | 33.1% | 11.7% | 0.42 |
| Koochiching | 6 | 1,439 | 47.8% | 0% | 38.7% | 14.6% | 0.44 |
| Lac qui Parle | 5 | 1,177 | 46.6% | 0% | 35.3% | 10.9% | 0.43 |
| Lake | 4 | 1,300 | 37.5% | 0% | 28.8% | 9.8% | 0.39 |
| Lake of the Woods | 3 | 462 | 43.5% | 0% | 35.9% | 15.3% | 0.35 |
| Le Sueur | 10 | 3,654 | 37.1% | 0% | 24.3% | 6.5% | 0.39 |
| Lincoln | 8 | 1,049 | 36.8% | 0% | 24.1% | 8.5% | 0.33 |
| Lyon | 13 | 4,712 | 48.4% | 0% | 36.3% | 10.5% | 0.43 |
| Mahnomen | 5 | 1,193 | 76.4% | 100% | 67.6% | 24.6% | 0.88 |
| Marshall | 9 | 1,440 | 36.3% | 0% | 27.7% | 9.1% | 0.38 |
| Martin | 11 | 2,992 | 52.1% | 0% | 38.2% | 14.9% | 0.44 |
| McLeod | 14 | 5,070 | 40.5% | 7% | 30.9% | 8.5% | 0.42 |
| Meeker | 8 | 2,843 | 41.5% | 0% | 31.1% | 7.6% | 0.38 |
| Mille Lacs | 14 | 5,617 | 45.1% | 27% | 33.0% | 11.3% | 0.46 |
| Morrison | 15 | 5,121 | 41.0% | 0% | 30.1% | 10.2% | 0.39 |
| Mower | 21 | 6,397 | 58.1% | 0% | 44.1% | 16.6% | 0.47 |
| Murray | 4 | 1,065 | 43.2% | 0% | 29.5% | 10.6% | 0.42 |
| Nicollet | 11 | 4,368 | 36.3% | 0% | 27.2% | 7.5% | 0.36 |
| Nobles | 11 | 4,387 | 68.6% | 0% | 41.1% | 12.6% | 0.54 |
| Norman | 4 | 900 | 48.6% | 0% | 35.9% | 12.8% | 0.44 |
| Olmsted | 47 | 23,415 | 36.0% | 10% | 28.3% | 8.2% | 0.38 |
| Otter Tail | 23 | 8,005 | 43.5% | 0% | 32.4% | 11.1% | 0.39 |
| Pennington | 5 | 2,046 | 41.1% | 0% | 28.9% | 9.8% | 0.41 |
| Pine | 14 | 3,631 | 50.2% | 0% | 39.9% | 12.8% | 0.38 |
| Pipestone | 6 | 1,517 | 47.7% | 0% | 32.7% | 11.7% | 0.41 |
| Polk | 17 | 5,040 | 47.2% | 12% | 38.4% | 11.5% | 0.47 |
| Pope | 5 | 1,370 | 33.0% | 0% | 26.2% | 8.6% | 0.28 |
| Ramsey | 190 | 83,006 | 58.9% | 64% | 45.2% | 13.9% | 0.65 |
| Red Lake | 5 | 731 | 37.9% | 0% | 30.0% | 10.9% | 0.35 |
| Redwood | 10 | 2,512 | 45.5% | 10% | 33.6% | 13.6% | 0.46 |
| Renville | 8 | 1,796 | 53.0% | 0% | 39.8% | 12.9% | 0.47 |
| Rice | 25 | 7,675 | 47.2% | 24% | 35.5% | 10.4% | 0.44 |
| Rock | 5 | 1,505 | 32.6% | 0% | 21.7% | 9.2% | 0.36 |
| Roseau | 8 | 2,575 | 36.2% | 0% | 28.2% | 9.9% | 0.38 |
| Scott | 39 | 25,659 | 30.6% | 12% | 22.1% | 5.4% | 0.36 |
| Sherburne | 32 | 15,619 | 31.2% | 8% | 23.4% | 5.9% | 0.34 |
| Sibley | 10 | 2,046 | 45.6% | 0% | 30.6% | 9.3% | 0.35 |
| St. Louis | 60 | 22,419 | 41.1% | 7% | 32.4% | 11.8% | 0.42 |
| Stearns | 45 | 23,112 | 44.7% | 31% | 35.5% | 11.9% | 0.50 |
| Steele | 15 | 6,812 | 43.6% | 0% | 33.4% | 8.8% | 0.36 |
| Stevens | 6 | 1,670 | 31.9% | 0% | 21.9% | 7.3% | 0.36 |
| Swift | 5 | 1,759 | 46.7% | 0% | 38.8% | 12.2% | 0.43 |
| Todd | 9 | 2,922 | 58.9% | 0% | 36.9% | 13.0% | 0.49 |
| Traverse | 4 | 565 | 49.6% | 0% | 31.1% | 17.6% | 0.45 |
| Wabasha | 9 | 3,481 | 34.7% | 0% | 25.1% | 7.4% | 0.37 |
| Wadena | 9 | 3,048 | 55.7% | 0% | 41.5% | 15.1% | 0.48 |
| Waseca | 8 | 2,819 | 42.6% | 0% | 33.6% | 9.7% | 0.41 |
| Washington | 72 | 44,174 | 27.1% | 5% | 19.3% | 4.8% | 0.32 |
| Watonwan | 7 | 1,983 | 58.4% | 0% | 36.5% | 11.9% | 0.49 |
| Wilkin | 7 | 1,017 | 40.7% | 0% | 31.2% | 10.1% | 0.40 |
| Winona | 14 | 4,327 | 41.4% | 29% | 32.0% | 10.5% | 0.49 |
| Wright | 50 | 27,165 | 25.2% | 0% | 18.3% | 4.2% | 0.30 |
| Yellow Medicine | 6 | 1,258 | 47.7% | 0% | 34.7% | 10.3% | 0.41 |
Minnesota school meals guide
How free and reduced-price school lunch eligibility works, application steps, and what to do if your child's school is not in CEP.
School meals guideSummer meals
When the school year ends, NSLP and CEP stop. The Summer Food Service Program and Summer EBT fill the gap for the 347,850 children who rely on school meals in Minnesota.
Summer meals guideFamilies with children
SNAP, WIC, Head Start, and the full federal-program stack for households with kids — the assistance ecosystem around the school cafeteria.
Families guideMinnesota child poverty
The sibling atlas — county-level child poverty across Minnesota. Free/reduced eligibility and child poverty track each other closely but not perfectly.
Minnesota child poverty atlasMinnesota pantries
Verified food pantries, food banks, and meal programs across Minnesota — open weeknights, weekends, and through the summer gap.
Minnesota pantry directoryMethodology
How we aggregated NCES Common Core of Data school-level records to counties,
proxied CEP from lunch_program == 2,
and layered SAIPE school-age poverty — plus the access-score formula.