Where these numbers come from, and how to use them well
This site puts public schools, private schools, school districts and colleges in one state on a map, with their history. Every figure comes straight from files that the U.S. Department of Education and the Census Bureau publish. We standardise, organise and chart them; we do not estimate missing values or judge quality.
No rankings or ratings
Built directly from the federal files
Missing is never shown as zero
Free and open source
…Loading the latest counts
START HEREPick the path that fits you
Each part of this page is written for everyone first, with technical detail tucked behind “For analysts” folds you can open when you need them.
DECISION-MAKERSUsing these numbers well OfficialsStaff
These figures describe who is enrolled where, and how that has changed. They are a good starting point for a question and a poor place to stop. Here is how to get the most from them without overstating what they show.
Good questions for this data
How has enrollment in a school, district or college changed over time?
What does the student population look like by race and ethnicity, grade or age?
Where are schools, colleges and private schools located, and what grades or programs do they offer?
How do tuition, aid and net price at a college compare with its own past?
How do a district’s revenue and spending per student break down?
Questions it cannot answer
Which school or college is “best”. Nothing here is a quality measure.
Why a number changed. The data show what, not why.
How a school’s students perform on tests. Test scores are not included.
What any individual student or family experiences.
Anything newer than the latest release for each survey (see coverage).
Terms that trip people up
Enrollment is a head count on one fall date, not a yearly average.
Students per teacher is not class size.
Free or reduced-price lunch is a rough income signal, and is unreliable where whole schools are enrolled automatically.
A share (%) says who is counted, not how any group is doing.
Years are school years: 2024 means 2024-25.
Before you quote a number
Say the year. “Fall 2024”, “school year 2023-24” or “the 2023-24 survey”. Private schools are surveyed every two years, so the latest survey may be older than the year you are looking at.
Say the source. “According to the National Center for Education Statistics’ Common Core of Data” (public schools), “Private School Universe Survey” or “IPEDS” (colleges). Each chart in the chart guide below names its survey.
Check the release. Newer data are marked preliminary or provisional and can be revised. The coverage table shows which stage each year is in.
Look for blanks. An empty bar or “—” means the value was missing, hidden for privacy, or not collected. It does not mean zero.
Compare like with like. Same survey, same definition, ideally the same school or college over time. Differences between places usually reflect size, location and mission before anything else.
Wording that holds up
Say
“Enrollment was 612 in fall 2023, down from 655 in fall 2019.”
“Hispanic or Latino students were 31% of students counted in 2024.”
“The college’s published in-state tuition and fees were $9,315 in 2023-24.”
Avoid
“This school is better or worse than that one.”
“Enrollment fell because the school got worse.”
“Only 20% of students graduate”, from a chart that shows counts of graduates or one cohort’s rate.
Source: U.S. Department of Education, National Center for Education Statistics, Common Core of Data, school year 2023-24 (final release); accessed through the Education Explorer.A short credit line you can paste under a chart or table.
SOURCESWhere the data come from Everyone
Three federal surveys supply the people and places. Two Census Bureau products supply the geography. All are public and free to use.
Public schools and districts
Common Core of Data (CCD)
Each year, every state education agency reports its schools and districts to the National Center for Education Statistics (NCES).
Contains
School and district directories, enrollment by grade, race/ethnicity and sex, free and reduced-price lunch eligibility, teachers (FTE), program characteristics, and for districts: finance, graduates, dropouts, English learners and students with disabilities.
Years here
…
Reported by
State education agencies
Best for
Enrollment and demographic trends for a school or district.
How a number gets from the federal file to your screen
DownloadThe original file from NCES or the Census Bureau, unchanged.
CheckThe pipeline compares each file’s columns to what it expects and stops if anything is added, dropped or renamed.
StandardiseCodes become labels; blanks, suppressed and “not applicable” stay distinct from zero.
ValidateAutomated checks for duplicates, impossible values and mismatched totals must pass.
PublishCompact data files are saved with this site. Your browser reads them directly; no server or account is involved.
CHART GUIDEWhat each chart shows StaffAnalysts
Open a school, district or college on the map and use its tabs. This guide lists every chart in the order you will meet them, in plain words, with the survey and years behind it. “Table” is the name you will see in the panel’s Data tab.
Public schools Common Core of Data
Overview
Enrollment over time
Students enrolled on the fall count date: total, or split by race/ethnicity, sex or grade. A dashed line and shaded band show the state’s typical school (median and middle half of operating schools).
Reading tip. The band is context, not a target. Small schools sit well below it by design.
TablemembershipYears 1997-98 on
Students
Race and ethnicity; grades; girls and boys; race within each grade
Shares of the students counted, and one year’s head count by grade.
Reading tip. Shares describe composition only. Suppressed small cells are left out.
TablemembershipYears 1997-98 on
Students
Lunch program eligibility
Students eligible for free or reduced-price lunch.
Reading tip. Not comparable where a school enrolls all students automatically (Community Eligibility).
TablelunchYears 1998-99 on
Programs
Status and programs by year
For each year: operating status, grades offered, level, locale, school type, charter, virtual instruction, Title I, magnet, shared-time and school lunch program.
Reading tip. Dashed squares mean no record that year. Virtual and Title I fields were added later.
Tableschool_directoryschool_characteristicsschool_locationYears Directory 1997-98 on; programs 2014-15 on
Trends
Students per teacher; teachers; lunch share; lunch counts
Enrollment divided by full-time-equivalent teachers; teacher FTE; eligible students as a share of enrollment.
Reading tip. Students per teacher is not class size, and high values often come from very low reported teacher FTE.
TablemembershipstafflunchYears 1998-99 on
School districts Common Core of Data, Census F-33
Overview
Enrollment over time
District-reported students, total or by race/ethnicity.
Reading tip. Can differ slightly from the sum of its schools because of reconciliation.
Tabledistrict_membershipYears 1998-99 on
Students
Race, grades, girls and boys, race within each grade
Composition of enrollment.
Reading tip. Composition only.
Tabledistrict_membershipYears As above
Students
English learners and students with disabilities
Counts divided by district enrollment for the same year.
Reading tip. Identification practices differ by state and over time.
Tabledistrict_eldistrict_ideaYears English learners to 2018-19; disabilities to 2019-20
Students
Diplomas and other credentials; diploma recipients and dropouts by race and sex
Counts of completers and of dropouts in grades 9–12, and who they are.
Reading tip. These are counts, not graduation or dropout rates. Small counts are hidden.
Federal, state and local revenue, and spending by purpose, divided by fall membership.
Reading tip. Dollars of the year, not adjusted for inflation or local costs. Not a measure of quality.
Tabledistrict_financeYears 2014-15 on
Trends
Staff, finance totals, students
Series you can switch between, with a CSV download.
Reading tip. Not every table covers every year.
Tabledistrict_staffdistrict_financeYears Varies
Private schools Private School Universe Survey
Overview
Enrollment by survey year
Students, total or by grade, race or sex.
Reading tip. Gaps between surveys are not missing data.
TableenrollmentYears Every second year
Students
Race, grades, girls and boys, students per teacher
Composition and the ratio as reported by the school.
Reading tip. Girls are shown as total minus boys.
TableenrollmentschoolsYears Every second year
Trends
Teachers; prekindergarten
Full-time-equivalent teachers and prekindergarten counts.
Reading tip. Values may be imputed by NCES.
TableteachersschoolsYears Every second year
Details
Profile by survey year
Level, affiliation, orientation, type, locale and region at each survey.
Reading tip. Labels follow the latest codebook.
TableschoolsYears Every second year
Colleges IPEDS
Overview
Fall enrollment
Students enrolled in fall: total, by level, full or part time, gender, or race/ethnicity.
Reading tip. Race categories changed in 2010, so earlier years are not drawn.
TableefaYears Back to 1980 where reported (race from 2010)
Overview
How students take their courses
Fall students taking all, some or none of their courses online.
Reading tip. NCES does not separate hybrid from in person. Fall 2020 reflects emergency remote teaching.
TableefadistYears Fall 2012 on
Students
Race share; age; where first-time students come from
Composition of enrollment, age bands, and state of residence when first admitted.
Reading tip. Origin shows the closest earlier report if the selected year has none.
TableefaefbefcYears Age 2003 on; origin in alternate years
Students
Admissions and share admitted
Applicants, admitted and enrolled first-time undergraduates.
Reading tip. An admit rate reflects who applies, not quality. Open-admission colleges do not report it.
TableadmYears 2014 on, where reported
Students
12-month headcount; students per faculty; staff and faculty
Unduplicated students over a year, the student-faculty ratio, instructional staff by rank, salary by rank and staff by occupation.
Reading tip. Salaries are equated to a 9-month contract; 2016-2020 files give only totals, so those years are blank.
TableeffyefdsalisdrvhrYears Headcount 2002 on; ratio about 2003 on; faculty 2012 on; occupations 2021 on
Outcomes
Retention; graduation rates; awards within 8 years; degrees awarded
Students returning the next fall, completion rates, longer-term outcomes including part-time and transfer students, and awards by level.
Reading tip. Graduation rates cover only first-time, full-time students. Outcome Measures cover more students but are reported by group.
TableefddrvgromcaYears Retention about 2003 on; graduation 2021 on; Outcome Measures 2015 on
Costs
Tuition; total price; net price; aid
Published tuition, cost of attendance, what aid recipients pay on average (by family income), the share receiving each kind of aid and average amounts.
Reading tip. Sticker price is not what most students pay. Net price covers first-time, full-time undergraduates only.
TableicaydrvicsfaYears Tuition 2000 on; aid 2000 on
Costs
Revenue and expenses, every year; per student
Where money comes from and what it is spent on, in dollars, from whichever finance form the college files.
Reading tip. Public, private nonprofit and for-profit colleges follow different accounting rules.
Tableff1aff2ff3drvfYears 1997 or 2002 on
PLAIN-LANGUAGE GLOSSARYTerms and abbreviations Everyone
Education data comes with its own vocabulary. Search or scroll.
No terms match. Try a shorter word.
METHODSHow the numbers are handled AnalystsStaff
A few rules apply everywhere on this site.
Missing is never zero
If a value was not reported, was hidden to protect privacy, or does not apply, the chart leaves a gap. A real zero is drawn as zero.
Shares are not rates
A bar showing that a group is 22% of graduates says who graduated. It does not say how likely that group is to graduate; that needs each group’s enrollment too.
School years are labelled by their start
2024 means the 2024-25 school year. Colleges use the fall of the file’s year. Private schools appear in survey years only.
Nothing is ranked or scored
There are no rankings, grades or stars. Where a state “typical” band appears, it is labelled context and shown only for years with at least 10 operating schools.
Releases get revised
NCES publishes data as preliminary, then provisional, then final; IPEDS replaces provisional files with revised ones. The coverage table shows each year’s stage.
Totals are not always the sum of parts
Detail rows can be hidden when counts are small, and subtotals are published alongside detail rows. We never add subtotals to details, so totals may exceed the visible parts.
For analysts: value flags, identifiers and column rules
Flags. Source codes such as −1 (missing), −2 (not applicable), −3 (suppressed), M, N or text flags become empty values. A companion column (value_flag or <column>_flag) records why: reported, derived, adjusted, missing, not_applicable, not_reported, suppressed, not_meeting_standards.
IPEDS keeps negative codes as published, because in code columns they are labelled categories (for example “Not available”) and finance values can truly be negative. NCES’s own status columns appear as <column>_flag. Many IPEDS derived tables store numbers as text, with “.” or a letter for missing.
Identifiers are text with leading zeros preserved: ncessch (12-digit school), leaid (7-digit district), unitid (college), ppin (private school).
Derived values (students per teacher, lunch share, state median and middle half, year summary) are computed by the pipeline’s derive step from the published tables and are stored under data/derived/ and data/meta/. Students per teacher is left empty when teacher FTE is zero.
Dictionary. Every table column has an entry (label, description, unit, first and last year, caveat) built from NCES’s own documentation. Hover or focus a field name in a detail panel to read it.
KNOWN LIMITSWhat to keep in mind, source by source Everyone
Each source has quirks that can change how a number should be read. The short version comes first; open a group for the detail.
Public schools (CCD)
In short: the newest year may be incomplete; lunch eligibility is unreliable where schools enroll everyone automatically; small counts are hidden.
The latest year may be a preliminary directory with no enrollment, staff or lunch files yet. The map opens on the latest year that has enrollment.
Free and reduced-price lunch counts are not comparable across schools or years where the Community Eligibility Provision or similar rules apply, because eligibility may be reported for all students or carried forward.
Race and ethnicity categories were revised in 2009-10 (adding “Two or more races”). Totals are comparable; some rows are subtotals (“No Category Codes”, “Education Unit Total”) and are never added to detail rows.
Counts can be suppressed to protect privacy. District totals can differ slightly from the sum of school rows because of reconciliation and adult-education adjustments.
Status (open, closed, new, future, changed boundary) is as reported for that year. Closed schools are hidden unless you ask for them.
District finance amounts are in dollars of the year, not adjusted for inflation, and item definitions changed over time. The graduate and dropout files hold counts, not rates.
Before 2014-15 the files use older layouts: codes were converted to modern labels, and locale codes before 2006 use an older 8-category scheme. In 1997-98 to 2013-14 some states reported totals without race and sex detail, so detail rows may not add up. School years 1986-87 to 1996-97 exist only as fixed-width text and are not included.
Locations and boundaries
In short: most points are exact; some are approximate and drawn with a dotted outline.
Public school coordinates come from NCES EDGE (2014-15 onward). Where a year has no EDGE file yet, each school’s most recent EDGE point is used; schools with no earlier point, and colleges or private schools without source coordinates, were located from their address. PO boxes cannot be located and some addresses do not match.
IPEDS directory files carry coordinates only from about 2008, so institutions that closed earlier have no map location.
District boundaries are TIGER/Line vintages (as of January 1 of the labelled year). The newest school year reuses the latest vintage, so a recent boundary change may not appear yet.
Private schools (PSS)
In short: a survey every two years, and not every school answers.
The survey is conducted every two years (fall of the first year shown). The map shows the latest survey that began in or before the selected year, and says so.
School names and permanent IDs are in the public files from 2005-06 (and a few earlier years), so earlier surveys cannot be linked to schools or mapped. They remain in the data tables.
Questionnaire item numbers belong to each survey, and value labels follow the 2023-24 codebook, so definitions can differ in earlier years. NCES may impute values (see the imputation flags).
Colleges (IPEDS)
In short: different surveys use different definitions, so charts from different tabs are not interchangeable.
Fall enrollment race/ethnicity categories changed in 2010, so the race charts start there. 12-month headcount, completions (awards, not students) and admissions are separate surveys with their own definitions.
Student aid columns ending in a digit (for example npist0) are positional: the same name refers to different award years in different files.
Finance forms differ by institution type (public GASB, private nonprofit FASB, for-profit) and are only roughly comparable. The “every year” finance charts group the three forms into shared categories and show any remainder as “Other”.
Graduation-rate files hold cohort counts, exclusions and completions; a rate is computed only within one cohort. Faculty salaries for 2016-2020 are published only as total outlays, so those years are blank.
IPEDS files before 2000 use different layouts and many more table families. They are in the data tables, but not on the map or in the charts, and column definitions may differ.
COVERAGEWhich years exist, and how final they are StaffAnalysts
One row per table in the data. The strip shows the years available, coloured by release stage. This is read live from the site’s own data files, so it is always current.
Final
Provisional
Preliminary
Revised
As published (older files)
Stage not labelled
Loading…
TECHNICAL REFERENCEReuse the data or rebuild it DevelopersAnalysts
Everything the site displays is a plain file you can download. There is no API and no database server.
ccd, pss, ipeds: the survey tables as published, standardised.
derived: school metrics and profiles computed from them.
geo: points, district boundaries and the search index.
meta: dictionary, value labels, row counts, release versions.
Guarantees
Files are deterministic: the same input always writes the same bytes.
A new NCES release that adds, drops or renames a column stops the build instead of being guessed at.
Validation (uniqueness, ranges, totals, file counts) must pass before any data are committed.
Raw downloads are never committed; every step can be re-run from the original sources.
Try it now
Any tool that reads Parquet over the web can query these files. For example, in DuckDB:
SELECT *
FROM read_parquet('…/data/ccd/membership/2024.parquet')
LIMIT 10;
Or in Python with pandas:
import pandas as pd
df = pd.read_parquet('…/data/ipeds/efadist/2024.parquet')
df.head()
For developers: rebuild, extend, contribute
Pipeline. Python and DuckDB, in pipeline/. Commands include update (download, check, standardise, derive), validate and derive. Column maps are year-ranged YAML files, so a new release is usually a short edit.
One state at a time. The state shown is set by a single configuration file; another state is built by adding a file and running the pipeline.
Web app. Svelte, MapLibre, DuckDB-WASM (reads the Parquet files in your browser) and Observable Plot, in web/. It is static, with no backend, and runs from any web host.
Tests. pytest for the pipeline, vitest for chart logic, and Playwright checks for the map, charts, tooltips, touch layout and accessibility (axe, light and dark).
Accessibility. Charts have text alternatives, tooltips are available on touch and keyboard, and colour is never the only cue (markers also differ in shape).
CITE AND REUSECredit, license and feedback Everyone
Education Explorer. Data: U.S. Department of Education, National Center for Education Statistics (Common Core of Data, Private School Universe Survey, IPEDS); U.S. Census Bureau (TIGER/Line, Geocoder). , accessed .
The underlying federal data are public. The code is open source under the MIT license; see DATA_ATTRIBUTION.md for each source’s terms.
Statistical use only. NCES public-use data are for statistical purposes. Do not use them to try to identify individuals.
Found something wrong, or a number that looks odd? Open an issue with the school or college, the year and what you expected. The more specific, the faster it can be checked against the source file.