Our Methodology
SchoolGrades rates every US public school A through F based on measurable student outcomes, not inputs. Unlike approaches that factor in demographics or spending, our DataScore measures what students actually achieve. We believe parents deserve honest, data-driven answers about school quality.
Data Sources
- NCES Common Core of Data (CCD) — Accessed via the Urban Institute Education Data API (
educationdata.urban.org/api/v1/). CCD is the federal government's primary database of public elementary and secondary schools, providing school-level enrollment, demographics, and directory information. - EDFacts Assessment Data — Federal data on state assessment proficiency rates, disaggregated by subject and student group. This is the most consistent cross-state measure of academic achievement.
Both sources are free, public, and require no authentication.
How We Calculate the DataScore
Every school receives a DataScore on a 0-100 scale (A-F) based on student outcomes. The weights adjust based on school level:
- Academic Proficiency — 35% weight. The percentage of students meeting or exceeding state proficiency standards in reading/ELA and math. We normalize against state averages since proficiency standards vary across states.
- Growth Trend (3-year) — 30% weight. Whether proficiency rates are improving or declining over the most recent three years. This rewards schools that are getting better, even if their absolute proficiency rate is below average.
- Graduation Rate — 20% weight (high schools only). The 4-year adjusted cohort graduation rate. For elementary and middle schools, this weight is redistributed to proficiency and growth. We use the ACGR methodology, which tracks actual cohorts rather than estimating from enrollment.
- Resource Access — 15% weight. Student-to-teacher ratio and access to key resources. While we emphasize outcomes over inputs, basic resource adequacy affects a school's ability to serve students.
Letter grades: A (80-100), B (65-79), C (50-64), D (35-49), F (0-34).
Why Outcomes, Not Inputs
Many school rating systems heavily weight school spending, teacher credentials, or student demographics. We deliberately focus on student outcomes because that is what matters to parents — are students learning? Our growth metric ensures that schools serving disadvantaged communities can score well if students are making strong progress, even if absolute scores are below affluent-district averages.
Data Collection Process
We query the Urban Institute Education Data API for school-level data, merge with EDFacts assessment results, and calculate our composite DataScore. Schools with insufficient assessment data (e.g., very small schools or newly opened schools) are flagged as "Not Rated" rather than scored.
Update Frequency
NCES and EDFacts data are published annually, typically with a 12-18 month lag. We update our dataset when new federal data becomes available, usually in the fall.
Known Limitations
- State assessment standards vary significantly. We normalize within states, but cross-state comparisons should be interpreted cautiously — an "A" in Mississippi and an "A" in Massachusetts may reflect different absolute achievement levels.
- Standardized test scores do not capture everything that makes a school good — arts programs, school culture, extracurriculars, and social-emotional development are not measured.
- Private schools, charter schools that do not participate in state assessments, and homeschools are not included.
- Very small schools may have volatile scores due to small sample sizes.
- The DataScore is our own composite metric, not a Department of Education, state, or district rating.
How to Cite This Data
If you use data from SchoolGrades, please cite:
SchoolGrades. "[School Name] DataScore." openschooldata.org, 2026. Accessed [date].
Underlying data is sourced from NCES Common Core of Data and EDFacts. All federal education data is in the public domain.