Analysis Results Metadata (ARM) — GLPI103-301
📚 Part of the GLPI-103 Regulatory Dossier — Reader's Guide. This article shows the live document; edits to the source appear here automatically.
This is a mock / simulation document, made for a portfolio and for learning. The drug (GLPI-103), the sponsor, the people, and the data are all fictional. It is not a real regulatory submission and has no clinical, legal, or regulatory standing. What is real is the shape of the thing — the document structure, the standards it follows, and the analysis methods; the content inside is illustrative.
What it is. The Analysis Results Metadata — machine-readable metadata linking each key analysis result to the dataset, method, and code that produced it.
Why it exists. ARM lets a reviewer trace a headline result back to its exact derivation and re-run it. It is the traceability layer that connects the report's numbers to the data.
How it is produced here. It is generated from the standardized study datasets (the SDTM and ADaM data and their define.xml 'data dictionary'), so the guide always describes the exact datasets a regulator would receive.
Format & governing standard. CDISC Analysis Results Metadata (ARM) for Define-XML; ADaM
Analysis Results Metadata (ARM) — GLPI103-301
Analysis Results Metadata records, for each key result, exactly which dataset, method, and code produced it — so a reviewer can trace a headline number back to its derivation and reproduce it, rather than taking it on trust.
| Field | Value |
|---|---|
| Document ID | ARM-301 |
| Version | 1.0 |
| Status | Final (portfolio) |
| Standards | CDISC Analysis Results Metadata (ARM) for Define-XML; ADaM |
| Companion to | define.xml, ADRG (DEF-301), SAP-301, SAR-301 |
| Confidentiality | Confidential — portfolio use |
Analysis Results Metadata provides end-to-end traceability for every key analysis result: from the reported display back to the analysis dataset, the population/selection, the statistical method, the executing program, and the output file. This is the metadata layer a regulatory reviewer uses to reproduce a result.
Change History
| Version | Date | Author | Summary |
|---|---|---|---|
| 1.0 | 2026-06-30 | Biostatistics | Initial — covers primary, estimand, missing-data, multiplicity, responder, subgroup, time-to-event, and hepatic results |
Analysis Datasets (ADaM)
| Dataset | Class | Structure | Key analysis use |
|---|---|---|---|
| ADSL | ADSL | One record/subject | Populations, treatment, strata, disposition, ICE flags |
| ADLB | BDS | One record/param/visit/subject | HbA1c & lab CFB (ANCOVA, MMRM, estimands, MI) |
| ADAE | OCCDS | One record/AE/subject | TEAE incidence, SAEs, AESI |
| ADVS | BDS | One record/param/visit/subject | Vital-sign & weight CFB |
| ADTTE | BDS | One record/param/subject | Time-to-event (rescue, target) |
Analysis Results
| Result ID | Display / Result | Dataset | Population / Selection | Method | Program | Output |
|---|---|---|---|---|---|---|
| R-EFF-01 | Primary: HbA1c CFB at Wk 52, LS-mean diff vs Sema | ADLB | FAS; PARAMCD=HBA1C; VISITNUM=8 | ANCOVA CHG ~ TRT01A + BASE + STRAT_HBA1C + STRAT_BMI | run_analysis.R | ancova_results.csv |
| R-EFF-02 | Primary estimands (treatment-policy, hypothetical) | ADLB + ADSL | FAS; visits W4–52 | MMRM (mmrm, unstructured, Kenward-Roger); ICE strategies | mmrm_estimands.R | estimand_results.csv |
| R-EFF-03 | Longitudinal HbA1c by visit | ADLB | FAS; visits W4–52 | MMRM LS means by visit | run_analysis.R | mmrm_results.csv |
| R-SENS-01 | Missing-data sensitivity (MAR/JR/CR) | ADLB + ADSL | FAS; complete visit grid | Reference-based MI (rbmi), Rubin's rules | missing_data_sensitivity.R | missing_data_results.csv |
| R-SENS-02 | Tipping-point (MNAR delta) | ADLB + ADSL | FAS; IV vs Sema | Delta-adjusted MI | missing_data_sensitivity.R | missing_data_results.csv |
| R-MULT-01 | Fixed-sequence multiplicity decisions (8 steps) | ADLB + ADSL | FAS | Hierarchical gatekeeping (α=0.05) | secondary_subgroup.py | multiplicity_results.csv |
| R-SEC-01 | Responders (HbA1c<7%, ≥10% weight) | ADLB + ADSL | FAS; NRI | Logistic regression + stratified CMH | secondary_subgroup.py | responder_results.csv |
| R-SEC-02 | Subgroup HbA1c effect + interaction | ADLB + ADSL | FAS; IV vs Sema | ANCOVA within subgroup + interaction F-test | secondary_subgroup.py | subgroup_results.csv |
| R-TTE-01 | Time to HbA1c<7% / time to rescue (HR) | ADTTE | FAS | Kaplan-Meier + stratified Cox PH | survival_recurrent.R | survival_results.csv |
| R-SAF-01 | Recurrent hypoglycaemia rate ratio | ADAE + ADSL | Safety; exposure offset | Quasi-Poisson rate model | survival_recurrent.R | recurrent_results.csv |
| R-SAF-02 | Hepatic safety (eDISH / Hy's law) | ADLB-source (ALT, bilirubin) | Safety; per-subject peaks | eDISH quadrant + Hy's-law flag | hepatic_safety.py | hepatic_edish.csv, figure4_edish |
| R-EFF-04 | Bayesian primary (posterior P(superiority)) | ADLB | FAS | Bayesian ANCOVA (conjugate normal) | bayesian_exposure.py | bayesian_results.csv |
| R-EFF-05 | Exposure–response (HbA1c vs dose) | Phase 2 dose-finding | dose-finding | Emax model | bayesian_exposure.py | exposure_response.csv |
Quality Control — Double Programming
Critical results are programmed independently by two people; if their numbers match, confidence is high; if not, the discrepancy is chased down. It is the statistical-programming equivalent of double-entry bookkeeping.
| QC ID | Result qualified | Independent method | Program | Output |
|---|---|---|---|---|
| QC-DP-01 | R-EFF-01 primary contrasts (both arms) | Independent Python ANCOVA (statsmodels) reproduces R emmeans within ±0.01 | qc_double_program.py | qc_double_program.csv |
All results are regenerated reproducibly by python build.py --stage biostat; every reconciled CSR number is checked by tools/reconcile_csr.py.
Comments (0)
No comments yet. Be the first to say something!