Back to List
Module 50 Views

Statistical Analysis Plan — GLPI103-301

July 12, 2026

📚 Part of the GLPI-103 Regulatory Dossier — Reader's Guide. This article shows the live document; edits to the source appear here automatically.

🧪
Mock / simulation document

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.

📄
About this document — a plain-language guide

What it is. The Statistical Analysis Plan — exactly how the trial will be analysed, locked before the blind is broken.

Why it exists. The SAP removes analyst discretion: it fixes the estimands, primary model (MMRM), missing-data handling, and multiplicity control in advance, so the reported result cannot be reverse-engineered from the data.

How it is produced here. The numbers come straight from the study's simulated Phase 3 dataset — they are calculated from the data, not typed in by hand. That is why you see the same figures repeated across the protocol, the analysis plan, the report, and the summaries: they all read from the same source.

Format & governing standard.


Statistical Analysis Plan — GLPI103-301

🧭
What a Statistical Analysis Plan is for

The SAP is locked before the blind is broken. Its whole job is to remove the analyst's freedom — the exact model, how missing data are handled, and the order in which things are tested are all fixed in advance — so the reported result can't be reverse-engineered out of the data.

FieldValue
Document IDSAP-301
Version3.0 (full submission-grade)
StatusFinal (prior to database lock and unblinding)
Study No.GLPI103-301
SponsorVirtual Biopharma Inc.
Standard(s)ICH E9 · E9(R1) (estimands) · E3 (alignment) · E6(R3)
ConfidentialityConfidential

Statistical methods, model specifications, and analysis-set definitions correspond exactly to the executable analysis suite (src/biostat/: run_analysis.R, mmrm_estimands.R, missing_data_sensitivity.R, secondary_subgroup.py, survival_recurrent.R) and the ADaM datasets (ADaM-SPEC-301); the table/listing/figure shells map to the generated outputs (outputs/), and each result is traced in the Analysis Results Metadata (ARM-301). This SAP is finalized before unblinding. Companions: ADaM-SPEC-301, TLF-301, SAR-301 (executed report).

Change History

VersionDateAuthorSummary of Change
1.02026-06-29BiostatisticsInitial SAP (skeleton)
2.02026-06-29BiostatisticsFull SAP (estimands, multiplicity, missing data, safety)
3.02026-06-29BiostatisticsSubmission-grade expansion — full prose detail on conventions, model specifications, assumptions/diagnostics, all secondary analyses, sensitivity framework, safety analysis detail, ARM

Abbreviations

ANCOVA analysis of covariance · CMH Cochran–Mantel–Haenszel · CFB change from baseline · CI confidence interval · DF degrees of freedom · FAS full analysis set · ICE intercurrent event · KR Kenward–Roger · LS least squares · MAR/MNAR missing at random / not at random · MI multiple imputation · MMRM mixed model for repeated measures · PMM pattern-mixture model · PPS per-protocol set · SAF safety set · SE standard error · TEAE treatment-emergent adverse event.


1. Introduction

This Statistical Analysis Plan (SAP) describes in detail the statistical methods for the analysis of efficacy, safety, and other data from Study GLPI103-301, a Phase 3, randomized, double-blind, double-dummy, active-controlled, parallel-group, multicenter trial of GLPI-103 (intravenous and oral) versus oral semaglutide in adults with type 2 diabetes mellitus (T2DM) inadequately controlled on metformin. The SAP elaborates the statistical sections of the protocol (PROT-301 §11) and is finalized prior to database lock and unblinding. Any deviation from the planned analyses identified after finalization will be documented in this SAP (with version control) or described as post-hoc in the Clinical Study Report (CSR-301).

2. Study Objectives and Endpoints

The objectives and endpoints are reproduced from PROT-301 §2. The primary objective is to demonstrate superiority of GLPI-103 (IV and Oral) versus oral semaglutide on change from baseline (CFB) in HbA1c at Week 52. Key secondary objectives address body-weight reduction, attainment of HbA1c <7.0%, and ≥10% body-weight reduction at Week 52; additional secondary endpoints include FPG, blood pressure, and cardiometabolic biomarkers.

3. Estimands (ICH E9(R1))

3.1 Primary Estimand

  • Treatment: GLPI-103 IV (or Oral) + metformin vs oral semaglutide + metformin.
  • Population: randomized FAS subjects with T2DM inadequately controlled on metformin.
  • Variable: CFB in HbA1c (%) at Week 52.
  • Intercurrent events: (i) treatment discontinuation — treatment-policy (all observed data used); (ii) initiation of rescue medication — hypothetical (post-rescue values set to missing; the value expected without rescue is targeted via the analysis model); (iii) death — handled via the analysis population (a small number occur over the 52-week duration; deaths are treated as a terminal intercurrent event with data censored thereafter).
  • Population-level summary: difference in LS-mean CFB between each GLPI-103 arm and the comparator.

3.2 Secondary and Sensitivity Estimands

Secondary endpoints share the primary ICE framework. Responder endpoints use a composite strategy (discontinuation/missing → non-responder) for the main analysis. Sensitivity estimands: a treatment-policy estimand for the rescue ICE (post-rescue data retained) and a trial-product (while-on-treatment) estimand assess robustness to ICE handling.

4. Sample Size and Power

A total of approximately 900 randomized subjects (≈300 per arm) provides ≥90% power at a two-sided α=0.05 to detect a between-treatment difference of 0.4% in HbA1c CFB versus semaglutide, assuming a common SD of approximately 1.1% and allowing for dropout (per-arm evaluable ≈191; total with dropout inflation ≈624; target 900 for margin — REF-002). The actual number randomized was 900; achieved power for the observed effect sizes is reported in CSR-301.

5. General Statistical Conventions

5.1 Definitions

  • Baseline: the last non-missing assessment on or before the date/time of first dose (ABLFL = "Y", VISITNUM = 1).
  • Study day: computed relative to the first-dose date (Day 1 = first dose; days before = negative).
  • Analysis visit windows: nominal visit weeks per the Schedule of Activities, with assessments mapped to the nearest nominal visit within ±7 days; the Week-52 primary timepoint uses the protocol-defined window.
  • Change from baseline: CHG = AVAL − BASE; percent change PCHG = CHG/BASE × 100 (where BASE ≠ 0).
  • Reference level: Semaglutide Oral is the reference treatment in all between-arm comparisons.

5.2 Data Handling Conventions

Continuous variables are summarized by n, mean, standard deviation, median, minimum, and maximum; categorical variables by frequency and percentage (denominator = number with non-missing data unless otherwise stated). Two-sided 95% confidence intervals and p-values are reported. Partial/missing dates for AE onset and concomitant medications are imputed conservatively per pre-specified rules. No imputation is applied to the primary efficacy variable beyond the model-based handling described in §8.

6. Analysis Sets

SetDefinitionUseADaM flag
Full Analysis Set (FAS)all randomized subjects, analysed as randomizedprimary efficacyFASFL="Y"
Per-Protocol Set (PPS)FAS subjects without major protocol deviations affecting the primary endpointsupportive efficacyPPSFL="Y"
Safety Set (SAF)all subjects receiving ≥1 dose, analysed as treatedsafetySAFFL="Y"
Completerssubjects with a non-missing Week-52 HbA1csupportivederived

Data note: in the executed dataset major protocol deviations are modeled (53 subjects), so the PPS (847) is a strict subset of the FAS (900); the primary conclusions are consistent between FAS and PPS, supporting robustness (CSR-301 §10.2; ADRG, DEF-301).

7. Primary Efficacy Analysis

📐
Why MMRM (in plain terms)

MMRM ('mixed model for repeated measures') is a way of analysing results measured at many visits that uses every visit a patient contributed, instead of throwing away people who drop out or crudely carrying their last value forward. It handles dropouts under a reasonable 'missing at random' assumption and keeps the statistics honest at this sample size.

7.1 Model Specification

The primary endpoint (CFB in HbA1c at Week 52) is analysed on the FAS using analysis of covariance:

CHG ~ TRT01A + BASE + STRAT_HBA1C + STRAT_BMI

where TRT01A is the randomized treatment (3 levels, reference = Semaglutide Oral), BASE is the baseline HbA1c, and STRAT_HBA1C/STRAT_BMI are the randomization strata (derived from baseline values; consistency verified in the ADRG). The model is fitted by ordinary least squares; least-squares means and their standard errors are obtained by the method of estimated marginal means.

7.2 Estimates and Inference

For each arm, the LS-mean CFB and 95% CI are reported. The pairwise differences of each GLPI-103 arm versus semaglutide, with 95% CIs and p-values (no multiplicity adjustment within the contrast set beyond the testing hierarchy of §7.3), are the primary inferential quantities. Superiority is concluded if the upper bound of the 95% CI for the difference (GLPI-103 minus semaglutide) is below zero and the corresponding hierarchy step is significant.

7.3 Multiplicity — Fixed-Sequence Testing

🚦
Why testing order matters

Test enough things and something will look significant by chance. A fixed-sequence 'gatekeeping' procedure sets the order of tests in advance and only proceeds to the next once the previous one passes, which controls that false-positive risk across the whole family of endpoints.

Family-wise type-I error is strongly controlled at the two-sided 0.05 level by a pre-specified fixed-sequence (hierarchical) procedure. Each hypothesis is tested at α=0.05 only if all preceding hypotheses were rejected:

  1. GLPI-103 IV vs semaglutide — HbA1c CFB (primary)
  2. GLPI-103 Oral vs semaglutide — HbA1c CFB
  3. GLPI-103 IV vs semaglutide — body-weight CFB
  4. GLPI-103 IV vs semaglutide — HbA1c <7.0% responder
  5. GLPI-103 IV vs semaglutide — ≥10% weight-loss responder
  6. GLPI-103 Oral vs semaglutide — body-weight CFB
  7. GLPI-103 Oral vs semaglutide — HbA1c <7.0% responder
  8. GLPI-103 Oral vs semaglutide — ≥10% weight-loss responder

7.4 Model Assumptions and Diagnostics

Normality of residuals and homogeneity of variance are assessed graphically (residual and Q–Q plots); influential observations are examined. If assumptions are materially violated, a rank-based or robust sensitivity analysis is performed. The covariate-by-treatment interaction (BASE×TRT01A) is examined as a supportive check of the common-slope assumption but is not part of the primary model.

8. Missing Data

🧪
Testing whether missing data could flip the result

Real trials always have missing data, and the main analysis assumes it went missing for benign reasons. Regulators want to know: what if it didn't? So the plan adds conservative 'reference-based' imputation and a 'tipping-point' analysis that measures exactly how much worse the missing GLPI-103 results would have to be to overturn the conclusion. Superiority survives both.

The primary analysis handles intercurrent events per the estimand (§3.1). For the longitudinal model (§9), missing post-baseline HbA1c values are accommodated by the MMRM under a missing-at-random (MAR) assumption (direct likelihood), which provides valid inference under MAR without explicit imputation. Robustness to departures from MAR is assessed by: (a) pattern-mixture models (PMM) under MNAR assumptions (e.g., a delta-adjustment penalizing missing values in the active arms); (b) reference-based multiple imputation (jump-to-reference / copy-reference) with Rubin's rules; and (c) a tipping-point analysis identifying the magnitude of departure from MAR that would overturn the primary conclusion. Last-observation-carried-forward is not used for the primary analysis.

9. Secondary and Longitudinal Analyses

9.1 Longitudinal HbA1c — MMRM

CHG ~ TRT01A * VISIT + BASE,  random = ~1 | USUBJID,
correlation = unstructured (corSymm);  AR(1) (corAR1) pre-specified fallback on non-convergence

Restricted maximum likelihood estimation; visits Week 4–Week 52 (VISITNUM 2–8). LS means by arm and visit, with treatment-by-visit contrasts at Week 52, are reported. Degrees of freedom use the Kenward–Roger approximation where the unstructured model converges; the pre-specified AR(1) fallback ensures an estimable, reproducible model otherwise.

9.2 Body Weight and FPG (CFB)

Analysed by ANCOVA analogous to the primary model (treatment, baseline value, strata). LS means and pairwise differences versus semaglutide with 95% CIs are reported.

9.3 Responder Endpoints

The proportions achieving HbA1c <7.0% and ≥10% weight loss at Week 52 are analysed by logistic regression (treatment, baseline value, strata) and by the Cochran–Mantel–Haenszel test stratified by the randomization factors; risk differences with 95% CIs are presented.

9.4 Cardiometabolic Biomarkers and Blood Pressure

NT-proBNP and hsCRP CFB are analysed by ANCOVA on log-transformed values [MOCK — not in dataset]; SBP/DBP CFB are summarized descriptively and by ANCOVA.

10. Subgroup Analyses

The primary HbA1c treatment effect is examined within pre-specified subgroups — baseline HbA1c (<8.5 vs ≥8.5%), BMI (<30 vs ≥30 kg/m²), age (<65 vs ≥65 years), and sex — using the primary model within each subgroup, displayed as a forest plot of treatment differences with 95% CIs. Treatment-by-subgroup interaction terms are tested as supportive (no multiplicity adjustment; interpreted descriptively).

11. Disposition, Demographics, and Exposure

Subject disposition (screened, randomized, treated, completed, discontinued with reason) is summarized and depicted in a CONSORT diagram. Demographics and baseline disease characteristics (age, sex, race, region, BMI, body weight, HbA1c, FPG, eGFR, disease duration) are summarized by arm and overall. Extent of exposure (duration, dose level reached) and treatment compliance are summarized for the Safety Set.

12. Safety Analyses (Safety Set)

12.1 Adverse Events

Treatment-emergent adverse events are coded to MedDRA (version fixed at lock) and summarized by system organ class and preferred term as the number and percentage of subjects with ≥1 event, by arm, overall, by maximum severity, and by relationship. A pre-specified between-arm comparison of nausea incidence (GLPI-103 IV vs semaglutide) uses a test of proportions, reporting the difference, 95% CI, and p-value.

12.2 AESIs and Hypoglycaemia

Adverse events of special interest (gastrointestinal events, acute pancreatitis, thyroid C-cell/MTC, hypoglycaemia, cardiovascular/heart-rate) are summarized separately with targeted follow-up data. Hypoglycaemia is classified per international consensus (Level 1 <3.9 mmol/L; Level 2 <3.0 mmol/L; Level 3 severe requiring assistance) and summarized by level and arm.

12.3 Laboratory, Vital Signs, ECG

Clinical laboratory results (hepatic ALT/AST, renal eGFR, haematology) are summarized as CFB and by shift relative to the reference range (shift tables); markedly abnormal values are flagged. Vital signs including heart rate are summarized as CFB by arm. ECG findings are summarized categorically [MOCK].

12.4 Deaths and Serious Adverse Events

Deaths, SAEs, and AEs leading to discontinuation are listed and summarized.

13. Interim Analyses and DSMB

No confirmatory interim efficacy analysis is planned. The independent DSMB performs periodic unblinded safety reviews per its charter (TMF-DSMB). Should any interim efficacy/futility assessment be added by amendment, an alpha-spending function (e.g., O'Brien–Fleming) would preserve the overall type-I error, documented in an updated SAP.

14. Statistical Software and Reproducibility

Analyses are performed in R (packages nlme, emmeans, broom) and Python (pandas, statsmodels). The analysis is fully reproducible from a fixed random seed (config/config.yaml, seed=42) via the project build (build.py); the verification gates (verify_pipeline, validate_cdisc, reconcile_csr, check_format) provide automated quality control, and CSR results are reconciled to the analysis outputs (reconcile_csr.py).

15. Changes from Protocol-Specified Analyses

None at finalization. Any post-hoc analyses will be clearly labeled as such in CSR-301.

16. Analysis Results Metadata (ARM)

AnalysisInput dataset (filter)MethodOutput artifact
Primary HbA1c CFB W52ADLB (FAS, PARAMCD=HBA1C, VISITNUM=8, ANL01FL=Y)ANCOVAoutputs/stats/ancova_results.csv; Table 14.2.2
Longitudinal HbA1cADLB (FAS, VISITNUM 2–8)MMRM (UN→AR1)outputs/stats/mmrm_results.csv; Figure 2
Nausea incidence (IV vs Sema)AE domain + ADSL denominatorstest of proportionsoutputs/stats/ae_prop_test.csv
Demographics & baselineADSL / ADLBdescriptiveTable 14.1.3 / Table 1
TEAE summaryAE domaindescriptiveTable 14.3.1 / Table 3
Disposition (CONSORT)ADSL / ADLBdescriptiveFigure 1
Subgroup forestADLB/ADSL (by subgroup)ANCOVAFigure 3

17. Tables, Listings, and Figures

The planned TLFs and their shells are specified in TLF-301, mapped 1:1 to the generated outputs (outputs/tfl/, outputs/stats/).

Appendix A — Derivation Rules for Analysis Variables and Visit Windows

Derived variableRule
BASELast non-missing value on/before first dose (ABLFL="Y", VISITNUM=1), per parameter
CHGAVAL − BASE
PCHGCHG / BASE × 100 (BASE ≠ 0)
AGEGR1<65 / >=65 from AGE
STRAT_HBA1C<8.5 / >=8.5 from baseline HbA1c (IRT-recorded; consistency verified)
STRAT_BMI<30 / >=30 from baseline BMI
Analysis visitNominal week mapped to the nearest scheduled visit within ±7 days; the Week-52 window defines the primary timepoint
Responder (HbA1c<7.0%)1 if Week-52 AVAL < 7.0, else 0; missing → non-responder (composite)
Responder (≥10% wt loss)1 if Week-52 weight PCHG ≤ −10, else 0; missing → non-responder

Appendix B — Imputation Rules for Partial/Missing Dates

  • AE onset (TEAE determination): missing day → first of the month; missing month → January; if the imputed date is before first dose, set to the first-dose date (conservative, classifying as treatment-emergent when ambiguous).
  • AE/concomitant-medication end dates: missing → ongoing (not imputed to a value earlier than start).
  • Concomitant-medication start: missing day/month imputed to the earliest plausible date to capture prior/concomitant status conservatively.
  • No imputation is applied to efficacy analysis values beyond the model-based handling (§8).

Appendix C — MMRM Model Statement and Convergence Logic

Primary longitudinal model (R nlme):

lme(CHG ~ TRT01A * VISIT + BASE,
    random = ~ 1 | USUBJID,
    correlation = corSymm(form = ~ 1 | USUBJID),     # unstructured
    weights     = varIdent(form = ~ 1 | VISIT),
    method = "REML", na.action = na.omit)
# On non-convergence, the pre-specified fallback is:
lme(CHG ~ TRT01A * VISIT + BASE,
    random = ~ 1 | USUBJID,
    correlation = corAR1(form = ~ 1 | USUBJID),       # AR(1)
    method = "REML")

LS means are obtained via emmeans(model, ~ TRT01A | VISIT); Week-52 contrasts versus semaglutide are reported. Degrees of freedom use the Kenward–Roger approximation for the unstructured model.

Appendix D — Multiplicity Testing Hierarchy (Graphical)

[1] IV vs Sema (HbA1c) ──► [2] Oral vs Sema (HbA1c) ──► [3] IV vs Sema (weight)
        │                                                       │
        └─ tested at α=0.05 only if all prior steps rejected ───┘
[3] ─► [4] IV<7.0% ─► [5] IV ≥10% wt ─► [6] Oral weight ─► [7] Oral<7.0% ─► [8] Oral ≥10% wt
Family-wise type-I error strongly controlled at two-sided α=0.05 (fixed sequence).

Appendix E — Hypoglycaemia Classification and Laboratory Shift-Table Definitions

Hypoglycaemia (international consensus): Level 1 (glucose 3.0–<3.9 mmol/L); Level 2 (<3.0 mmol/L); Level 3 (severe event requiring assistance). Summarized by level and arm (Safety Set). Laboratory shift tables: each analyte is classified relative to the central-laboratory reference range as Low / Normal / High at baseline and at the post-baseline worst value; shift frequencies (baseline category × worst post-baseline category) are tabulated by arm. Markedly abnormal criteria (e.g., ALT/AST >3×ULN; eGFR <45) are flagged separately and reconciled with the AESI listings.

Comments (0)

No comments yet. Be the first to say something!