TFL Gallery / t-eff-npix-mean
EFT09 · Table
Mean NPI-X Total Score from Week 4 through Week 24 - Windowed
The secondary endpoint — mean NPI-X total score across the Weeks 4 to 24 window. The one display where the study's analysis metadata and its own published report disagree about which score to use, and the footnotes say which side was taken.
- Slug
- t-eff-npix-mean
- Regulatory ID
- EFT09
- Type
- Table
- E3 position
- §14.2
- Status
- evidenced
- Current iteration
- v003
- Evidence
- 26/26 passing
- Requirements
- DSP-ALL-001 DSP-ALL-002 DSP-EFF-001 DSP-EFF-002 DSP-EFF-003 DSP-EFF-004 DSP-EFF-005 DSP-EFF-006 DSP-EFF-007 DSP-EFF-008 DSP-EFF-009 DSP-INTXT-001 DSP-INTXT-002 DSP-INTXT-003 STD-GATE-001 STD-GATE-002 STD-GATE-003 STD-GATE-004 STD-GATE-005 STD-MODEL-001 STD-MODEL-002 STD-MODEL-003 STD-MODEL-004 STD-MODEL-005 STD-SRC-001 STD-SRC-002
- Used in
- Clinical Study Report Table 14.2.12
- Post-Text Display Package Table 14.2.12
- Abbreviated Clinical Study Report (ICH E3) Table 14.2.12
- Study model
- Efficacy Analysis Set EFFFL · grouped by TRTP
- Specification
- 3 iterations
- Environment
- R 4.3.3 Darwin 23.6.0
- Bound by
- No text block binds it
- Values
- No value is sourced from it
- adsl254 rows · 70c7278
- adqsnpix31140 rows · a8db42f
- analysis.yamlwhat to compute
- display.yamlhow to show it
- custom.Rthe display's own method
- study modelEfficacy Analysis Set
- prepare_data()regenerate('t-eff-npix-mean')
- build_ard()one row per statistic
- render_display()every variant
- render_rtf()the same cells
- ard.jsonv003 · 71 rows · 670210c
- table.htmlthe rendered display
- table.rtfsha256 51085b2
- manifest.jsonwho, why, every hash
Generated by the same pipeline run that wrote the ARD and the HTML above, from the same rendered cells; the short hash is the manifest's record of the file.
| Mean NPI-X Total Score from Week 4 through Week 24 - Windowed | |||
| Study CDISCPILOT01 — Efficacy Analysis Set | |||
| Placebo (N=79) | Xanomeline Low Dose (N=81) | Xanomeline High Dose (N=74) | |
|---|---|---|---|
| Baseline | |||
| n | |||
| Mean (SD) | |||
| Median (Range) | |||
| Mean of Weeks 4-24 | |||
| n | |||
| Mean (SD) | |||
| Median (Range) | |||
| Statistical comparison of the mean over Weeks 4 to 24 | |||
| p-value (dose response) [1][2] | |||
| p-value (Xanomeline - Placebo) [1][3] | |||
| Difference of LS means (SE) | |||
| 95% CI | |||
| p-value (Xanomeline High - Xanomeline Low) [1][3] | |||
| Difference of LS means (SE) | |||
| 95% CI | |||
| [1] Based on an analysis of covariance (ANCOVA) model with treatment and site group as factors and the baseline score as a covariate. | |||
| [2] Test for a non-zero coefficient for treatment (dose) as a continuous variable. | |||
| [3] Pairwise comparison with treatment as a categorical variable; p-values are not adjusted for multiple comparisons. | |||
| The Week 4 to Week 24 endpoint is the mean of a subject's available NPI-X (9) total scores over the Week 4 to Week 24 assessment windows, as the statistical analysis plan defines it in section 10.2.1. A subject contributes one value however many assessments it averages, and a subject with no assessment in that span contributes none, so n is smaller than the column N. | |||
| DEFINED HERE, NOT INHERITED: this endpoint is derived from the per-visit NPTOT records rather than read from the study's own NPTOTMN parameter, because the study's two authoritative statements about this table disagree. Its analysis results metadata (define.xml, Table_14-3.12) selects PARAMCD NPTOTMN, which covers 210 of the 222 efficacy subjects who have an assessment in the Week 4 to Week 24 span: it omits 12 — eleven contributing a single assessment and one contributing two — and adds none. Selecting it reports n = 76, 69, 65. Its own reference report reports n = 78, 75, 69, which is every subject with an assessment in the span, and which the analysis plan's wording ('the mean of all available total scores between Weeks 4 and 24, inclusive') describes. The derivation used here follows the analysis plan and reproduces the reference report to every cell, including the ANCOVA. The divergence is measured and recorded in quality/data/efficacy-agreement.json. | |||
| Assessments are selected by AVISITN, not AVISIT: adqsnpix ships AVISIT right-aligned in a 16-character field, so a comparison against the visible label silently selects no records. | |||
| Treatment columns are planned treatment (TRTP), which is how the CDISCPILOT01 reference report presents them. | |||
| CDISCPILOT01 states no data cut-off date. The date shown is the latest assessment date present in the vendored ADaM package. | |||
| Source: adqsnpix (NPI-X (9) total score, PARAMCD NPTOT) and adsl, from the CDISC pilot's own ADaM package (phuse-org/phuse-scripts, MIT). Analysis as specified in the CDISCPILOT01 statistical analysis plan, section 10.2.1. Reference report display: Table 14-3.12. Data cut-off: 2015-02-17. | |||
| open.csr display t-eff-npix-mean (post_text variant); generated from the committed ARD. | |||
Rendered from outputs/t-eff-npix-mean/v003/table.html.
| analysis | group1 | group1_level | group2 | group2_level | variable | variable_level | context | stat_name | stat_label | warning | error | stat |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| population | TRTP | Placebo | — | — | USUBJID | — | population | N | N | — | — | 79 |
| population | TRTP | Xanomeline High Dose | — | — | USUBJID | — | population | N | N | — | — | 74 |
| population | TRTP | Xanomeline Low Dose | — | — | USUBJID | — | population | N | N | — | — | 81 |
| baseline | TRTP | Placebo | — | — | AVAL | — | continuous | N | N | — | — | 79 |
| baseline | TRTP | Placebo | — | — | AVAL | — | continuous | mean | Mean | — | — | 9.45569620253164 |
| baseline | TRTP | Placebo | — | — | AVAL | — | continuous | sd | SD | — | — | 12.1029742777576 |
| baseline | TRTP | Placebo | — | — | AVAL | — | continuous | median | Median | — | — | 5 |
| baseline | TRTP | Placebo | — | — | AVAL | — | continuous | p25 | Q1 | — | — | 1 |
| baseline | TRTP | Placebo | — | — | AVAL | — | continuous | p75 | Q3 | — | — | 12 |
| baseline | TRTP | Placebo | — | — | AVAL | — | continuous | min | Min | — | — | 0 |
| baseline | TRTP | Placebo | — | — | AVAL | — | continuous | max | Max | — | — | 66 |
| baseline | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | N | N | — | — | 74 |
| baseline | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | mean | Mean | — | — | 11.8918918918919 |
| baseline | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | sd | SD | — | — | 13.7038816294574 |
| baseline | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | median | Median | — | — | 8 |
| baseline | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | p25 | Q1 | — | — | 2 |
| baseline | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | p75 | Q3 | — | — | 17 |
| baseline | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | min | Min | — | — | 0 |
| baseline | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | max | Max | — | — | 61 |
| baseline | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | N | N | — | — | 81 |
| baseline | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | mean | Mean | — | — | 8.7283950617284 |
| baseline | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | sd | SD | — | — | 9.82472944370354 |
| baseline | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | median | Median | — | — | 4 |
| baseline | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | p25 | Q1 | — | — | 1 |
| baseline | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | p75 | Q3 | — | — | 15 |
| baseline | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | min | Min | — | — | 0 |
| baseline | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | max | Max | — | — | 32 |
| mean_4_24 | TRTP | Placebo | — | — | AVAL | — | continuous | N | N | — | — | 78 |
| mean_4_24 | TRTP | Placebo | — | — | AVAL | — | continuous | mean | Mean | — | — | 9.31155141155141 |
| mean_4_24 | TRTP | Placebo | — | — | AVAL | — | continuous | sd | SD | — | — | 11.1812314549378 |
| mean_4_24 | TRTP | Placebo | — | — | AVAL | — | continuous | median | Median | — | — | 5.50505050505051 |
| mean_4_24 | TRTP | Placebo | — | — | AVAL | — | continuous | p25 | Q1 | — | — | 1.27272727272727 |
| mean_4_24 | TRTP | Placebo | — | — | AVAL | — | continuous | p75 | Q3 | — | — | 12.4545454545455 |
| mean_4_24 | TRTP | Placebo | — | — | AVAL | — | continuous | min | Min | — | — | 0 |
| mean_4_24 | TRTP | Placebo | — | — | AVAL | — | continuous | max | Max | — | — | 64.5 |
| mean_4_24 | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | N | N | — | — | 69 |
| mean_4_24 | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | mean | Mean | — | — | 9.58007037246168 |
| mean_4_24 | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | sd | SD | — | — | 11.6018032718414 |
| mean_4_24 | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | median | Median | — | — | 4.36363636363636 |
| mean_4_24 | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | p25 | Q1 | — | — | 0.3 |
| mean_4_24 | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | p75 | Q3 | — | — | 16 |
| mean_4_24 | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | min | Min | — | — | 0 |
| mean_4_24 | TRTP | Xanomeline High Dose | — | — | AVAL | — | continuous | max | Max | — | — | 46.2727272727273 |
| mean_4_24 | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | N | N | — | — | 75 |
| mean_4_24 | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | mean | Mean | — | — | 9.06895412457913 |
| mean_4_24 | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | sd | SD | — | — | 12.0993154805808 |
| mean_4_24 | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | median | Median | — | — | 3.77777777777778 |
| mean_4_24 | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | p25 | Q1 | — | — | 0.75 |
| mean_4_24 | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | p75 | Q3 | — | — | 15.2857142857143 |
| mean_4_24 | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | min | Min | — | — | 0 |
| mean_4_24 | TRTP | Xanomeline Low Dose | — | — | AVAL | — | continuous | max | Max | — | — | 51 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | dose_response | ancova | pvalue | pvalue | — | — | 0.637355911747683 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | dose_response | ancova | n_model | n_model | — | — | 222 |
| ancova | TRTP | Xanomeline Low Dose | — | — | AVAL | xan_vs_placebo | ancova | estimate | estimate | — | — | 0.344970498781485 |
| ancova | TRTP | Xanomeline Low Dose | — | — | AVAL | xan_vs_placebo | ancova | se | se | — | — | 1.12595262472192 |
| ancova | TRTP | Xanomeline Low Dose | — | — | AVAL | xan_vs_placebo | ancova | pvalue | pvalue | — | — | 0.759621031087313 |
| ancova | TRTP | Xanomeline Low Dose | — | — | AVAL | xan_vs_placebo | ancova | lcl | lcl | — | — | -1.87477152944715 |
| ancova | TRTP | Xanomeline Low Dose | — | — | AVAL | xan_vs_placebo | ancova | ucl | ucl | — | — | 2.56471252701012 |
| ancova | TRTP | Xanomeline Low Dose | — | — | AVAL | xan_vs_placebo | ancova | n_model | n_model | — | — | 222 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | xan_vs_placebo | ancova | estimate | estimate | — | — | -0.748808650896317 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | xan_vs_placebo | ancova | se | se | — | — | 1.15337540534439 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | xan_vs_placebo | ancova | pvalue | pvalue | — | — | 0.51690443294829 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | xan_vs_placebo | ancova | lcl | lcl | — | — | -3.02261289927708 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | xan_vs_placebo | ancova | ucl | ucl | — | — | 1.52499559748445 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | xan_vs_placebo | ancova | n_model | n_model | — | — | 222 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | high_vs_low | ancova | estimate | estimate | — | — | -1.0937791496778 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | high_vs_low | ancova | se | se | — | — | 1.16689533939629 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | high_vs_low | ancova | pvalue | pvalue | — | — | 0.349670131390298 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | high_vs_low | ancova | lcl | lcl | — | — | -3.39423706462939 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | high_vs_low | ancova | ucl | ucl | — | — | 1.20667876527378 |
| ancova | TRTP | Xanomeline High Dose | — | — | AVAL | high_vs_low | ancova | n_model | n_model | — | — | 222 |
71 rows, one per computed statistic.
- Schema
- opencsr/ard/v1
- Generated
- 2026-09-02T15:23:25Z
- Spec hash
- sha256:80f5f0ccff24b1cf2f942ea6b2e3615b2fe5bf61016f79e950b6c75d4df5019f
- Display hash
- sha256:c3210952b525d9075afa6c8d2ecf1772a52200499d0202ac66a23888400bcbc4
- ARD file
- outputs/t-eff-npix-mean/v003/ard.json
- ARD hash
- sha256:670210cf013360c0acf6a92ee1315b14c3bb0085b5afd2774e45f299bdb00d5c
Source datasets
| Dataset | Rows | Package | Hash |
|---|---|---|---|
| adsl | 254 | phuse-org/phuse-scripts:data/adam 398a6d33ced9359ffb58c46650a6d488811176b1 | sha256:70c7278e83e571a7d4a94fd864c98bf8ca243c7c2cc9eec8b99a40fa7bc98e35 |
| adqsnpix | 31140 | phuse-org/phuse-scripts:data/adam 398a6d33ced9359ffb58c46650a6d488811176b1 | sha256:a8db42f422294f16537326a268fbc7d21e54e50677f628ad868849f4d7376971 |
Environment
R 4.3.3 · Darwin 23.6.0 · cards 0.6.1 · cardx 0.2.5 · gtsummary 2.3.0 · gt 1.0.0 · dplyr 1.1.4 · pharmaverseadam 1.1.0 · jsonlite 2.0.0 · yaml 2.3.10 · digest 0.6.37
id: t-eff-npix-mean
title: "Mean NPI-X Total Score from Week 4 through Week 24 - Windowed"
regulatory_id: EFT09
type: table
dataset: adqsnpix
analysis_set: efficacy
denominator: adsl
sources: phuse
group:
- TRTP
total: false
# Visits are selected by AVISITN, never by AVISIT. ADQSNPIX ships AVISIT
# right-aligned into a 16-character field (" Weeks 4-24"), so the obvious
# `AVISIT == 'Weeks 4-24'` selects nothing at all while looking correct. AVISITN
# carries the same fact as a number: 0 baseline, 2..26 the scheduled weeks, 98
# the study's own derived Weeks 4-24 average.
analyses:
- name: population
method: continuous
custom: population_n
label: "Subjects in the analysis population"
filter: "PARAMCD == 'NPTOT' & AVISITN == 0"
- name: baseline
method: continuous
label: "NPI-X (9) total score at baseline"
variables: [AVAL]
filter: "PARAMCD == 'NPTOT' & AVISITN == 0"
# The SAP defines this endpoint as "the mean of all available total scores
# between Weeks 4 and 24, inclusive" (section 10.2.1) — one number per
# subject, derived here rather than read from the study's own NPTOTMN
# parameter. See the display's source note for why.
- name: mean_4_24
method: continuous
custom: subject_mean
label: "Per-subject mean NPI-X (9) total score over Weeks 4 to 24"
variables: [AVAL]
filter: "PARAMCD == 'NPTOT' & ANL01FL == 'Y' & AVISITN >= 4 & AVISITN <= 24"
derive:
statistic: mean
value: AVAL
id: USUBJID
carry: [TRTPN, SITEGR1, BASE]
- name: ancova
method: continuous
custom: subject_mean_ancova
label: "ANCOVA of the per-subject mean over Weeks 4 to 24"
variables: [AVAL]
filter: "PARAMCD == 'NPTOT' & ANL01FL == 'Y' & AVISITN >= 4 & AVISITN <= 24"
derive:
statistic: mean
value: AVAL
id: USUBJID
carry: [TRTPN, SITEGR1, BASE]
response: AVAL
covariates: [BASE]
factors: [SITEGR1]
treatment: TRTP
treatment_levels: ["Placebo", "Xanomeline Low Dose", "Xanomeline High Dose"]
dose: TRTPN
conf_level: 0.95
contrasts:
- { name: dose_response, type: dose, column: "Xanomeline High Dose" }
- { name: xan_vs_placebo, type: pairwise, test: "Xanomeline Low Dose",
reference: "Placebo", column: "Xanomeline Low Dose" }
- { name: xan_vs_placebo, type: pairwise, test: "Xanomeline High Dose",
reference: "Placebo", column: "Xanomeline High Dose" }
- { name: high_vs_low, type: pairwise, test: "Xanomeline High Dose",
reference: "Xanomeline Low Dose", column: "Xanomeline High Dose" }
id: t-eff-npix-mean
title: "Mean NPI-X Total Score from Week 4 through Week 24 - Windowed"
study: CDISCPILOT01
population_label: "Efficacy Analysis Set"
cutoff: "2015-02-17"
source: "Source: adqsnpix (NPI-X (9) total score, PARAMCD NPTOT) and adsl, from the CDISC pilot's own ADaM package (phuse-org/phuse-scripts, MIT). Analysis as specified in the CDISCPILOT01 statistical analysis plan, section 10.2.1. Reference report display: Table 14-3.12. Data cut-off: 2015-02-17."
footnotes:
- "[1] Based on an analysis of covariance (ANCOVA) model with treatment and site group as factors and the baseline score as a covariate."
- "[2] Test for a non-zero coefficient for treatment (dose) as a continuous variable."
- "[3] Pairwise comparison with treatment as a categorical variable; p-values are not adjusted for multiple comparisons."
- "The Week 4 to Week 24 endpoint is the mean of a subject's available NPI-X (9) total scores over the Week 4 to Week 24 assessment windows, as the statistical analysis plan defines it in section 10.2.1. A subject contributes one value however many assessments it averages, and a subject with no assessment in that span contributes none, so n is smaller than the column N."
- "DEFINED HERE, NOT INHERITED: this endpoint is derived from the per-visit NPTOT records rather than read from the study's own NPTOTMN parameter, because the study's two authoritative statements about this table disagree. Its analysis results metadata (define.xml, Table_14-3.12) selects PARAMCD NPTOTMN, which covers 210 of the 222 efficacy subjects who have an assessment in the Week 4 to Week 24 span: it omits 12 — eleven contributing a single assessment and one contributing two — and adds none. Selecting it reports n = 76, 69, 65. Its own reference report reports n = 78, 75, 69, which is every subject with an assessment in the span, and which the analysis plan's wording ('the mean of all available total scores between Weeks 4 and 24, inclusive') describes. The derivation used here follows the analysis plan and reproduces the reference report to every cell, including the ANCOVA. The divergence is measured and recorded in quality/data/efficacy-agreement.json."
- "Assessments are selected by AVISITN, not AVISIT: adqsnpix ships AVISIT right-aligned in a 16-character field, so a comparison against the visible label silently selects no records."
- "Treatment columns are planned treatment (TRTP), which is how the CDISCPILOT01 reference report presents them."
- "CDISCPILOT01 states no data cut-off date. The date shown is the latest assessment date present in the vendored ADaM package."
columns:
order: ["Placebo", "Xanomeline Low Dose", "Xanomeline High Dose"]
format:
mean_sd: "{mean} ({sd})"
median_range: "{median} ({min};{max})"
est_se: "{estimate} ({se})"
ci: "({lcl};{ucl})"
p_value: "{pvalue}"
digits:
mean: 1
sd: 2
median: 1
min: 0
max: 0
estimate: 1
se: 2
lcl: 1
ucl: 1
pvalue: 3
rows:
- { label: "Baseline", section: true }
- { analysis: baseline, variable: AVAL, pattern: "N", label: "n", indent: 1 }
- { analysis: baseline, variable: AVAL, pattern: mean_sd, label: "Mean (SD)", indent: 1 }
- { analysis: baseline, variable: AVAL, pattern: median_range, label: "Median (Range)", indent: 1 }
- { label: "Mean of Weeks 4-24", section: true }
- { analysis: mean_4_24, variable: AVAL, pattern: "N", label: "n", indent: 1 }
- { analysis: mean_4_24, variable: AVAL, pattern: mean_sd, label: "Mean (SD)", indent: 1 }
- { analysis: mean_4_24, variable: AVAL, pattern: median_range, label: "Median (Range)", indent: 1 }
- { label: "Statistical comparison of the mean over Weeks 4 to 24", section: true }
- { analysis: ancova, variable: AVAL, level: dose_response, pattern: p_value,
label: "p-value (dose response) [1][2]", indent: 1 }
- { analysis: ancova, variable: AVAL, level: xan_vs_placebo, pattern: p_value,
label: "p-value (Xanomeline - Placebo) [1][3]", indent: 1 }
- { analysis: ancova, variable: AVAL, level: xan_vs_placebo, pattern: est_se,
label: "Difference of LS means (SE)", indent: 2 }
- { analysis: ancova, variable: AVAL, level: xan_vs_placebo, pattern: ci,
label: "95% CI", indent: 2 }
- { analysis: ancova, variable: AVAL, level: high_vs_low, pattern: p_value,
label: "p-value (Xanomeline High - Xanomeline Low) [1][3]", indent: 1 }
- { analysis: ancova, variable: AVAL, level: high_vs_low, pattern: est_se,
label: "Difference of LS means (SE)", indent: 2 }
- { analysis: ancova, variable: AVAL, level: high_vs_low, pattern: ci,
label: "95% CI", indent: 2 }
variants:
post_text: {}
# Display-specific statistics (contract section 2).
#
# Thin wrappers, as the ADAS-Cog displays are: the statistics live in {opencsr}
# so they are tested once and shared, and every model term and every derivation
# rule is declared in this display's analysis.yaml rather than written here.
#
# The secondary efficacy endpoint is a statistic of a subject, not of a record —
# the mean of that subject's available total scores over the Week 4 to Week 24
# windows — so both functions collapse the records to one per subject before
# anything is computed. `derive_subject_summary()` refuses to carry a column
# that varies inside a subject, which is what stops the covariate in the model
# below from silently depending on record order.
subject_mean <- function(data, spec, denominator = NULL) {
opencsr::ard_derived_continuous(data, spec, denominator)
}
subject_mean_ancova <- function(data, spec, denominator = NULL) {
opencsr::ard_derived_ancova(data, spec, denominator)
}
population_n <- function(data, spec, denominator = NULL) {
opencsr::ard_population_n(data, spec, denominator)
}
v003current
One study (D0032 R2, #59): regenerated so the ARD carries its population record for the treatment-consistency gate. Spec and lane unchanged; every statistic identical.
2026-09-02T15:23:25Z · @obotclaw
v002
Record in the display's own footnotes that this endpoint is derived from the per-visit NPTOT records rather than the study's NPTOTMN parameter, and what the two differ by.
2026-08-27T03:50:45Z · obot worker W0137
v001
First generation of the secondary efficacy endpoint (reference report Table 14-3.12).
2026-08-27T03:49:43Z · obot worker W0137
Every iteration is kept: outputs/t-eff-npix-mean/vNNN/ holds the spec snapshot, the ARD, the rendered output, and a manifest recording who regenerated it, why, and from which commit.