pipeline_miami/verify/served_invariants_allowlist.yaml
Served verbatim from the project repository. Internal working document conventions apply: documents may reference file paths, branch names, and findings-ledger anchors from the repo.
# Shift alarms from pipeline_miami/verify/served_invariants.py that have a # documented cause. An entry explains an alarm; it never silences the check. # Only causes stated in the comparability config, a publisher's own notes or a # measurement recorded in docs/cities/miami are recorded here; every other # alarm stays REVIEW until someone looks. # # Keys: metric_key (exact, or a glob such as fast_*_proficiency), year (one) or # years (a list), kind (median | count). Entries that match no current alarm # are listed as stale at the end of __served_invariants.md and should be removed. # Reworked 2026-09-16b (review N8): the rule now compares each year with the # previous served year against the series' own year-to-year moves, so a # one-year step alarms twice (the step and the return) and district-wide # events are recorded once as a pattern. # ── Assessments: FAST / B.E.S.T. baseline and recovery (comparability.yaml fl_assessment boundary 2022-23) ── - metric_key: "fast_*_proficiency" years: ["2022-23", "2023-24", "2024-25"] kind: median reason: "FAST informational baseline in 2022-23 (first administration; comparability.yaml fl_assessment boundary 2022-23) and the recovery in the two operational years after it: every FAST grade and subject rose 3–8 pp a year; the served cells are re-read from the state's 63 SRS files by the base case" - metric_key: "eoc_*_proficiency" years: ["2022-23", "2023-24", "2024-25"] kind: median reason: "B.E.S.T. EOC baseline in 2022-23 (comparability.yaml fl_assessment boundary 2022-23) and the recovery after it; served cells re-read from the SRS files by the base case" - metric_key: "*_achievement" years: ["2023-24"] kind: median reason: "School Grades components in the first operational FAST/B.E.S.T. year after the 2022-23 informational baseline (comparability.yaml fl_assessment boundary 2022-23): ELA, math and science each rose 5 pp" - metric_key: "learning_gains_*" years: ["2023-24"] kind: median reason: "Learning gains are computed within a test regime; 2023-24 is the first year with two FAST administrations to compare (comparability.yaml school_grades boundary 2022-23)" - metric_key: school_grade_points_pct year: "2024-25" kind: median reason: "Points rose with every component in the third FAST year (comparability.yaml school_grades); the components' own alarms are explained above" # ── 2018-19 against 2021-22: the FSA regime against the first post-pandemic year, two excluded years between (comparability.yaml fl_assessment / school_grades) ── - metric_key: math_achievement years: ["2018-19", "2021-22"] kind: median reason: "2018-19 (FSA) is compared with 2021-22, the first post-pandemic School Grades year, because 2019-20 issued no grades and 2020-21 was opt-in (comparability.yaml school_grades excluded years); the 7-pp drop is the pandemic loss under one test regime" - metric_key: "learning_gains_math*" years: ["2018-19", "2021-22"] kind: median reason: "As math_achievement 2018-19 / 2021-22: gains in 2021-22 are measured against 2018-19 baselines for many students after the two excluded years (comparability.yaml school_grades)" # ── Attendance: pandemic years excluded from the chronic_absenteeism regime (comparability.yaml) ── - metric_key: chronic_absenteeism_rate years: ["2020-21", "2021-22"] kind: median reason: "2019-20 and 2020-21 are excluded from the chronic_absenteeism regime (comparability.yaml); the median rose from 15% to 21% in the remote year and to 26% in 2021-22, the national post-pandemic level; served cells re-read from the state files by the base case and checked against EDFacts (cross-publisher check)" - metric_key: absent_21plus_rate years: ["2020-21", "2021-22"] kind: median reason: "As chronic_absenteeism_rate 2020-21 / 2021-22 (same file, same excluded years)" # ── Climate survey: participation and the pandemic year ── - metric_key: "survey_*" kind: count reason: "The count of schools with a served composite is the workbook's own school list minus the schools it withholds under 10 responses, which varies by year (parsed n<10 school counts 2018-19 → 2024-25: students 7 / 69 / 98 / 52 / 44 / 105 / 81; parents 8 / 112 / 104 / 59 / 121 / 126; staff 60 / 46 / 43 / 45 / 56 / 55 / 48); every served composite is re-read from its workbook by the base case, so the count is a property of the file, not of the load" - metric_key: "survey_*" years: ["2019-20", "2020-21", "2021-22"] kind: median reason: "2020-21 was the remote/hybrid year (comparability.yaml flagged year): students' safety and leadership composites rose 4–5 pp, staff safety and resources 3–4 pp, the students' response rate from 36% to 50% and then 64%, and the 2021-22 values are the return; the workbooks' own values, re-read by the base case for 2019-20, 2020-21, 2021-22 and 2022-23 composites. 2019-20 is included because it is the first served staff year (the 2018-19 staff workbook was retired 2026-09-16) and a first year is compared with the next, i.e. with the remote year" - metric_key: "survey_parents_*" years: ["2018-19", "2020-21"] kind: median reason: "The 2018-19 parent workbook withholds 8 schools under 10 responses against 112 in 2020-21 (parsed n<10 counts): the composite's median moves with the school set (the 2020-21 alarm is the same step seen from the other side)" # ── Economic disadvantage: Community Eligibility changes the reported share (decision M.8) ── - metric_key: pct_econ_disadv year: "2024-25" kind: median reason: "The School Grades file's share is not comparable across Community Eligibility Provision status (decision M.8, docs/cities/miami/03_integration_plan.md); the district-wide median fell 6 pp in 2024-25 with the file's own values (base case re-read). Sits at the alarm threshold (lift 3.1), so it appears and disappears with small changes in the school universe." # ── English learners: the exact share is served only where the file hides no race cell ── - metric_key: pct_ell kind: count reason: "pct_ell is exact only for schools whose ELL file hides no race cell (2026-09-16 accuracy fixes: hidden cells are intervals of 0–9 students, served as pct_ell_lower_bound / pct_ell_upper_bound); the exact share covers 76–108 schools a year and its count moves with how many cells the file hides, not with the load. The model and the peer groups use the lower bound, whose coverage is complete." # ── October membership by grade: the 2022-23 file leaves zero cells blank ── - metric_key: "enrollment_oct_g*" years: ["2022-23", "2023-24"] kind: count reason: "The 2022-23 membership file leaves about 25 zero grade cells blank that the adjacent years print as 0 (of the 31 schools without a grade-3 cell in 2022-23, 24 show 0 in 2021-22 and 26 in 2023-24; 2022-23 has 190 zero grade-3 cells against 213–220 in the other years); the served cells match the file (base case enrollment_oct_g3 2022-23), so the count drops in 2022-23 and recovers in 2023-24" - metric_key: "enrollment_oct_g*" years: ["2022-23", "2023-24"] kind: median reason: "As the count entry: with the zero cells absent from 2022-23 the median of the remaining cells is higher that year and returns in 2023-24" # ── Reference series ── - metric_key: enrollment_oct_ccd years: ["2018-19", "2022-23"] kind: count reason: "The federal CCD directory lists 510 Dade schools in 2018-19 and 534 in 2022-23 (its own school list; charter openings in between); a reference-only series compared with the state count school by school in the cross-publisher check" - metric_key: per_pupil_expenditure_school_federal year: "2024-25" kind: median reason: "Federal ESSER relief funds had to be obligated by 30 September 2024, so federal per-pupil spending fell in 2024-25 (the state and local series do not move)"