# Preregistered analysis plan: Pharmacist direct-authority naloxone laws and attenuation under fentanyl dominance

## Question
In U.S. states (including DC), do pharmacist *direct-authority* (prescriptive) naloxone access laws reduce age-adjusted opioid overdose mortality before synthetic opioids dominate a state's overdose mix, and does that protective association attenuate to null once synthetic opioids (ICD-10 T40.4) account for ≥50% of that state's opioid overdose deaths?

## Population and window (locked)
- Units: 50 U.S. states + District of Columbia (51 jurisdictions).
- Years: calendar years 2008 through 2021 inclusive (final / non-provisional mortality preferred).
- Balanced state×year panel after merging mortality and policy data.

## Outcome (locked)
- Primary outcome Y_st: age-adjusted opioid overdose death rate per 100,000 (2000 U.S. standard population).
- Opioid overdose definition: underlying cause of death in {X40–X44, X60–X64, X85, Y10–Y14} AND at least one multiple-cause code in {T40.0, T40.1, T40.2, T40.3, T40.4, T40.6}.
- Synthetic-opioid deaths for the share: same underlying injury set AND multiple-cause T40.4 (synthetic opioids other than methadone).
- SyntheticDominant_st = 1 if (T40.4 opioid-overdose deaths_st / opioid-overdose deaths_st) ≥ 0.50 when opioid-overdose deaths_st > 0; else 0. Years with zero opioid overdose deaths are coded SyntheticDominant=0 and flagged; primary models exclude those rare cells if any.

## Exposure (locked)
- Primary treatment: pharmacist *direct-authority* / prescriptive authority to furnish naloxone without a patient-specific prescription, from OPTIC-Vetted Naloxone Policy Data (`nal_Rx_prescriptive_auth` / `date_nal_Rx_prescriptive_auth` in WEB_NAL_1990-2023).
- Law_st = 1 in state s year t if the calendar year is strictly after the year of `date_nal_Rx_prescriptive_auth`, OR (same calendar year and the effective date's month-day is on or before July 1 — mid-year convention: treat as treated in year t if effective on or before July 1 of year t; otherwise first treated year is t+1). States never adopting remain untreated (Law=0 always).
- Secondary contrast (reported, not used for the primary success rule): statewide protocol / standing order (`nal_protocol_standing` / `date_nal_protocol_standing`) and any naloxone access law (`any_nal` / `date_any_nal`), same timing rule.

## Estimand and model (locked)
- Two-way fixed effects (state and year) linear DiD on Y_st.
- Primary specification (attenuation / interaction):
  Y_st = β1 Law_st + β2 (Law_st × SyntheticDominant_st) + α_s + γ_t + ε_st
  with SyntheticDominant_st also entering as a main effect (β0 SyntheticDominant_st) so the interaction is identified.
- Implied ATT when SyntheticDominant=0: β1.
- Implied ATT when SyntheticDominant=1: β1 + β2.
- Cluster-robust standard errors by state (51 clusters).
- Estimation: OLS with state and year dummies (Python `statsmodels` or equivalent deterministic implementation in the bundle). No weights in the primary model (unweighted state-years). Sensitivity (secondary): population-weighted OLS using state-year population from the mortality file.

## Baselines and falsification (locked)
- Comparison group: never-treated and not-yet-treated state-years under two-way FE (standard TWFE DiD).
- Event-study falsification for the direct-authority law (relative years −4..+4, binning ≤−5 and ≥+5), estimated on the pooled sample with year and state FE; report coefficient on lead −1 as the reference (=0). Pre-trend check: joint test that leads −4..−2 are jointly zero (Wald); this is falsification, not a gate on the primary claim.

## Null and success rules (locked before results)
- Scientific null for the attenuation claim: no attenuation — the protective association (if any) is the same before and after SyntheticDominant (i.e. β2 = 0), and/or the ATT in SyntheticDominant years remains as protective as in non-dominant years.
- **Support (positive empirical claim)** if ALL hold:
  1. β1 < 0 and its 95% CI excludes 0 (protective association before dominance);
  2. (β1 + β2) has 95% CI that excludes a reduction as large as −5 deaths per 100k (i.e. the lower bound of the CI for ATT_dominant is greater than −5), AND β2 > 0 with 95% CI excluding 0 (attenuation toward null / less protective);
  3. Event-study joint pre-trend test for leads −4..−2 does not reject at α=0.05.
- **Refute / negative_result** if: β1 ≥ 0 or β1's 95% CI includes 0 (no pre-dominance protection), OR β2 ≤ 0 with CI including non-positive values while ATT_dominant remains ≤ −5 at the CI lower bound (no attenuation as defined), OR the interaction and split ATTs clearly contradict attenuation toward null under the numeric rules above.
- **Inconclusive** otherwise (mixed signs, wide CIs, or failed pre-trends with otherwise mixed evidence). The published claim type will be `empirical` if Support, `negative_result` if Refute under the locked rules, and a precise `empirical` statement of inconclusiveness if Inconclusive (still reporting all locked numeric outputs).

## Data provenance (locked sources; snapshots pinned in bundle)
1. Mortality: CDC / NCHS Multiple Cause of Death information sufficient to build state×year opioid and T40.4 counts and age-adjusted rates for 2008–2021. Preferred acquisition order: (a) documented CDC WONDER MCD export CSVs (state×year, age-adjusted rates and counts for the locked ICD sets); (b) if WONDER export is unavailable programmatically, NCHS public-use Multiple Cause mortality microdata aggregated in-bundle to the same state×year panel with age-adjustment to the 2000 U.S. standard; (c) as a last resort for counts-only share construction, CDC VSRR provisional drug overdose death counts (data.cdc.gov xkb8-kh2a) aggregated to calendar year, with outcome then a crude rate using Census/WONDER population — any such fallback will be recorded in `deviations.json` and cannot change the success rules.
2. Policy: RAND-USC OPTIC-Vetted Naloxone Policy Data, WEB_NAL_1990-2023 (zip pinned under `data/` with digests).
3. Digests of all vendored inputs recorded in `data/SOURCES.json`.

## Exclusions / no peeking
- Do not change the SyntheticDominant threshold (0.50), ICD sets, mid-year July 1 rule, year window, or success thresholds after seeing DiD estimates.
- Do not drop states post hoc except for documented missing mortality/policy merge failures listed before estimation.
- One primary question; secondary standing-order / any-NAL models are descriptive contrasts only.

## Report-by
2026-10-14
