# Data quality: Miami-Dade County GIS layers Checked 2026-10-17 against live county layers, with full pagination. Scripts: `data_pipeline/fetch.py`, `data_pipeline/audit.py`. Status key: PASS = use as-is, WARN = usable with the caveat noted, FAIL = don't rely on it without fixing. | Dataset | Rows | Last edit | Status | What teams must know | |---|---|---|---|---| | Public schools (SchoolSite) | 451 | 2025-11-19 | WARN | Not 451 schools. Includes admin buildings, adult ed, and annex rows (`PLC`) that share the main school's ID: 35 IDs appear on 72 rows. Filter by TYPE and use `ENROLLMNT>0` for school-level analysis. Capacity is 0 on 114 rows. | | Charter schools | 181 | 2025-11-24 | FAIL for capacity, WARN otherwise | Capacity is 0 on 178/181 rows, so it's unusable. 6 rows have no ID. 42 rows share IDs (multiple campuses). Enrollment is 0 on 67 rows. | | Private schools | 971 | 2026-10-15 | WARN | 942 records haven't been touched in 3+ years. Enrollment is blank on 300. STATUS has typos and blanks (`Actve`, null). 6 are marked Closed. | | Daycares | 1,650 | 2026-10-15 | FAIL for license status | 1,423 have a license expiration date in the past (back to 2018), so the field is not maintained. Check status in the state CARES search instead. Locations look fine. | | Head Start | 109 | 2025-11-24 | WARN | 106/109 records haven't been modified in 3+ years. Spot-check that sites are still open. | | Elementary zones | 216 | 2026-09-21 | PASS | Every ID matches a school, and zones don't overlap. 14 school buildings sit outside their own zone, which can happen; verify the demo schools. | | Middle zones | 53 | 2026-09-21 | PASS | 1 ID (6091 Citrus Grove Middle) is missing from the school layer. 7 buildings sit outside their own zone. | | High zones | 34 | 2026-09-21 | PASS | Everything checks out. | | School bus stops | 38,882 | **2018-11-13** | FAIL for current routes | 6,074 stop IDs repeat at the exact same point (up to 56 times each). There are about 23.7k unique stop locations. The newest "EFF" date in the stop descriptions is 2020. Use only as a historical or approximate density layer. | ## Private records in the finder The finder retains all **971 private source records**, including six marked `Closed`. Source `STATUS` is shown as historical snapshot evidence, not verified current activity. Records are not deduplicated by name or address. Combined finder totals (currently **1,502 records**, including 531 public/charter IDs) are not a census of active unique schools. Private IDs are namespaced as `private-OBJECTID`, identifying rows within this county snapshot, not district school numbers or guaranteed stable IDs across future exports. Do not join them to FLDOE grades, district counselors/programs or attendance zones. Private state grades/gains are not applicable in this app; absent services must remain unknown. Only explicit valid reported grade ranges establish bands; malformed/reversed ranges stay unknown. ## Consequences for joins - **Join on ID, not name.** For the same ID, the school name differs between the boundary layer and the school layer in 94/216 elementary, 16/53 middle and 9/34 high zones (e.g. "Washington, Booker T. Senior High" vs "Booker T. Washington Senior High"). Name matching against FLDOE will be even worse. - **Reduce to one row per school ID before joining**, or annex rows will inflate counts. - Public and charter IDs never overlap (0 of 157), so you can safely combine them. ## Checks that passed everywhere - No missing geometry. - The LAT/LON fields match the point geometry. - Every point except 2 falls inside the county's school boundaries. The exceptions are Miccosukee Indian School, which is legitimately outside, and bus stop 7051.153. ## Still to verify when the FLDOE and civil rights files are added - Join coverage between county ID and the FLDOE school number (expected key: district 13 + 4-digit ID). - That the grade levels in FLDOE match the county file. - Hand spot-check of 10–20 demo schools against FLDOE report cards. --- # State, federal and transit files (downloaded 2026-10-17) | Dataset | Covers | Status | What teams must know | |---|---|---|---| | FLDOE school grades 2026 (`SchoolGrades26.xlsx`) | 2025-26, released Sep 1, 2026 | PASS | 473 Miami-Dade schools. **450 join to county layers on district 13 + ID** (326 public, 124 charter). The 23 that don't join are almost all charters missing from the county charter layer or listed there without an ID. Grades: 298 A, 116 B, 58 C, 1 D, 0 F. The file includes grade history back to 1999 in `Grade 20xx` columns. | | FLDOE grades 2025, 2024, 2023 (baseline), 2022, 2019 | trend | PASS | Join rates: 452/470, 456/458 and 440/443, so the county layer matches older years better. No 2020 grades (COVID), and 2023 was an informational baseline year. | | FLDOE ELA and math learning gains 2026 | 2025-26 | PASS | 473 Miami-Dade rows each. | | FLDOE graduation rates 2024-25 (by race, by category) | class of 2025 | WARN | 146 schools; 123 join. `*` means fewer than 10 students, so treat it as missing, not 0. | | FLDOE enrollment by grade, free/reduced lunch, stability, attendance, chronic absence | 2025-26 / 2024-25 | PASS | Each has about 530–550 Miami-Dade school rows. These include centers and virtual schools, so filter to the county list. | | Civil rights data, counselors (`School Support.csv`) | **2021-22**, 4+ years old | WARN | 509 Miami-Dade schools. All 509 map to a state ID through the NCES school directory; 492 map to the county layers. 112 schools report 0 counselor FTE, including 23 with ≥500 students (e.g. Riverside Elementary, 974 students). That may be real or a reporting gap, so label it as 2021-22 and spot-check. | | Miami-Dade Transit schedule feed (GTFS) | weekday service 2026-07-20 to **2026-11-22** | WARN | Current now, but **the schedule ends Nov 22**. Re-download after that, or before the event if it's later. | | After-school (21st CCLC) sites | page as of today | Manual | 9 sites entered by hand in `manual/cclc_sites.csv` with county IDs. "Miami Community Charter School" could be either of 2 IDs on the same campus; one entry is a program, not a site. | ## Cross-source joins - **Key:** `13-` + the 4-digit county `ID` = the FLDOE school number = NCES `seasch`. This is confirmed, so name matching isn't needed. - **Name matching is unsafe.** Fuzzy name matching picked the *wrong* school for about 18 of the 23 unjoined FLDOE schools (e.g. "Mater Brickell Academy Middle" matched "Mater Gardens Academy Middle"). Fix those 23 by hand in `manual/crosswalk.csv`. - **The county charter layer is behind FLDOE:** about 20 graded 2026 charter schools are missing from it or have no ID. --- # Official M-DCPS exceptional-student program lists (retrieved 2026-10-17) Archived official sources and transcriptions: [`raw/ese/`](raw/ese/README.md). All **228 school/program rows** are imported into five queryable SQLite datasets. This is not a count of distinct schools. | Dataset | Rows | Reporting period | Status | Caveats | |---|---:|---|---|---| | ASD self-contained programs | 98 | 2026–27 | WARN | All published IDs match local catalog IDs. Some rows have explicit grade restrictions. File last modified Aug 21, 2026. | | Emotional/behavioral disability programs | 51 | 2026–27 | WARN | All published IDs match local catalog IDs. Some K–8 entries are elementary-only; wrapped names and source typos are preserved. File last modified Aug 18, 2026. | | Intellectual-disability self-contained programs | 65 | 2026–27 | WARN; 6 identities unresolved | 59 ID cross-references. Codes `0361`, `0061`, `6091`, `7012` are absent locally; `0271` and `6611` conflict with the published school names. These six rows retain source codes but have null `school_id`; no guesses or silent corrections. File last modified Sep 30, 2026. | | DHH self-contained programs/clusters | 9 | **Undated** | WARN | No school-code column or reporting year. All rows remain unjoined. The official page says DHH supports/services may be provided at any M-DCPS school; this is only the specialized-program list. | | Visual-impairment self-contained programs | 5 | **Undated** | WARN | No school-code column or reporting year. All rows remain unjoined. This list does not establish the availability of itinerant support elsewhere. | `source_last_modified` is HTTP file metadata, **not** verification that a service is operating or has places now. `retrieved` and SQLite `imported_at` are not reporting periods. Every row includes provenance, identity/freshness status and limitations. **Do not join unresolved rows on raw `school_code` or by fuzzy name.** Neither a listing nor an ID match verifies child suitability, IEP/504 eligibility, placement, staffing, admission or seat availability. Missing listings are unknown, not evidence that support is absent. The finder and joined school profiles are unchanged by this raw-data import.