# What each measure means

QUERYING.md is the *mechanics* companion (how to write SQL that doesn't fool you); this file
is the *semantics* companion: what each number means, how it is computed, and what it cannot
support. House rule, stated once: never let a stat imply what the data doesn't support.

Each section: definition, formula and source, caveats, and what NOT to conclude.

## 1. `accel_pct` — math acceleration

Share of grade-8 students testing beyond Math 8 (they sit Algebra 1 or Geometry instead).

**Formula:** `100 * clip(1 - math8_tested / g8_enroll, 0, 1)`, per school x year, in
`school_year.parquet`. `math8_tested` = MCAP Math 8 tested count (school-level, bulk source,
All Students, non-alt); `g8_enroll` = grade-8 enrollment, same spring-labelled year.

**Caveats:** NULL where the Math-8 row is absent or suppressed — an exact-looking value for
an unknown basis would be worse than no value. (The site's district aggregate counts those
schools as zero testers; its district percentages therefore include schools this column
nulls.) Assumes Math-8 testers are 8th graders; accelerated 7th graders sitting Math 8 push
true shares slightly higher. Strongly anti-correlated with poverty (vs `farms_pct`,
r about -0.6 to -0.8 depending on year).

**Do NOT conclude:** that a school "offers more acceleration" — this measures who *sat*
which test, not course offerings; nor that a high-accel school teaches math better — the
ranking mostly recovers demographics until you control for FARMS.

## 2. Algebra 1: two populations, one assessment

Algebra 1 is taken by accelerated middle schoolers AND by high schoolers who reach the
course later. 2026, All Students: MS 49.1% proficient (6,877 tested) vs HS 9.3-10.2%
(6,123 tested; the range is the honest bracket around six floor-suppressed schools —
QUERYING.md recipe 5).

**Do NOT** quote the pooled district Algebra 1 rate as either population's rate; always
split by `school_type`.

## 3. `Math 6-8` is a selected residual, not "middle school math"

`Math 6-8` counts only students taking grade-level math; every accelerated student (about
half of MCPS middle schoolers) is excluded. 2026 district: Math 6-8 = 21.9% vs
Math All = 36.9% (QUERYING.md recipe 4).

**Do NOT** headline `Math 6-8` (or `math7_pct`/`math8_pct` at a high-acceleration school)
as "middle school math performance" — it measures who takes which test.

## 4. Geometry and Algebra 2 are middle-school measures in MCPS

From 2022 both are sat almost entirely by accelerated middle schoolers (2026: 3,071 of
3,091 visible Geometry testers were at middle schools; district Algebra 2 n=117).

**Do NOT** read either as a high-school quality measure; a low HS Geometry rate mostly
reflects who takes it there.

## 5. EML (multilingual learner) outcomes cannot be trended

Students exit the EML subgroup when they become proficient in English, so the denominator
churns — the group is *defined by* low proficiency. Point-in-time comparisons only, labeled
as such.

**Do NOT** conclude "EML students aren't improving" from a flat EML trend line; individual
students improving is exactly what removes them from the group.

## 6. FARMS: a hybrid source, and a top-coding break

`farms_pct` in `school_year` uses MCPS's own enrollment_subgroup figures for 2023+ and MSDE
`FARMS Pct` for 2019-2022. Reason: MSDE top-codes FARMS at ~80% starting FY2024 (schools at
85-95% real FARMS report as ~62-80%), compressing the poorest tail 15-25 points.

Distinguish current FARMS from "FARMS Ever" (ever-eligible, always higher — e.g. one school
in 2025: 80.7% FARMS vs 91.4% FARMS Ever).

**Do NOT** trend MSDE-sourced FARMS across the 2023/2024 boundary, and do not read a flat
~80% ceiling as "poverty stopped rising."

## 7. 2019 is a different testing regime

2019 is PARCC-era administration; 2021+ is MCAP, and 2021 was a partial-COVID
administration that bundled two test windows.

**Do NOT** pool 2019 into MCAP trends, and treat 2021 levels as comparable to neither
neighbor. (Machine-readable slice flags: `/data/schemas/assessments_coverage.json`.)

## 8. Suppression bounds are information, not noise

Suppressed cells carry a `bound`: `<=5%` and `>=95%` mean the value truly lies in that
range (informative — the district Math 8 proficiency floor exists ONLY on suppressed rows);
`suppressed` is withheld outright; `suppressed:inferred` was never fetched because the
marginals already proved it suppressed. Nulls are never zeros.

**Do NOT** filter `suppressed = false` and call the result complete: at the school level
that drops the *worst* performers first (QUERYING.md recipes 2 and 5 show the bracket
arithmetic that keeps them).

## 9. `suspended_pct` vs discipline incidents

`suspended_pct` = unique students suspended out-of-school as a percent of the subgroup.
The warehouse's `domain='discipline_incidents'` counts *events* — one student can carry
many. Different numerators AND denominators. Also: MCPS suppressed nearly every school's
rate from 2024 (9 of 212 schools have a 2024 value, 7 in 2025), so recent years are null
for most schools.

**Do NOT** divide incidents by enrollment and call it a suspension rate, and do not read a
null 2024 rate as zero suspensions.

## 10. Per-pupil expenditure has three variants

`ppe_total` = `ppe_state_local` + `ppe_federal`. Federal dollars scale with poverty, so
which variant you pick can invert an equity conclusion (Title I schools lead on total,
trail or tie on state/local).

**Do NOT** compare one school's total against another's state/local; always name the
variant.

## 11. `star_rating` is a composite with a short, broken history

MSDE's accountability star (1-5) summarizes achievement, growth, progress, and readiness
points, percentile-anchored within school level. Published 2022-2025 only (no 2020-2021),
with methodology shifts between eras.

**Do NOT** compare stars across methodology eras or treat a one-star move as a measured
change in school quality; `acct_points_pct` moves more smoothly than the star.

## 12. Comparing schools at all: regress first

School-level proficiency is largely explained by student context: the published context
model reaches R^2 = 0.90 (https://mocoparents.org/analysis/achievement-context). A raw ranking
of schools mostly recovers household income.

**Do NOT** rank schools by any raw outcome column without showing `farms_pct` (or a model
residual) alongside — the interesting number is the distance from expectation, not the
rank.
