You Can Read Your Kid's School Lunch Menu. You Just Can't Compare It.
Published on • 11 min read
This fall my daughter started public school. I was a public-school kid myself, so I was really excited. Then I read through a few weeks of her breakfast and lunch menus, and I was surprised to see sugary cakes as regular menu items.
So I set out to answer what felt like a simple question: what are America’s biggest school districts actually feeding kids?
Not “meets federal standards.” The actual menu, item by item. How much added sugar is in Tuesday’s breakfast in Houston? How much fiber is in a Denver entrée? How does that compare with San Diego, or Tallahassee?
The menus are public. Any parent can pull them up on a phone. I figured this would take a weekend.
It did not take a weekend.
What I Built
First I looked for someone who had already built this. Parents across the political spectrum care what goes into their kids’ food, from Robert F. Kennedy Jr.’s Make America Healthy Again movement to the farm-to-table world of Alice Waters and Michael Pollan. So I expected to find a dashboard. I didn’t. The closest things:
- USDA’s School Nutrition and Meal Cost Study recorded school meals item by item, nationally. Its public data is from the 2014-15 school year, and it hides which schools and districts are which.
- Friends of the Earth’s Beyond the Nugget studied November 2025 lunch menus from 45 districts. It doesn’t name them, and I couldn’t find its data.
- A few developers have built tools for their own district’s menu, or scored a handful of districts once.
Nothing I found follows named districts every day, keeps the history and lets anyone add their own.
I’m a data nerd, so I built a tracker.
Every weekday morning it pulls the published breakfast and lunch menus for seven districts in four states. For every item it keeps what the district publishes: calories, added sugar, fiber, protein, sodium and, where the district posts them, the ingredients. Then it scores each week’s menu against a few lines, like the federal added-sugar limit that kicks in next year.
It’s live here: bubbabrooks.info/school-meals.
All seven districts have menus from October 1 on. For October 1 to 30, here’s the picture:
- Added sugar. Starting July 1, 2027, school lunches and breakfasts must average under 10% of calories from added sugar over the school week. Breakfast menus came in under that line in 57% of weeks, and lunch in 77%. By my rough measure, about four weeks in ten of breakfast would miss a rule that’s eight months away.
- Fiber. Entrées reached 14 grams of fiber per 1,000 calories, the ratio behind the 28-gram fiber Daily Value on US nutrition labels, in 20% of weeks.
- Sodium. Credit where due: no menu was salty enough to break today’s federal K-5 limit outright. The limit is per meal, and a menu doesn’t say how big a kid’s meal is, so I checked both ends of the range the rule allows. Lunch stayed under even at the biggest allowed lunch in 34 of 35 district-weeks. Breakfast did in 25 of 35, and the other 10 come in under only if breakfast is on the small side.
The dashboard opens with my favorite chart. It adds up how much of a day’s fiber and protein one school breakfast and one lunch give a K-5 kid. Americans talk about protein constantly and about fiber hardly at all, and I think we have it backwards. In October, breakfast and lunch together gave a 4-to-8-year-old about twice a whole day’s protein, but only 40% of a day’s fiber. For 9-to-13-year-olds, it was 116% and 33%. The protein is covered by the time school lets out. Dinner and snacks have to supply most of the fiber.
Seven districts is a start, but only Houston is among the country’s 25 biggest. I wanted the rest of them. That’s where it got weird.
Twenty of the 25
The 25 largest public school districts in the country, by the federal government’s own enrollment count, teach more than five million kids (counting New York City’s 32 geographic districts as one, and leaving out Puerto Rico). I looked up how each one publishes its menus:
- MealViewer (11): Chicago, Clark County (Las Vegas), Broward, Orange County (Orlando), Fairfax, Wake (Raleigh), Montgomery County (MD), Dallas, Prince George’s, Cobb, Memphis-Shelby
- Nutrislice (9): Miami-Dade, Hillsborough (Tampa), Palm Beach, Gwinnett, Charlotte-Mecklenburg, Duval (Jacksonville), Philadelphia, Polk, Baltimore County
- SchoolCafé (2): Houston (in my tracker), Cypress-Fairbanks
- PDFs (2): New York City, Hawaii
- Another app (1): Los Angeles
Twenty of the 25 publish through Nutrislice or MealViewer. Both have terms of use that, as best I can read them, rule out what my tracker does.
What the Terms Say
Nutrislice’s General Terms of Use (version 2.0, December 2018) say users “shall not”:
(viii) programmatically access, attempt to gain access to, or automate access to any interface or data, including Application Content, user information, or other data stored by or provided by the system, in any manner not authorized or otherwise not clearly designed and intended to be accessed by end users of the Application(s), through public user interfaces thereof
and, a few lines up, “redistribute … Application Content.”
MealViewer’s Terms and Conditions of Service (last updated 9/10/2020) have no page of their own. They pop up the first time you open the site in a browser. They say:
Users of the Services are prohibited from modifying, copying, distributing, transmitting, displaying, publishing, selling, licensing, creating derivative works of, or otherwise using any of the Content for commercial, public or other purposes not authorized by these Ts&Cs
I’m not a lawyer, and I don’t think anyone here is hiding anything. These read like ordinary software terms, written to protect a product, and the menus are right there for any parent to read one day at a time. But the effect is that the most basic question a parent, a reporter or a school board member could ask (how does our district compare?) has no easy, terms-respecting answer for 20 of the country’s 25 biggest districts.
So I didn’t touch them. My tracker reads two platforms. SchoolCafé’s terms say nothing about automated access or republishing. They add that the nutrition information is “for information purposes only.” eTrition, the other one, I couldn’t find terms for at all. The tracker asks each district for its menus once each weekday morning, a few dozen requests at most, spaced out, and publishes district-level numbers only.
Why This Is Worth Fixing
These aren’t restaurants. The National School Lunch Program is, in USDA’s words, “a federally assisted meal program operating in public and nonprofit private schools” that provides “low-cost or free lunches to children each school day,” under a law Harry Truman signed in 1946.
And the rules are about to change. The added-sugar limit arrives in July 2027. The most direct way for a parent to check whether their district is ready, or how it stacks up against the district next door, is to compare menus. For most of the biggest districts in the country, the apps’ terms, as I read them, don’t let users do that at scale.
There’s a bill that gets partway there. The Know What’s on the Tray Act (H.R. 9951), introduced in July by Rep. Tom Barrett, a Michigan Republican, would require schools in the federal lunch and breakfast programs to post every menu item’s name, its ingredients, its manufacturer, where it’s made and whether it’s locally sourced or from a family farm, on the school or district website, seven days in advance. That would be a real improvement. It has also been sitting in the House Education and Workforce Committee since the day it was introduced, and even if it passed, it asks for ingredients, not nutrition, and says nothing about a format anyone could compare. Nothing in the text rules out a scanned PDF.
Compare South Korea. Its national education information system, NEIS, runs an open data service that serves schools’ daily menus to anyone with a free key (a social-media login gets you one). I tried it without a key: the sample endpoint listed 17 October lunches for one Seoul elementary school and returned five of them, each with calories and a nutrient breakdown. That’s what “public” looks like when somebody designs for it.
What You Can Do
What I want is simple: every parent able to see, and compare, what’s in the food their kids are served.
-
Find out how your district publishes its menu. On the district’s nutrition services page, the menu link usually goes to one of these apps, and the web address tells you which.
-
If it’s SchoolCafé or eTrition, tell me. I can probably add it. Ask for it on GitHub, or use the contact form on my About page.
-
If it’s Nutrislice or MealViewer, write your district’s nutrition director. The district plans the menus and chose the app, so it can share the data itself, and it can ask its vendor to allow sharing. Something like:
I’m a parent at [school]. Our menus are posted on [app], whose terms don’t allow collecting or republishing them. Could the district also post each month’s menus, with their nutrition information, as a downloadable spreadsheet? And could open menu data be part of the next contract with [app]?
A public records request is the formal version of the same ask. If your district sends you a spreadsheet, I’d love a copy.
-
Ask your representative to make it the rule. Find yours here, then something like:
I’m a constituent and a parent. H.R. 9951, the Know What’s on the Tray Act, would make schools post menu ingredients a week ahead. Please support it, and push to add the nutrition information districts already publish in their menu apps, in a format parents can download and compare.
-
If you write code, I’d like your help. The tracker, tray-tally, is open source under the MIT license, at github.com/brooksomics/tray-tally. Its contributing guide walks through adding a district, and other contributions are welcome too.
And if you work at Nutrislice or MealViewer: if those clauses are boilerplate, I’d love to hear that, and I’d love it even more if you let parents download the menus your districts already publish. If there’s a real reason for them, I’d like to hear that too. My About page reaches me.
Next in this series, I’ll look at what the states are doing about school food. Mostly red states are banning food dyes, mostly blue states are paying for lunch, and California is doing both. I’ll be counting the sugar.
The menus are public. Comparing them shouldn’t take a lawyer.
Reference Links
The tracker:
Federal rules and programs:
- 7 CFR 210.10: school lunch meal requirements, including the 2027 added-sugar limit
- 7 CFR 220.8: school breakfast meal requirements, including the 2027 added-sugar limit
- USDA Food and Nutrition Administration: National School Lunch Program
- Truman Library: statement on signing the National School Lunch Act, June 4, 1946
- NCES Common Core of Data (district enrollment)
- H.R. 9951, Know What’s on the Tray Act of 2026 (Congress.gov)
- H.R. 9951 bill text (GovInfo)
- Find your representative (House.gov)
Menu platform terms:
- Nutrislice General Terms of Use
- MealViewer (terms pop up on your first visit; open it in a private window to see them again)
- SchoolCafé Terms and Conditions
Elsewhere:
Related Posts
School Gets Out at 12:05 on Thursdays
California just gave my daughter free transitional kindergarten, and I'm thrilled. Then I saw the bell schedule. A data-driven look at how American school days and American work days stopped speaking to each other.
Dolly's Generous Legacy: Do Rich Women Give More Than Rich Men?
Dolly Parton gave away about as much money as she kept. Her death sent me to the data: do the world's richest women give more than the richest men?
If 3.5% of Us Protest, We Win
We need 11.9 million people to show up to the No Kings protests this weekend. Here is the data on why nonviolent resistance actually works.