Back to the tool

How we estimate percentiles: DC high school

A clear explanation of the data and the method, so you can judge how much weight to give the numbers.

What the data is

Every number here comes from the assessment results files of the DC Office of the State Superintendent of Education (OSSE), for the high-school course exams: PARCC in 2018 and 2019 and DC CAPE from 2022, on the same 650-850 scale. For each school, LEA (DC Public Schools and each charter organization) and all of DC, and for each course and year, these files give:

Hidden numbers. OSSE hides groups of fewer than 10 students and, in some years, small level counts. Hidden counts are worked out from the totals OSSE prints alongside them (students meeting or exceeding expectations, students approaching or above), so that every published number is reproduced.

Who is counted

A percentile compares a score with that year’s DC students who took the same course exam, by the school where they tested. Algebra I, Geometry and Algebra II count high-school students only (grades 9-12): many DC middle-school students take Algebra I or Geometry, but they are not part of these comparisons. English I and English II count every student who took them, almost all in high school. In 2026 that was about 4,900 students in English I, 4,800 in English II, 4,700 in Geometry and 3,700 in Algebra I. Algebra II is a small group (about 100 to 200 students at a handful of schools).

Important: the public data does not contain individual student scores, only these group summaries. So no tool can compute a true rank of one student against every other student. What we provide is a well-grounded estimate.

How the percentile is estimated

OSSE publishes the exact score range for each performance level (e.g. for Geometry, Met Expectations is 750-782). Given a score, we:

  1. identify which performance level the score falls in;
  2. count everyone in the lower levels as scoring below;
  3. within the score's own level, spread that level's students along the group's fitted curve (below) rather than evenly across the level's range. Students bunch up toward the middle of the scale, so an even spread would put too many of them out at the far ends of the lowest and highest levels.

That gives the percentile: the estimated share of students in the group who scored at or below the entered score.

About the smooth curve

The bell-like curve on each chart is a truncated-normal distribution fitted so that its area within each performance level matches the level counts, centered on that estimated average score. It's there to visualize the shape of the group's scores. The level counts set the headline percentile (steps above); the curve only decides where inside the student's own level the line falls.

Why estimates are still useful: the performance-level counts are OSSE’s own published numbers for each group. The only assumption is how scores are distributed inside a level, a small and bounded range, so the comparison ("above/below average here vs. all of DC") is reliable even though the exact percentile is approximate.

Cut scores

Each exam has five levels: Did Not Yet Meet, Partially Met, Approached, Met and Exceeded Expectations. Met and Exceeded count as meeting expectations. In every course Partially Met starts at 700, Approached at 725 and Met at 750; Exceeded starts at:

These are from OSSE’s ELA and Math PARCC cut score tables; DC CAPE keeps PARCC’s scale and cut scores. The score range for each level, by year, is on the score guides.

The high-school progress report

The paid progress report puts every high-school course exam your child took in one table, with the percentile at each level from the school to all of DC.

Limitations to keep in mind

This site stores nothing you type. Scores are used only in your browser to draw your charts.

Back to the tool