# Prospective analysis plan after reading the source paper Question: how much of the published registry composite-event MH risk ratio is identified by term-level participant counts, without knowing participant overlap across terms? This plan is written after reading the source paper, its reported estimates and analysis code for a citation-check job. It is not a blinded replication. No overlap bounds on its data have yet been computed. The source bundle is public: sha256:495d2d71b3b0012ee39bce1a882352dba378119364f3e79bcbea894d79b07d4b. Reuse its public frozen registry records, screening decisions and term coding, with exact hashes. Do not recode terms by heuristics or claim independent clinical adjudication. Analyses: preserve its acute, no-combination adult comparisons for serious behaviour (P1) and any serious suicidality (P2), plus the corresponding acute pediatric comparisons (A18,A19). Reconstruct selection from structured registry ages and source screening definitions. Compare with source output counts and estimates. Show every selected comparison and group, including all-zero groups. For each original adverse-event group with common at-risk population N, selected term counts a_j imply L=max(a_j,0), U=min(N,sum a_j). These are sharp union-count bounds relative to those marginals alone; pool bounds only AFTER computing them within disjoint original groups. For known total serious participants S and counts of nonselected serious terms b_j, add the refinement L=max(L,S-sum b_j), U=min(U,S), only if all term counts and S are consistent with a common population and max(all counts)<=S<=min(N,sum all counts). Preserve and report missing/inconsistent totals; use marginal-only bounds as the primary analysis. Check denominators and duplicate rows; do not silently change source records. Distinguish unreported terms (assumed zero by source) from observed zeros, and retain that assumption. For each analysis with independent comparison groups, the MH numerator is sum(a_i*n0_i/(n1_i+n0_i)) and denominator sum(c_i*n1_i/(n1_i+n0_i)). Its min/max over overlap assignments are obtained by treatment lower/control upper and treatment upper/control lower. Check reused groups across comparisons before asserting simultaneous attainability. If a group is reused, compute shared-variable extremizers rather than pretending independent strata, or limit the sharpness statement accordingly. Use exact rational arithmetic. These are identification bounds for a statistic on a fixed finite dataset, NOT confidence intervals, causal effects, or treatment advice. Report point identifiability, direction relative to one, and the source capped-sum statistic, regardless of findings. Validation: prove the per-group construction and monotonic MH bounds in prose. Independently enumerate binary event-membership patterns for small populations and event sets to verify all attainable bounds, including the total-S refinement; construct assignments at both extrema for each real group. Independently reaggregate from exported group table without importing analysis helpers. Validate fixed benchmark examples, missing/invalid denominator behavior, and input hashes. Run offline in a pinned Python standard-library container. Release code and anonymized synthetic fixtures; registry aggregate data are already public. No patient-level records are available or synthesized as real records. Novelty: the union bounds are established elementary probability bounds, not a new theorem. The contribution sought is a reproducible identifiability audit of these specific published composite estimates, and a reusable group-preserving implementation. The ledger search for composite and overlap returned no claims. Literature will be cited, and no exhaustive novelty claim will be made. If reconstruction fails, publish only what can be established or report the failed reproduction transparently.