Source document

docs/cities/miami/00_overview.md

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.

00 — Overview

1. Why Miami-Dade

  • Scale between the two existing builds. ~500 schools (Philly ~300, NYC ~1,800), one district authority (district 13) plus a state department that publishes every school in the same files with the same 4-digit school number. No multi-district reconciliation, no borough/CSD layer.
  • A live civic question with a deadline. The School Board closed or consolidated nine schools for 2026-27, flagged 27 more in August 2026, and paused the process in September pending community sessions and a December 2026 decision. Enrollment vs. capacity is the story; nobody has published a school-level, traceable version of it (06_enrollment_capacity_closures.md).
  • Strong reference points to validate against. Florida publishes A–F school grades with component scores back to 1999 (the analogue of NYC's Snapshot and Philly's SPREE), a per-school report card, and federal copies of the state's submissions (CCD, EDFacts, CRDC) that serve as independent-publisher checks on day one.
  • A district climate survey with the same shape as NYC's (students, parents, staff; ~32 items; school-level workbooks since 2018-19).
  • Growth data. FLDOE learning gains (all students and lowest 25%, by grade) are a status-vs-growth distinction NYC lacks, like Philly's PVAAS.

2. Scope (v1)

  • Universe: every district-13 school in the FLDOE files — district-run and charter — tagged by type. Virtual programs, DJJ sites, adult centers, alternative and ESE-center schools are included but include_in_default_comparisons = false. (Charters sponsored outside district 13 — the MSID "districts" KIPP, IDEA, Success Academy — are checked in P0 and tagged if they sit in the county.)
  • Outcomes: FAST ELA (grades 3–10) and Math (3–8) proficiency and mean scale score; B.E.S.T. Algebra 1 and Geometry, NGSSS Biology, Civics, U.S. History EOCs; FLDOE learning gains; federal 4-year graduation rate (with race and category subgroups); chronic absenteeism (two state definitions); SESIR incident rates; climate-survey rollups; School Grade and its components.
  • The closure track: enrollment panel, FISH capacity, per-pupil expenditure, staffing, and a school-events table — 06_…md.
  • Geography taxonomy: M-DCPS Region (North/Central/South, from the GIS layer), School Board district, city/municipality, zip; attendance-boundary polygons for the map. No community-district analogue.
  • Methodology: lift the spec — KNN peer groups with hard filters on level, sector and choice status, soft demographic distance; residual-z outliers; comparability regimes for the FSA→FAST break.
  • Out of scope for v1: statewide reference cohorts (Miami vs. similar-demographic Florida schools — attractive but needs a statewide ingest), voucher attribution per school (no public data), Know Your Data Tableau scraping for subgroup assessments.

3. Decisions to settle (with recommendations)

#DecisionRecommendationWhy
M.1NamespaceSame repo, miami namespace: app/miami/*, miami_* tables, scripts/loaders/miami/, pipeline_miami/, docs/cities/miami/, data/cities/miami/. Copy the Philly pattern; factor a shared pipeline_common/ (download + inspect + provenance) only when the third copy would otherwise diverge.Proven by Philly (O.1); NYC and Philly untouched.
M.2Primary key4-digit zero-padded school number as text ("0041"), district 13 implicit; carry nces_id (12-digit NCESSCH), msid_* fields, and virtual_provider_number where the accountability files use one.Every publisher uses the number; padding differs by file (findings.md F.1).
M.3School-type enumREGULAR, CHARTER, ALTERNATIVE, ESE_CENTER, TECHNICAL_COLLEGE, VIRTUAL, DJJ, ADULT, from MSID TYPE/SCHL_FUNC_SETTING + School Grades flags + CCD SCH_TYPE. is_charter must agree across MSID, School Grades and CCD (three-way check at load). Tag SCHOOLS_OF_HOPE from MSID CHARTER_SCHL_STAT = H after verifying the code.Charters are not a number range (M.1).
M.4Chronic-absenteeism canonicalFLDOE "absent 10% or more" (2017-18 →) as chronic_absenteeism_rate — same definition as NYC and Philly; absent_21plus_rate (2010-11 →) as a second first-class metric; EDFacts 10% with subgroups and CRDC 15+ days as cross-publisher references.Comparability across cities; the 21+ series gives the long baseline.
M.5Assessment comparability regimesFCAT 2.0 (≤ 2013-14) · FSA (2014-15 → 2021-22, no 2019-20) · FAST/B.E.S.T. (2022-23 →, 2022-23 flagged "informational baseline"). Standardized z within regime; raw across with a break marker. 2020-21 participation was opt-in — flag, do not drop.Same posture as Philly O.4.
M.6Subgroupsv1 ingests whatever the bulk files carry: race + category for graduation; race for membership; race × sex, IDEA, 504, EL for CRDC absenteeism and discipline; none for assessments (state files are all-students). No Tableau scraping in v1.Fragile scrapes fail the reproducibility bar.
M.7Growth as first-classYes: learning_gains_ela, learning_gains_math, learning_gains_ela_l25, learning_gains_math_l25 from ELAGains{yy}.xls / MathGains{yy}.xls, plus the School Grades components.Mirrors Philly O.7 (PVAAS).
M.8Economic-disadvantage covariateSchool Grades Percent of Economically Disadvantaged Students (FLDOE's own NSLP-code definition) as the covariate, with a cep flag from the lunch-status file as a second covariate. Report the CEP caveat wherever the share is shown.Direct-cert × 1.6 at CEP schools breaks cross-school comparability (findings.md M.8).
M.9Peer-group features and kRe-tune on Miami distributions: Black share, Hispanic share, ELL share, econ-disadv share, log enrollment; hard filters on level (ES / MS / HS / K-8 / combination), sector (district vs charter), and choice status (magnet school vs neighborhood). k = 40 with a 20/30/40 flip-diff as in Philly.75% Hispanic district: White/Asian shares carry little signal (findings.md M.7).
M.10Spot-check oracles(iii-a) same-publisher: School Grades components (achievement = % level 3+ across grades — an aggregation, so ±2 pp) and the Florida Report Cards where a value can be read; (iii-b) independent: NCES CCD (enrollment, staff), EDFacts (absenteeism), CRDC (absenteeism, discipline, course access), M-DCPS Statistical Highlights (district totals).Philly's "two publishers" advantage exists here on day one.
M.11SequencingShip the closure track first (C0–C3 in 03_…md), in parallel with P0/P1.Timely, fetchable now, needs no peer groups.

4. Inheritance from the NYC and Philly builds

Reused without modification: the methodology spec, the reference scaffold (engine, outliers, trends, verify), the four-check taxonomy, the front-end shape (Outliers / Movers / Stories / school pages / methodology hub / proof trees), the working-analysis page idiom and its full-QA gate, the discover.py → provenance.json → findings/*.md discovery loop, the loader _lib pattern, and the contribution workflow.

New and Miami-specific:

  • Source connectors for FLDOE (xlsx/xls with per-year header rows and URL forms; the origin.fldoe.org rewrite), MSID (session-cookie download), M-DCPS climate workbooks, county GIS REST, and PDF tables (FISH level-of-service report, ABC book).
  • The school-events table and the enrollment/capacity analysis (06_…md).
  • Geography (Region, Board district, attendance boundaries).
  • Florida-specific comparability (FSA → FAST) and the A–F school-grade history as a first-class series.
  • Story lines: the 2026 closure cohort, charter-sector growth vs district decline, Schools of Hope co-location, the School for Advanced Studies model, magnet vs neighborhood outcomes adjusted for intake, newcomer (immigrant) enrollment collapse, absenteeism after the 2023 definition change.

5. What this branch does not include

Any Miami loader, Prisma model, route, or story. The only code is the read-only probe/ scripts; the only data are provenance records and small derived reference tables. NYC and Philly paths are untouched.

6. Next step

Settle M.1–M.11 (all have recommendations; none blocks P0). Then open miami/repo-setup (P0) and miami/closure-data (C0) as the first two branches per 03_integration_plan.md.