pipeline_miami/config/outcomes.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.
# Miami-Dade outcomes the residual-z engine fits (pipeline_miami/analysis/residual_z.py).
# One entry per served metric_key. n_rule gives the weight / sampling-N for the
# cell: `denominator` uses the N stored with the cell; `grades:3-10` sums the
# same year's October membership over those grades (School Grades components
# carry no tested count; tested ≈ enrolled in the tested grades). scale:
# percent → binomial SE; rate_per_100 → Poisson SE; sampling_error: none
# overrides the noise model where the value is not a share of independent
# students (z = resid / tau).
#
# Enrollment / capacity metrics are NOT outcomes (direction NEUTRAL) and live in
# the closure track (docs/cities/miami/06_enrollment_capacity_closures.md).
defaults:
min_n: 30 # eligibility floor on N (the publisher's suppression floor is 10)
z_threshold: 2.0
persistence: { window: 3, min_flags: 2 } # window in calendar (spring) years, inside one regime
# Fit universe: every school with the outcome and a complete covariate row
# that year, including schools that have since closed (they are the ones the
# closure analysis cares about; excluding them shifted the baseline upward —
# review 2026-09-16, C9).
outcomes:
ela_achievement:
direction: HIGHER_BETTER
scale: percent
n_rule: "grades:3-10"
comparability_regime: fl_assessment
validation_reference: learning_gains_ela # pre-registered check (see residual_z.py PREREGISTERED)
math_achievement:
direction: HIGHER_BETTER
scale: percent
n_rule: "grades:3-10"
comparability_regime: fl_assessment
validation_reference: learning_gains_math
science_achievement:
direction: HIGHER_BETTER
scale: percent
# Statewide science is tested in grades 5 and 8 and once in high school
# (Biology EOC). Measured against the SRS tested counts (2022-23 → 2024-25):
# Biology testers ≈ 0.75–0.85 × grade-9 membership, 0.39–0.41 × grades 9–10,
# 0.20–0.21 × grades 9–12 — so one grade, not four (review 2026-09-16, M4).
n_rule: "grades:5,8,9"
n_rule_alternatives: ["grades:5,8,9-10", "grades:5,8,9-12"] # refitted in the ablation
comparability_regime: fl_assessment
learning_gains_ela:
direction: HIGHER_BETTER
scale: percent
n_rule: "grades:4-10"
comparability_regime: school_grades
learning_gains_math:
direction: HIGHER_BETTER
scale: percent
n_rule: "grades:4-10"
comparability_regime: school_grades
learning_gains_ela_l25:
direction: HIGHER_BETTER
scale: percent
n_rule: "grades:4-10;share:0.25"
comparability_regime: school_grades
learning_gains_math_l25:
direction: HIGHER_BETTER
scale: percent
n_rule: "grades:4-10;share:0.25"
comparability_regime: school_grades
graduation_rate_4yr:
direction: HIGHER_BETTER
scale: percent
n_rule: denominator
comparability_regime: graduation
chronic_absenteeism_rate:
direction: LOWER_BETTER
scale: percent
n_rule: denominator
comparability_regime: chronic_absenteeism
absent_21plus_rate:
direction: LOWER_BETTER
scale: percent
n_rule: denominator
comparability_regime: chronic_absenteeism
attendance_rate:
direction: HIGHER_BETTER
scale: percent
# A share of student-DAYS, not of students: a binomial on N students puts
# the per-student SD at ~25 pp and made sampling noise 36% of the z
# denominator (review 2026-09-16b, N11). No per-cell noise term: z = resid / tau.
sampling_error: none
n_rule: enrollment
comparability_regime: chronic_absenteeism
sesir_total_per_100:
direction: LOWER_BETTER
scale: rate_per_100
n_rule: enrollment
comparability_regime: enrollment