# Outcome time series for Metro Nashville's two biggest spending areas

Built Nov 2 2026 by `scripts/outcomes/build_outcomes.py` from the files in `raw/outcomes/` (downloaded the same day) plus
two files already in the study: `data/acfr/operating_indicators.csv` (ACFR operating indicators, not re-pulled) and
`data/population_cy.csv` (Davidson County July-1 population, the only denominator used for the study's own rates).

Files
* `outcomes_annual.csv` — long format: `domain` (schools | police | fire), `metric`, `year`, `year_basis`
  (`calendar` = Jan–Dec; `school_year_ending` = school year named for the spring it ends in, e.g. 2024 = 2023-24;
  `fiscal` = Metro FY July–June named for the ending year), `value`, `unit`, `source`, `source_url`, `notes` (definition breaks).
* `outcomes_wide.csv` — one row per year, one column per metric. **The year column mixes bases**: schools metrics are
  school-year-ending, crime/traffic metrics are calendar years, ACFR metrics (`mnps_enrollment_2nd_month`, `fire_*`,
  `police_cad_calls`, `ecc_911_calls`, `sheriff_*`, `per_pupil_expenditure_tdoe`) are fiscal years. Check `year_basis` in the long file.
* `OUTCOMES_FINDINGS.md` — narrative, with a start/end table.

Refresh: run `python3 -E scripts/outcomes/download_tdoe.py raw/outcomes/tdoe` (tn.gov rate-limits: re-run until no FAIL lines;
plain `curl` gets 403, Python's urllib does not), `download_fbi_cde.py raw/outcomes/fbi`, re-save the MNPD and TDOS PDFs listed
below, run `pdf_dump.py` on the `mnpd/` and `fars/` folders, then `build_outcomes.py "<project root>"`.
All raw files are treated as untrusted data (parsed with openpyxl/xlrd/csv/json/PyMuPDF only; scripts live in `scripts/outcomes/`,
file paths are passed as arguments).

---------------------------------------------------------------------------------------------------------------------------

## 1. Schools — Metro Nashville Public Schools (TDOE district 190 "Davidson County")

Source: Tennessee Department of Education, **Data Downloads & Requests** page
(https://www.tn.gov/education/districts/federal-programs-and-oversight/data/data-downloads.html), accessed Nov 2 2026.
The individual file URLs are in `scripts/outcomes/download_tdoe.py` and in the `source_url` column. Files are the
*suppressed* public district-level files (small-n cells masked; district "All Students" rows are never masked).

| metric | years | definition | file(s) |
|---|---|---|---|
| `ela_3_8_pct_proficient`, `math_3_8_pct_proficient` | 2010–2015, 2017–2019, 2021–2026 | District "All Students", grades 3–8 combined ("All Grades" row; 2011 and 2025–26 computed as Σ(proficient+advanced or met+exceeded)/Σ valid tests over grades 3–8 — identical to the published row in every year both exist). **2010–2015 = TCAP Achievement, % Proficient+Advanced** (2010 cut scores). **2017+ = TNReady, % On Track+Mastered** (renamed Met+Exceeded Expectations in 2022; same levels). 2025–26 files label the 3–8 test "ACH". | `assess_YYYY.*` |
| `grad_rate_4yr` | 2015–2026 | Tennessee 4-year adjusted cohort graduation rate (district "All Students"). From the 2023 file TDOE publishes two rates; `grad_rate_4yr` carries the **state** rate (continuous with earlier years) and `grad_rate_4yr_federal` the ACGR. | `grad_YYYY.*` |
| `act_composite_avg` | 2012–2025 | Average ACT composite, district "All Students". **2012–2015 files are ACT's graduating-class means** ("including extended time"; 2012 is "standard time only" from the 2013 file's prior-year column). **2016+ files are TDOE's graduating-cohort files** (valid tests + participation rate reported). The 2016 value (18.7) differs from the 18.4 the press reported from ACT's own release, so treat 2015→2016 as a soft basis change. | `act_YYYY.*` |
| `act_pct_21_or_higher` | 2016–2025 | Share of the cohort scoring 21+ (TN's HOPE-scholarship threshold). | `act_YYYY.*` |
| `chronic_absenteeism_pct` | 2017–2025 | Students enrolled ≥50% of the year who missed ≥10% of enrolled days (all absences incl. suspensions), all grades. 2020 counts stop at the March 2020 closure. | `chrabs_YYYY.*` |
| `per_pupil_expenditure_tdoe` | FY2019–FY2025 | ESSA per-pupil expenditure (district + school level; federal + state/local + nutrition) from TDOE finance / Report Card files. Cross-check only; FY2024 ($22,004) sits far above FY2023/FY2025 and is not explained in the file. `enrollment_tdoe_ppe_file` is its denominator. | `rc_2019.xlsx`, `finance_2020.xlsx`, `ppe_fy21/22.xlsx`, `rc_2023/24/25.xlsx` |
| `mnps_enrollment_2nd_month` | FY2001–FY2025 | ACFR operating indicator (already extracted). FY2012: CAFR FY2015 prints 79,212, CAFR FY2020 prints 79,121; the later report is used. | `data/acfr/operating_indicators.csv` |

Breaks and comparability warnings (schools)
* **2016**: TNReady grades 3–8 were cancelled mid-administration (vendor failure); only high-school EOC results exist → no 3–8 value.
* **2016-17**: first full TNReady year, new standards and much higher cut scores. **Nothing before 2017 is comparable with 2017+** for proficiency; 2010–2015 is a separate TCAP series.
* **2018**: online-testing failures; TDOE allowed districts to hold results harmless, but the district file is complete.
* **2020**: all state testing cancelled (COVID-19); no proficiency, ACT files exist (class of 2020 tested in fall 2019/junior year).
* **2021**: participation 90% (ELA) after a remote year; the trough values (ELA 18.4, Math 12.6) partly reflect who tested.
* **2023+ graduation**: state vs federal rate split; **2025–26**: the TDOE file labels columns `grad_rate_state`/`grad_rate_federal`, state rate used.
* Pre-2010 TDOE district files are not posted (the old Report Card archive is gone); 2005–2009 proficiency/graduation could not be obtained without a records request.
* MNPS's own annual reports were used only as a press cross-check (see Validation).

## 2. Police — Metro Nashville Police Department (jurisdiction = all of Davidson County except the satellite cities' own small departments)

### 2a. MNPD published history (counts and MNPD rates), calendar years 2000–2024 (file runs 1963–2024)
* "Uniform Crime Reports, Part I Crimes: 1963-2024" — https://www.nashville.gov/sites/default/files/2025-08/Uniform-Crime-Reports-Part-I-Crimes-1963-2024.pdf
* "… 1963-2024 by Population (Crime Rate)" — https://www.nashville.gov/sites/default/files/2025-08/Uniform-Crime-Reports-Part-I-Crimes-1963-2024-by-Population.pdf
  (both from https://www.nashville.gov/departments/police/news-and-reports/crime-statistics/nashville-crime-statistics, accessed Nov 2 2026;
  saved as `raw/outcomes/mnpd/UCR_PartI_1963-2024*.pdf`, text in the `.txt` files)
* Metrics: `total_crime_count`, `violent_crime_count` (homicide+rape+robbery+agg assault), `property_crime_count` (burglary+larceny+auto theft),
  `homicide_count`, `rape_count`, `robbery_count`, `agg_assault_count`, `burglary_count`, `larceny_count`, `auto_theft_count`;
  `*_rate_mnpd` = MNPD's own per-100,000 rates (Metro Planning Commission population; auto-theft rate uses registrations, so it is not carried).
* `*_rate_per100k` = count ÷ `data/population_cy.csv` × 100,000 (the study's denominator).
* Definition notes from the PDF: offenses are derived from MNPD's incident-based system under UCR definitions; **rape**: MNPD adopted the FBI's broader
  definition in **2012**, a year before the FBI (1/1/2013) → rape, violent and total counts step up in 2012 (rape 378 → 554); 2024 counts as of 5/29/2025.
  Arson is investigated by the Fire Department and is not in MNPD's Part I totals.

### 2b. FBI Crime Data Explorer (agency TN0190100), calendar years 2000–2024
* API: `https://api.usa.gov/crime/fbi/cde/summarized/agency/TN0190100/<offense>?from=01-2000&to=12-2024` (public DEMO_KEY), pulled Nov 2 2026;
  CDE last refresh 10/15/2026. Raw JSON in `raw/outcomes/fbi/`. Offenses pulled: violent-crime, property-crime, homicide, rape, robbery,
  aggravated-assault, burglary, larceny. **motor-vehicle-theft and arson were not obtained** (api.data.gov DEMO_KEY rate limit, HTTP 429 on every retry).
* Metrics: `fbi_<offense>_count` (monthly actuals summed), `fbi_<offense>_cleared`, `fbi_<offense>_clearance_rate` (= cleared ÷ reported in the same
  year, the usual UCR convention; clearances can refer to prior-year offenses), `fbi_agency_population`.
* **SRS→NIBRS**: Tennessee has reported incident-based (TIBRS) data since the 1990s, and MNPD's CDE series is continuous 2000–2024 with 12 months every
  year, so there is no NIBRS transition gap for MNPD (unlike many US cities in 2021). FBI counts differ a little from MNPD's own (e.g. violent 2024:
  FBI 8,244 vs MNPD 8,474; homicide 2017: 110 vs 111) because of FBI hierarchy/edit rules and reporting cut-off dates.
* MNPD publishes no clearance-rate history (its annual reports 2005–2018, saved in `raw/outcomes/mnpd/`, were searched); the Metro budget's KPI target
  is 18.5% total Part I clearance. FBI clearances are the only series.

### 2c. Traffic safety, Davidson County (calendar years)
* `traffic_fatal_crashes`, `traffic_total_crashes` 2007–2025: TN Dept of Safety & Homeland Security, "Tennessee Traffic Crashes by Year, Type and County"
  (TITAN) — current table 2010–2025 https://www.tn.gov/content/dam/tn/safety/documents/crash_stats/Crash_Type.pdf (2024–2025 preliminary, dated 1/26/2026) and
  the 2007–2017 historical table https://www.tn.gov/content/dam/tn/safety/documents/historical/CrashType.pdf (used for 2007–2009 only; its 2017 column was a
  partial year). All reporting agencies; excludes private-property crashes; PDO threshold changed over time (affects total crashes, not fatal).
* `traffic_fatalities` (persons killed): 2003–2013 from the MNPD 2013 Annual Report trend table, 2014–2018 from MNPD annual-report text
  (2016 derived from the stated −10.7%), 2023–2024 from TDOS "Traffic Fatalities – District Report 2024 vs 2023"
  (https://www.tn.gov/content/dam/tn/safety/documents/crash_stats/Fatality_Report_by_County.pdf). **Two different counters** (MNPD vs TITAN/FARS basis);
  2019–2022 are not in any static table (TDOS publishes them only in a dashboard), and NHTSA's FARS API refused non-browser requests.
* `police_cad_calls`, `ecc_911_calls`, `sheriff_inmate_days_*` (fiscal years): ACFR operating indicators. ACFR footnotes: CAD calls — from FY2021
  mental-health calls are routed with partner agencies and non-emergency reports moved to hubNashville (FY2022 drops 42%); 911 calls — in 2023 ECC began
  counting ASAP-to-PSAP, HUB and Text-to-911 separately (FY2023 drops 46%). **FY2021 CAD and 911 figures are identical to FY2019 in the ACFR as printed** (flagged
  SUSPECT in notes). Sheriff lines were relabelled in the FY2021 ACFR ("jails"→"county prisoners", "detention facility"→"locally sentenced felons and state
  inmates"); values are continuous and `sheriff_inmate_days_total` sums them.

## 3. Fire — Nashville Fire Department (fiscal years, ACFR only)
* `fire_life_threatening_responses`, `fire_non_life_threatening_responses` FY2002–FY2025, `fire_stations` FY2001–FY2024: ACFR operating indicators.
  ACFR footnote: "The categorization of responses as life threatening and non life threatening was revised at the end of 2018 and again in 2021.
  Additionally, the methodology for calculating the totals was revised in 2019." Visible steps: FY2018 (+31% LT), FY2019 (+73% NLT), FY2022 (+55% LT, −23% NLT).
  Only FY2002–FY2017 is a consistent series.
* **Not found**: NFD publishes no annual report online (nashville.gov/departments/fire has none; the search also returned none), so total incidents, structure
  fires, fire deaths/injuries and response times could not be collected. The Mayor's Office of Performance Management pages "Fire Response Time" and "Fire Calls
  for Service" (https://www.nashville.gov/departments/mayor/performance-management/) are live dashboards without a downloadable history; the Metro budget books
  state only the KPI targets (first-engine structure-fire arrival < 5 min, medical < 8 min). The Open Data portal's only NFD dataset is the live "Active Incidents" feed.

## 4. Population
`data/population_cy.csv` (Census intercensal 2000–2010, V2019 bridged 2010–2019, Vintage 2025 for 2020–2025) is the denominator for every `*_rate_per100k`.
MNPD's own rates (`*_rate_mnpd`) use Metro Planning Commission estimates and run 1–6% higher in 2009–2024 because MPC's population is lower than the Census series.

## 5. Validation (spot checks, Nov 2 2026)
Schools (TDOE file values vs independent text)
1. 2025 graduation 83.6% — Chalkbeat 10/28/2025 "fell from 85.7% to 83.6%" ✓; 2. 2024 graduation 85.7% — WSMV 10/31/2024 ✓;
3. Class of 2019 ACT 18.5 (and 2018 18.9) — Chalkbeat 11/4/2019 "Metropolitan Nashville Public Schools, 18.5, down from 18.9" ✓;
4. 2021-22 chronic absenteeism 29.7% — WKRN report of the State Report Card ✓; 5. FY2016–FY2019 second-month enrollment 85,797 / 87,783 / 86,633 / 85,287 —
ACFR FY2025 statistical section text ✓. **Not verified / disagreeing**: 2023 ELA 27.4% vs Nashville Scene's "28.5%" (likely a grades 3–12 aggregate incl. EOC English);
2016 ACT 18.7 (TDOE cohort file) vs 18.4 (ACT release quoted in the press) — basis difference, see §1.
Police (parsed PDF values vs other documents)
1. 2005 total Part I 45,912 — MNPD 2013 Annual Report trend table ✓ (also 2003–2013 violent/property columns match);
2. 2009 larceny 21,769 — MNPD 2009 Annual Report "2009 UCR Stats" ✓; 3. 2007 homicide 73 / robbery 2,603 / agg assault 5,839 — MNPD 2007 Annual Report chart ✓;
4. 2023→2024 total 40,730→40,377 — MNPD "Part I Crimes 2023-2024 Total and Percent of Change" PDF ✓; 5. 2021 fatal crashes 122 — appears identically in TDOS
Crash_Type.pdf and CountyCrashRankings.pdf ✓; 2014 traffic deaths 64 — MNPD 2014 Annual Report ✓. **Flag**: TDOS fatal crashes 2010 = 72 vs MNPD "70 fatal crashes" (different
reporting bases); FBI CDE counts are MNPD-reported but not identical to MNPD's PDF (see §2b) — both are kept.
Fire / ACFR
1–5. FY2016 LT responses 47,453, FY2017 45,773, FY2016 NLT 35,374, FY2017 NLT 33,810, FY2016 CAD calls 1,492,259 and 911 calls 450,517 — all match the ACFR FY2025
statistical-section text (`raw/acfr/text/ACFR_FY2025_stat.txt`) ✓. **Flag**: FY2021 CAD/911 = FY2019 values (ACFR as printed).

## 6. What could not be found
* TDOE district data before 2010 (and grad rate before 2015, ACT before 2012, absenteeism before 2017) — not posted online.
* NFD incidents, structure fires, fire deaths/injuries, response times — no public annual report; dashboards only.
* MNPD clearance rates (MNPD does not publish them; FBI CDE used), MNPD arson (handled by NFD).
* FBI CDE motor-vehicle theft and arson series (rate-limited); FARS county fatality counts 2019–2022 (API blocked, dashboard only).
