TFL Gallery / t-eff-npix-mean
t-eff-npix-mean
Discovered on disk but not present in site/config.json.
This display exists on disk but is not registered in site/config.json, so it has no reviewed metadata.
- Slug
- t-eff-npix-mean
- Regulatory ID
- —
- Type
- Table
- E3 position
- unassigned
- Status
- built
- Current iteration
- v002
- Datasets
- —
- Evidence
- not yet generated
- Requirements
- —
- 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
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/v002/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-08-27T03:50:45Z
- Spec hash
- sha256:80f5f0ccff24b1cf2f942ea6b2e3615b2fe5bf61016f79e950b6c75d4df5019f
- Display hash
- sha256:c3210952b525d9075afa6c8d2ecf1772a52200499d0202ac66a23888400bcbc4
- ARD file
- outputs/t-eff-npix-mean/v002/ard.json
- ARD hash
- sha256:86751a3481082dc21711e2ad504d97be0b0b334f4ef42610fb1124b19543e3de
Source datasets
| Dataset | Rows | Package | Hash |
|---|---|---|---|
| adsl | 254 | phuse-org/phuse-scripts:data/adam 398a6d33ced9359ffb58c46650a6d488811176b1 | sha256:6534192e6ae2a8789015148d2068ecdd8421791ea6d7f9cc307fef1db97945f9 |
| adqsnpix | 31140 | phuse-org/phuse-scripts:data/adam 398a6d33ced9359ffb58c46650a6d488811176b1 | sha256:2c590895d6d8dd6f847e3985be3dc4b5efde4bd08b140185a3c6a91aaf1d401f |
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)
}
v002current
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.