# Implementation decisions and deviations

2026-09-05, after schema/metadata inspection but before endpoint summaries or model fitting:

- The bare HAGR domain failed local DNS resolution. Official `www.genomics.senescence.info` exports succeeded. Manifest records actual URLs and byte hashes. The beta mirror was not used for data.
- R 4.6.1 and base/recommended packages are already installed. Use base R for statistical analysis and plots, with Python/NumPy for independently implemented numerical verification; no software installation is needed.
- AnAge quality is coded `low`, `questionable`, `acceptable`, `high`; primary set uses acceptable/high. Specimen origin is captivity/wild/unknown. Add an observation-effort sensitivity adjusting for recorded sample-size category and specimen origin, as these are documented biases. This addition precedes outcome inspection.
- DrugAge species labels contain capitalization variants; normalize by trimming whitespace and lowercasing for grouping, while preserving raw labels. Seven exact duplicate rows will be removed.
- Family-blocked prediction with order intercepts is identifiable only where at least two families occur in an order. Restrict the prediction evaluation (not primary inference) to these orders, distribute families across folds within order, and retain common folds for both models. Report coverage and do not imply prediction to unseen orders.
- AnAge release notes advertise 4,671 entries, while the downloaded text contains fewer records. Report the actual parsed export count and this discrepancy explicitly; do not invent absent entries or assert its cause. DrugAge export contains 3,423 rows, matching its current release notes.

After first model fitting, during prespecified source audit:

- Source key 101039 in DrugAge is not a valid PubMed link for its 2-SeCD lifespan experiment: PubMed 101039 is a radiology paper. A relevant 2017 2-SeCD paper was located at DOI 10.1039/C7RA07210D. Do not silently rewrite the frozen input or claim this key is a verified PMID. Add a clearly post-hoc exclusion sensitivity for source key 101039; retain planned primary analysis. Bibliography must flag the mismatch.
- Source inspection confirms that the `maximum` field can describe a 90th-percentile survival endpoint rather than the single longest-lived animal. Use maximum/upper-tail terminology and explicitly state endpoint heterogeneity. Do not re-label this as a pure maximum-age meta-analysis.
- Add post-hoc internal checks for ITP-labelled versus other mouse publications, and bootstrap uncertainty for the family-blocked prediction error difference. These are robustness checks, not independent validation or additional confirmatory hypotheses.
