Review ask

As a clinical trial statistician or programmer, challenge anything in this benchmark: describe a problem in Comments, or propose a fix with the Edit button on any source file.

  1. Task: Is this a specification error a study team could realistically make, and should the build stop on it rather than continue?
  2. Inputs: Do they trigger the failure for the reason the summary gives?
  3. Expected failure: Is this the right error, raised at the right point, and would it tell the programmer what to fix?

The other tabs beside Comments are background for assessment, not under review.

Summary

Lifecycle: draftEditUnder review
What this benchmark means
README.md

Goal: carry an analysis date (ADT), study day (ADY), and measured value (AVAL) into analysis visits (AVISIT).

Input: pre-derived vital signs records, one per measurement, with a study day that can be missing.

Variables:

  • AVISIT would be SCREENING before day 0, BASELINE on days 0 and 1, WEEK 2 on days 2 to 21, WEEK 4 on days 22 to 42, and POST-TREATMENT from day 43. It is blank when the study day is missing.

Note: analysis visit is part of each record's identity. A record with no study day has no analysis visit, so the completed dataset fails its identity check and no artifact is accepted.

How to fix

Decide whether the record belongs in an analysis visit. If a governed source supplies the missing study day, correct that source. Otherwise, exclude the record before constructing the output rows:

rows:
  - id: windowed
    filter: "ADVS_RAW.ADY IS NOT NULL"
    derivations: {}

If the dataset must retain measurements without a visit, identify rows by the collected record instead, for example with VSSEQ in keys.

Expected failure

Edit
the run is rejected; no artifact is accepted
expected/error.yaml
phase
output
condition
missing_key
requirement
REQ-0240
expected/error.yaml
phase: output
condition: missing_key
spec_paths:
  - keys[3]
requirement: REQ-0240
context:
  column: AVISIT
  missing_count: 1
  keys:
    - STUDYID: CATH
      USUBJID: CATH-UCSD-0002
      PARAMCD: SYSBP
      AVISIT: null

Inputs

Under review
1 source file

input/advs_raw.csv

Edit
6 rows
input/advs_raw.csv
STUDYIDUSUBJIDPARAMCDVSSEQADTADYAVAL
CATHSYSBP12025-01-081132
CATHSYSBP22025-01-2215138
CATHSYSBP32025-02-0529130
CATHSYSBP12025-02-081118
CATHSYSBP22025-02-2114122
CATHSYSBP3——120

Unexpected Output

Under review
6 rows presented to the failing check - not an accepted artifact

expected/advs.csv

Edit
6 rows
expected/advs.csv
STUDYIDUSUBJIDPARAMCDVSSEQADTADYAVALAVISIT
CATHSYSBP12025-01-081132BASELINE
CATHSYSBP22025-01-2215138WEEK 2
CATHSYSBP32025-02-0529130WEEK 4
CATHSYSBP12025-02-081118BASELINE
CATHSYSBP22025-02-2114122WEEK 2
CATHSYSBP3——120—
Shaded columns are derived— = missing value

Comments and assessment materials

Comments

Signed in with GitHub; saved in repository Discussions

Mapping spec

Generated from the benchmark YAML; do not edit by hand

Dataset NameVariable NameVariable LabelTypeCodelist/Controlled TermsCoreComputational MethodOrigin
ADVSSTUDYIDStudy IdentifiercharacterCopy value from ADVS_RAW.STUDYID.Predecessor
ADVSUSUBJIDUnique Subject IdentifiercharacterCopy value from ADVS_RAW.USUBJID.Predecessor
ADVSPARAMCDParameter CodecharacterCopy value from ADVS_RAW.PARAMCD.Predecessor
ADVSVSSEQSequence NumbernumericCopy value from ADVS_RAW.VSSEQ.Predecessor
ADVSADTAnalysis DatenumericISO 8601Copy value from ADVS_RAW.ADT.Predecessor
ADVSADYAnalysis Relative DaynumericCopy value from ADVS_RAW.ADY.Predecessor
ADVSAVALAnalysis ValuenumericCopy value from ADVS_RAW.AVAL.Predecessor
ADVSAVISITAnalysis VisitcharacterBand ADVS_RAW.ADY at 0, 2, 22, 43 into "SCREENING", "BASELINE", "WEEK 2", "WEEK 4" and "POST-TREATMENT", intervals closed on the left; a missing source → blank.Derived
VersionDateAuthorDescriptionReviewerSign-off
1.32026-09-29yamaa docs buildShow study codelist names, external dictionaries, and ISO 8601 formats in variable rows; list the document's codelist values and metadata
1.22026-09-29yamaa docs buildClassify ADaM copies from a declared input as Predecessor and recodes as Derived, and SDTM recodes of locally derived columns as Derived
1.12026-09-29yamaa docs buildResolve lookups into the donor record they select, and give every derivation shape a plain-language rule instead of its raw YAML
1.0yamaa docs buildInitial generation from spec.yaml