Introduction
CDISC validation is often described as though it were a simple final-step activity:
That description is convenient, but it is not an adequate validation strategy for a serious clinical-trial submission.
A mature validation process is considerably broader.
The statistical programmer must determine whether the datasets conform to the applicable CDISC implementation guides, whether the metadata accurately describe the datasets, whether controlled terminology is implemented correctly, whether derivations are internally consistent, whether the findings represent actual defects, and whether legitimate exceptions are documented.
Pinnacle 21 is an important part of that process, but it is not a replacement for programming QC, specification review, clinical review, data review, or regulatory standards interpretation.
What Is Pinnacle 21?
Pinnacle 21 is a software platform used extensively for clinical-study data validation and CDISC standards implementation.
Its validation capabilities can be used to assess areas such as:
- SDTM dataset conformance
- ADaM dataset conformance
- Define-XML metadata
- Controlled terminology
- Dataset structure
- Variable metadata
- Cross-variable relationships
- Cross-dataset consistency
- Standards-specific business rules
Pinnacle 21 Community also provides capabilities around Define-XML generation and data conversion, while enterprise implementations provide broader standardization and validation workflows.
The important programming concept is that validation is driven by a collection of rules applied against the study data and metadata.
The Validation Mental Model
A useful way to think about validation is:
This distinction matters because the validation engine produces findings, not automatically corrected datasets.
Validation Is Not the Same as Programming QC
One of the most important concepts for a statistical programmer is the difference between conformance validation and independent programming QC.
| Activity | Primary Question |
|---|---|
| Pinnacle 21 validation | Does the submitted representation conform to applicable standards and rules? |
| Independent dataset QC | Was the dataset programmed correctly? |
| Specification review | Does the implementation match the intended analysis specification? |
| Clinical review | Does the data make clinical sense? |
| Output QC | Do tables, listings, and figures correctly represent the analysis datasets? |
| Submission review | Is the complete package internally consistent and submission-ready? |
A dataset can therefore pass a large number of automated checks and still contain a programming error.
Validation Layers
An advanced validation process is best organized into layers.
Why Validation Findings Require Judgment
A validation report should not be interpreted as a list of programming errors.
A finding can represent:
- A genuine dataset defect
- A metadata defect
- A controlled-terminology issue
- A programming inconsistency
- A standards implementation issue
- A study-specific exception
- A rule that is not applicable to the study
- An intentional sponsor-specific implementation
- A validation-engine limitation
- A potential issue requiring investigation
Consequently, the correct workflow is:
rather than:
Severity Does Not Automatically Determine the Correct Action
Validation reports commonly classify findings using categories such as information, warning, and error, together with relative severity.
A high-severity finding deserves immediate attention, but even a severe-looking finding must be investigated before changing the dataset.
| Finding | Possible Interpretation | Typical Action |
|---|---|---|
| Required variable missing | Likely conformance defect | Investigate specification and correct |
| Unexpected controlled-term value | Could be invalid terminology or intentional extension | Check applicable terminology and implementation |
| Variable label mismatch | Metadata inconsistency | Correct dataset metadata or Define-XML |
| Unexpected duplicate record | Potential key violation | Investigate record-generation logic |
| Missing expected variable | Could be genuinely absent or not applicable | Review IG and study-specific implementation |
| Cross-domain relationship issue | Potential subject or timing inconsistency | Trace source and derivation logic |
SDTM Validation
SDTM validation focuses heavily on whether the submitted domains conform to the structure and semantics expected for the applicable SDTM implementation guide.
Important validation areas include:
- Domain structure
- Required variables
- Permissible variables
- Variable names
- Variable labels
- Data types
- Controlled terminology
- Timing variables
- Identifiers
- Sequence variables
- Relationships between domains
- Expected values and formats
Example: SDTM DM Validation
Consider a simplified DM dataset.
STUDYID DOMAIN USUBJID SUBJID RFSTDTC SEX AGE ABC001 DM ABC001-001 001 2025-01-14 M 61 ABC001 DM ABC001-002 002 2025-01-18 F 54 ABC001 DM ABC001-003 003 2025-01-21 U 47
A validation engine can check many structural properties of this dataset.
For example:
- Is
DOMAINcorrectly populated? - Is
USUBJIDunique? - Are required identifiers present?
- Are values compatible with the applicable terminology?
- Are dates represented in the expected format?
- Are variables defined consistently with the metadata?
However, validation cannot independently determine whether Patient 001's age of 61 is clinically correct unless another source of truth is provided.
Example: A Duplicate Subject Problem
Suppose DM contains:
USUBJID SUBJID ABC001-001 001 ABC001-001 001 ABC001-002 002
A uniqueness rule may identify the duplicate subject identifier.
Potential issue: A subject-level identifier expected to be unique appears more than once.
First question: Is the duplicate record legitimate according to the dataset's expected structure?
Second question: If it is not legitimate, where was the duplicate introduced?
The correct fix is not simply "remove one record."
The programmer must determine why the duplicate exists.
ADaM Validation
ADaM validation is particularly important because ADaM datasets contain analysis-ready derivations.
A useful distinction is:
versus:
ADaM validation therefore has to consider not only structural conformance but also relationships between variables that support analysis traceability.
Example: ADSL
Consider:
USUBJID TRT01P SAFFL ITTFL RANDDT ABC001-001 Treatment A Y Y 2025-01-14 ABC001-002 Treatment B Y Y 2025-01-18 ABC001-003 Treatment A N N 2025-01-21
Possible validation questions include:
- Is
USUBJIDunique? - Is treatment assignment represented consistently?
- Are flag values consistent with their expected domain?
- Are date variables valid?
- Are required variables documented in Define-XML?
- Do source identifiers trace correctly to SDTM?
But consider a more subtle problem.
Suppose a subject has:
TRT01P = Treatment A SAFFL = Y TRTSDT = 2025-02-01 TRTEDT = 2025-01-28
A structural validator may identify a chronological inconsistency if an applicable rule compares these dates.
The programmer must then investigate whether the derivation is incorrect, whether the treatment dates have different meanings, or whether a source-data issue exists.
Define-XML Is Part of Validation
One of the most important lessons for submission programmers is that Define-XML is not simply documentation added after the datasets are finished.
It is part of the submission's machine-readable metadata layer.
Define-XML can describe:
- Dataset names
- Variable names
- Variable labels
- Data types
- Lengths
- Controlled terminology
- Value-level metadata
- Origins
- Derivations
- Comments
- Computational methods
- Links to supporting documents
Example: Define-XML and Dataset Mismatch
Suppose the dataset contains:
AVAL 12.5 14.7 18.2
but Define-XML incorrectly describes the variable as an integer.
The values and metadata disagree.
The problem is not necessarily the data.
The metadata may be wrong.
The correct resolution could therefore be to correct Define-XML rather than modify the dataset.
Value-Level Metadata
Value-level metadata becomes particularly important in complex ADaM datasets.
A variable can have different meanings depending on another variable.
For example, AVAL may represent different
parameters identified by PARAMCD.
PARAMCD PARAM AVAL ALT Alanine aminotransferase 35 AST Aspartate aminotransferase 31 BILI Bilirubin 0.8
The metadata therefore needs to communicate more than simply:
It may need to describe the parameter-specific meaning, units, origins, and other metadata required for the analysis.
Controlled Terminology Validation
Controlled terminology is another area where programmers frequently misinterpret validation findings.
A controlled-term finding can arise because:
- The value is genuinely invalid.
- The wrong terminology version was used.
- The dataset uses a sponsor extension.
- The variable was incorrectly populated.
- The Define-XML codelist is inconsistent.
- The validation configuration expects a different terminology version.
Terminology Versions Matter
Consider a dataset using a controlled term that was valid under one terminology release but not another.
The apparent problem may therefore be:
before it is actually:
Always establish which terminology version the study is intended to use.
Common Controlled-Term Validation Findings
| Finding | Investigation |
|---|---|
| Value not in codelist | Check terminology version and variable-specific terminology. |
| Codelist missing | Check Define-XML metadata and dataset specification. |
| Unexpected synonym | Determine whether the value is an approved term or sponsor extension. |
| Incorrect case | Check whether terminology is case-sensitive for the applicable rule. |
| Unexpected null | Determine whether the variable is required, expected, or permissible. |
Understanding Validation Rules
Automated validation systems use rules to express expectations about the datasets.
Conceptually, a rule can be represented as:
Rules can test different types of conditions.
Examples include:
- Matching values
- Uniqueness
- Regular expressions
- Conditional relationships
- Required-when conditions
- Lookup values
- Metadata properties
This is important because not all findings are simple "wrong value" checks.
Match Rules
A match rule can conceptually ask:
For example, if a variable is expected to contain one of a defined set of values, a value outside that set can generate a finding.
This type of validation is especially useful for controlled terminology.
Uniqueness Rules
Uniqueness rules are often applied to keys or key components.
For example, suppose a sequence number must be unique within subject.
The logical condition is:
The important phrase is within subject.
A sequence of 1 for Subject 001 and a sequence of 1 for Subject 002 can be perfectly acceptable if the rule is scoped by subject.
Conditional Rules
Conditional validation is one of the most powerful concepts in standards validation.
Suppose a variable is required when another variable has a particular value.
The logic can be represented as:
For example, if a status variable indicates that an event occurred, an associated date may be expected.
These rules are useful because clinical datasets contain conditional relationships that simple datatype checks cannot capture.
Regular Expression Validation
Regular expressions can validate patterns such as ISO-like dates, identifiers, or structured strings.
For example, an ISO date can conceptually follow:
A value such as:
2025/01/31
may therefore be identified as structurally inconsistent with an expected format.
Metadata Rules
Metadata rules are particularly important for Define-XML.
They can address relationships such as:
- Dataset metadata
- Variable definitions
- Data types
- Labels
- Controlled terminology
- Value-level metadata
- Origins
- Derivations
A Validation Finding Is an Observation
A useful professional mindset is to think of a finding as an observation.
For example:
Observation: A variable contains a value that does not match the expected controlled terminology.
Investigation: Determine whether the value is invalid, represents a legitimate sponsor extension, or results from terminology-version mismatch.
Resolution: Correct the dataset, correct metadata/configuration, or document the justified exception.
This mindset prevents a common mistake: blindly modifying data until the validation report becomes empty.
Should Every Finding Be Fixed?
No.
The goal is not necessarily:
The goal is:
Resolution may mean:
- Correct the dataset
- Correct Define-XML
- Correct the validation configuration
- Correct terminology selection
- Document a legitimate exception
- Provide rationale in the appropriate submission documentation
False Positives
A false positive occurs when a validation rule reports a potential issue that does not represent an actual defect in the intended implementation.
For example, a rule might flag a value because it is outside a generic expectation, while the study has a documented, standards-consistent reason for using that value.
Common Causes of False Positives
- Study-specific implementation
- Therapeutic-area extensions
- Permitted sponsor extensions
- Terminology differences
- Validation-engine assumptions
- Differences between standards versions
- Legitimate edge cases
- Incomplete metadata
Do Not Fix Data to Satisfy a Rule Without Investigation
Consider:
Finding: Expected value = A, B, or C Observed value = D
A poor response is:
Change D to A
A professional response is:
Validation of Analysis Datasets Is Different
ADaM validation presents an additional challenge because analysis datasets are often highly study-specific.
For example:
PARAMCD = "PFS" AVAL = 127 CNSR = 0 STARTDT = 2025-01-14 ADT = 2025-05-21
A validator can check many structural relationships.
But determining whether 127 days is the correct PFS duration requires knowledge of the endpoint definition and censoring rules.
The validator therefore complements, rather than replaces, derivation specification review.
ADaM Traceability
One of the most important ADaM concepts is traceability.
For a derived analysis value:
A validation engine can identify some inconsistencies, but a programmer still needs to establish that the derivation itself is scientifically and statistically correct.
Example: ADaM Change From Baseline
Suppose:
BASE = 120 AVAL = 108
The change should be:
A validator may be able to detect inconsistencies if metadata or related variables provide sufficient structure.
But if the programmer incorrectly uses:
the result becomes:
and the value can still be syntactically valid.
Validation of Define-XML
Define-XML validation deserves its own testing phase.
Important questions include:
- Does the XML parse correctly?
- Are required namespaces present?
- Are dataset definitions complete?
- Are variable definitions consistent with the actual datasets?
- Are data types correct?
- Are labels correct?
- Are codelists correctly linked?
- Are value-level metadata structures valid?
- Are origins and derivations appropriately documented?
- Are links to external documents valid?
Why Define-XML Errors Can Be Serious
Define-XML is part of how reviewers understand the submitted datasets.
If the metadata are incomplete or incorrect, a reviewer can have difficulty determining:
- What a variable means
- Where it came from
- How it was derived
- Which terminology applies
- How values should be interpreted
A dataset that is technically readable but poorly documented is therefore not necessarily submission-ready.
Cross-Dataset Validation
Many of the most useful validation checks compare datasets.
Examples include:
- Subjects in ADaM should generally be traceable to the appropriate SDTM population.
- Study identifiers should be consistent.
- Treatment assignments should be consistent with their source data.
- Dates should be logically compatible across datasets.
- Parameter definitions should be consistent with metadata.
Example: Subject Traceability
Suppose SDTM contains:
USUBJID ABC001-001 ABC001-002 ABC001-003
while ADSL contains:
USUBJID ABC001-001 ABC001-002 ABC001-004
Subject ABC001-004 may therefore require
investigation.
Possible explanations include:
- Incorrect ADaM population
- Incorrect SDTM population
- Different intended population
- Typographical error
- Different source package
The correct resolution depends on the study design and analysis population.
Validation of Relationships Between ADSL and BDS
A common ADaM architecture includes:
The programmer should verify that subject-level attributes are consistently carried into analysis datasets.
For example:
ADSL USUBJID TRT01P 001 Treatment A 002 Treatment B ADLB USUBJID TRT01P PARAMCD AVAL 001 Treatment A ALT 35 002 Treatment B ALT 31
An unexpected mismatch in TRT01P should be
investigated rather than simply overwritten.
Validation Before Pinnacle 21
A mature process should include pre-validation checks.
For example:
1. Verify file names 2. Verify file formats 3. Verify required datasets exist 4. Verify dataset sort order 5. Verify key variables 6. Verify duplicate records 7. Verify variable metadata 8. Verify controlled terminology 9. Verify Define-XML references 10. Run Pinnacle 21
This reduces noise in the validation report and makes genuine findings easier to interpret.
Dataset Structural Checks
Before running the validator, programmers can independently check:
- Dataset existence
- Variable existence
- Variable ordering
- Variable labels
- Data types
- Lengths
- Record counts
- Unique keys
- Missingness
- Unexpected values
Example SAS Pre-Validation Check
proc contents data=adam.adsl
order=varnum;
run;
proc sort data=adam.adsl
out=adsl_check
nodupkey;
by usubjid;
run;
proc freq data=adam.adsl;
tables saffl ittfl trt01p / missing;
run;
The exact checks should be defined by the study's programming standards and validation plan.
Example R Pre-Validation Check
library(dplyr)
adsl %>%
summarise(
n_subjects = n_distinct(USUBJID),
n_records = n(),
duplicate_subjects =
sum(duplicated(USUBJID))
)
adsl %>%
count(TRT01P, SAFFL, ITTFL)
These checks do not replace Pinnacle 21.
They provide an independent layer of assurance.
Running Pinnacle 21
The exact interface and available configurations depend on the installed Pinnacle 21 product and validation configuration.
At a conceptual level, a validation run requires:
- The applicable standard
- The standard version
- The dataset package
- Define-XML where applicable
- Relevant terminology versions
- The appropriate validation engine/configuration
- An output location for the report
Why Standard Version Selection Matters
Suppose a dataset was built according to one SDTM implementation-guide version while the validation engine is configured for another.
The validation result may contain findings that are not actual defects in the study implementation.
Conceptually:
can produce:
Command-Line Validation
For production programming environments, GUI-only validation is often insufficient.
Command-line validation can support:
- Repeatability
- Automation
- Batch processing
- Version-controlled pipelines
- Continuous validation during development
- Consistent report generation
A conceptual command-line workflow looks like:
Validation configuration
↓
SDTM / ADaM datasets
↓
Define-XML
↓
Pinnacle 21 validation engine
↓
Validation report
↓
Issue triage
↓
Corrected package
↓
Repeat validation
Pinnacle 21 documentation provides command-line examples using Java and explicit standard, standard-version, source-data, Define-XML, terminology, and report arguments.
Illustrative CLI Pattern
java -jar p21-client.jar --standard=adam --standard.version=1.1 --source.sdtm="path/to/sdtm" --source.adam="path/to/adam" --source.define="path/to/define.xml" --report="path/to/validation/report.xlsx"
The exact command-line syntax and available engine/configuration options should be taken from the installed Pinnacle 21 release rather than copied blindly between environments.
Why CLI Automation Is Valuable
Imagine a study has:
- 12 SDTM domains
- 8 ADaM datasets
- 1 Define-XML file
- Multiple terminology dependencies
- Several programming teams
- Weekly development releases
Manual validation becomes increasingly inefficient.
A scripted process can instead execute:
for every controlled release.
Validation in a CI/CD Pipeline
Advanced programming teams can integrate validation into a broader pipeline.
Source specifications
↓
Program generation
↓
Independent QC
↓
Dataset build
↓
Structural checks
↓
Pinnacle 21 validation
↓
Finding extraction
↓
Release decision
↓
Archive validated package
The objective is not necessarily to block every build containing every finding.
Instead, the pipeline can distinguish:
- New errors
- Previously accepted findings
- Known warnings
- New unexplained findings
- Resolved findings
Baseline Validation Findings
One of the most useful advanced techniques is to establish a baseline.
Suppose Release 1 contains:
ERROR 2 WARNING 8 INFO 21
After a controlled update, Release 2 contains:
ERROR 1 WARNING 9 INFO 20
The overall count improved, but a new warning may have been introduced.
Therefore, simply comparing total counts is inadequate.
Compare Findings by Identity
A more useful comparison considers:
- Rule identifier
- Dataset
- Variable
- Record or subject
- Message
- Severity
Then the team can determine:
This is much more informative than:
Validation Finding Management
A mature study can maintain a finding log.
| Field | Example |
|---|---|
| Finding ID | AD001 |
| Dataset | ADSL |
| Variable | TRT01P |
| Rule | Terminology check |
| Severity | Warning |
| Status | Investigated |
| Disposition | Accepted |
| Rationale | Study-specific treatment extension documented in Define-XML |
| Owner | ADaM Programming |
| Version | Final 1.0 |
Finding Disposition Categories
Organizations commonly develop internal categories such as:
| Disposition | Meaning |
|---|---|
| Fix | A genuine defect was identified and corrected. |
| Accept | The finding is understood and the implementation is intentionally retained. |
| Not Applicable | The rule does not apply to the study context. |
| Configuration Issue | The validation configuration or version requires review. |
| Documentation Required | The finding is legitimate but requires explanation in submission documentation. |
Do Not Confuse "Accepted" With "Ignored"
An accepted finding should have a rationale.
For example:
Finding: Variable value outside generic controlled terminology.
Assessment: The value represents a documented study-specific extension permitted by the implementation approach.
Evidence: Dataset specification, Define-XML metadata, and standards review.
Disposition: Accepted with documented rationale.
What Makes a Good Validation Rationale?
A strong rationale answers four questions:
- What did the validator identify?
- Why did the finding occur?
- Why is the resulting implementation acceptable?
- What evidence supports that conclusion?
Weak rationale:
Known issue. Ignore.
Strong rationale:
The finding is generated because the validation configuration does not recognize the study-specific value used for this variable. The value is defined in the approved study specification and is represented in Define-XML using the corresponding sponsor-defined codelist. The implementation was reviewed against the applicable standard and retained intentionally.
Validation and Regulatory Agencies
Validation requirements should be interpreted in the context of the intended regulatory submission.
For FDA submissions, for example, the relevant FDA study-data standards, technical conformance requirements, and applicable standards catalog need to be considered.
Other agencies may have their own validation expectations and configurations.
FDA Versus Sponsor Validation
A sponsor may perform validation using an internal configuration, while a regulatory agency may apply its own validation processes.
Therefore:
Sponsor validation should nevertheless be designed to identify issues before submission and reduce avoidable technical findings.
PMDA and Other Regulatory Contexts
A study intended for multiple regions may require more than one validation perspective.
The same dataset can therefore be assessed against different regulatory expectations.
This reinforces the need to identify:
- Target agency
- Standards baseline
- Applicable validation configuration
- Agency-specific technical guidance
- Submission-specific requirements
Validation of the Final Package
Validation should be performed on the actual package intended for submission, not merely on an earlier development version.
A final validation cycle should confirm:
- Final datasets
- Final Define-XML
- Final controlled terminology references
- Final metadata
- Final file names
- Final directory structure
- Final versions
The "Last-Minute Define-XML" Problem
A common workflow failure is:
This creates a large amount of risk near the submission deadline.
A better process is:
Metadata should evolve alongside the datasets.
Validation During Development
Validation should not begin only when the statistical programming team declares the datasets final.
A better lifecycle is:
Why Early Validation Is Better
If a standards implementation problem is discovered six months before submission, the team has time to:
- Correct programming standards
- Update specifications
- Correct metadata
- Discuss sponsor-specific interpretation
- Rebuild datasets
- Re-QC outputs
If the same problem is discovered two days before submission, the technical issue can become a project-management problem.
Validation of SDTM and ADaM Together
An advanced workflow should not treat SDTM and ADaM as completely independent validation projects.
The relationship is:
A defect in SDTM can propagate into ADaM.
A metadata defect can affect both.
A derivation problem can create valid-looking but scientifically incorrect analysis values.
Validation Findings Should Be Traced Upstream
When a finding occurs, ask:
Potential sources include:
- Source data
- Mapping specification
- SDTM program
- SDTM metadata
- ADaM specification
- ADaM program
- Define-XML generation
- Controlled terminology mapping
- Validation configuration
Example: A Finding Caused Upstream
Suppose an ADaM variable contains an unexpected value.
The immediate temptation is to modify the ADaM program.
But tracing the lineage reveals:
If the SDTM source is incorrect, changing ADaM may merely conceal the underlying problem.
Validation of Analysis Flags
Analysis flags are a common source of subtle problems.
Examples include:
SAFFL ITTFL FASFL EFFFL ANL01FL ANL02FL ONTRTFL
A validator may be able to check their data type and allowed values.
It usually cannot independently establish the scientific definition of the flag.
For example:
does not tell the validator why the subject qualifies for the safety population.
That requires the analysis specification and programming logic.
Validation of Dates
Dates are another area where structural and clinical validation differ.
A date can be syntactically valid:
2025-06-15
while being logically impossible within the study:
TRTSDT = 2025-06-20 TRTEDT = 2025-06-15
A chronological rule can potentially identify this type of inconsistency.
But the programmer should still trace the derivation and source dates.
Date-Time Precision
Clinical-trial standards can represent dates with different levels of precision.
Examples include:
2025 2025-06 2025-06-15 2025-06-15T09:32 2025-06-15T09:32:00
A validator must therefore be interpreted in the context of the applicable standard and variable definition.
Missing time precision is not automatically a data error.
Missingness Validation
Missing values are another area where "missing" does not automatically mean "wrong."
A variable may be:
- Required
- Expected
- Permissible
- Conditionally required
- Not applicable
The distinction is critical.
Required Versus Expected Versus Permissible
| Category | Interpretation |
|---|---|
| Required | The variable is required in the applicable structure. |
| Expected | The variable is generally expected when applicable. |
| Permissible | The variable may be included when relevant. |
A finding involving an absent permissible variable is fundamentally different from a missing required variable.
Duplicate Records
Duplicate records require special attention.
Not every repeated combination of values represents a duplicate.
For example:
USUBJID VISIT PARAMCD AVAL 001 Week 4 ALT 32 001 Week 8 ALT 35
The same subject and parameter occur twice, but the observations represent different visits.
A true duplicate requires understanding the expected record key.
Keys Should Be Explicit
For a dataset, define the expected key conceptually as:
A duplicate exists when two records have identical values across the relevant key components.
This is why a generic "duplicate row" check is often insufficient.
Unscheduled Visits
Unscheduled visits frequently generate validation findings.
For example:
AVISIT = UNSCHEDULED AVISITN = 999
Whether this is acceptable depends on the study's implementation.
The programmer should verify:
- Visit naming
- Visit numbering
- Analysis rules
- Metadata
- Study-specific conventions
Post-Baseline and Baseline Flags
Many analysis datasets contain variables such as:
ABLFL ANL01FL BASE CHG PCHG
A validation finding involving one of these variables should trigger review of the derivation hierarchy.
For example:
If BASE is wrong, then CHG
and PCHG may also be wrong.
Validation Should Follow Derivation Dependencies
Validation of BDS Data
BDS datasets often contain repeated parameters across visits and therefore require careful consideration of:
- Subject identifiers
- Parameters
- Analysis visits
- Dates
- Baseline records
- Analysis flags
- Units
- Categories
- Record uniqueness
Example BDS Structure
USUBJID PARAMCD AVISIT AVISITN AVAL BASE CHG ANL01FL 001 ALT Week 4 4 35 40 -5 Y 001 ALT Week 8 8 31 40 -9 Y 002 ALT Week 4 4 44 44 0 Y
Potential validation questions include:
- Is the baseline record properly identified?
- Is the baseline carried consistently?
- Is CHG correctly calculated?
- Is ANL01FL correctly assigned?
- Are parameter-specific units correct?
- Are records unique according to the intended key?
Validation of Analysis Windows
Analysis windows are a particularly important area for statistical programmers.
Suppose the protocol specifies a Week 8 analysis window.
The programmer may have to select an observed assessment using a rule such as:
subject to prespecified window boundaries and tie-breaking rules.
A validator may identify structural relationships, but it generally cannot replace independent validation of the complete selection algorithm.
Programming QC of Validation-Sensitive Variables
Variables that commonly deserve targeted independent QC include:
- BASE
- CHG
- PCHG
- ABLFL
- ANLxxFL
- ADT
- ADY
- PARAMCD
- AVAL
- AVALC
- CNSR
- STARTDT
- ADT
- TRTxxP
Time-to-Event Validation
ADTTE datasets deserve particular attention.
For an event time:
or another study-specific convention may apply.
The validator can identify some inconsistencies, but the correct time origin, event definition, censoring rules, and treatment of partial dates require independent statistical review.
Example ADTTE Record
USUBJID PARAMCD STARTDT ADT CNSR AVAL 001 OS 2025-01-14 2026-01-20 1 371 002 OS 2025-01-18 2025-09-30 0 256
A validator can check basic consistency.
The programmer must still determine whether the event/censoring logic matches the statistical analysis plan.
Validation and Statistical Specifications
One of the most common misconceptions is that the validation engine can determine whether the dataset matches the SAP.
The SAP may state:
- Primary endpoint definition
- Analysis population
- Baseline definition
- Visit-window algorithm
- Censoring rules
- Missing-data rules
- Imputation rules
- Subgroup definitions
These specifications are not automatically encoded into generic standards validation.
Validation and Table Shells
Another useful cross-check is to compare the variables used by tables and figures with the final ADaM datasets.
For example:
If the table program expects a flag that does not exist or has changed meaning, this may indicate a broader implementation problem even if the datasets pass standards validation.
Validation of the Final Analysis Package
A strong final package review should consider:
Datasets
Correct names, formats, records, variables, labels, and metadata.
Define-XML
Accurate, complete, internally consistent metadata.
Terminology
Correct terminology versions and codelist implementation.
Validation
All findings investigated and appropriately dispositioned.
Traceability
Analysis variables trace to source data and documented derivations.
Outputs
Tables, listings, and figures correspond to the final analysis package.
Example End-to-End Validation Workflow
Regression Validation
Every correction can introduce another problem.
For example:
Therefore, after significant corrections, validation should be rerun across the affected downstream layers.
Validation Regression Matrix
| Change | Minimum Regression Scope |
|---|---|
| SDTM variable mapping change | Affected SDTM domains + dependent ADaM datasets |
| Controlled terminology change | Affected domains + Define-XML |
| ADaM derivation change | Affected ADaM dataset + dependent outputs |
| Define-XML change | Define-XML validation + dataset/metadata comparison |
| Baseline algorithm change | Entire affected analysis dataset + relevant outputs |
Validation Report Review
Do not begin by scrolling through hundreds of findings randomly.
A better approach is to sort findings by:
- Severity
- Dataset
- Rule
- Variable
- Frequency
- Common root cause
If 400 findings are caused by one incorrect variable mapping, fixing the mapping may eliminate most of the report.
Root-Cause Analysis
Suppose a validation report contains:
Rule R001 212 findings Rule R002 198 findings Rule R003 4 findings
Do not automatically treat this as 414 independent problems.
The 410 findings from R001 and R002 may have a common cause.
For example:
Finding counts should therefore be interpreted in terms of root causes.
Validation Efficiency
A mature programmer does not try to eliminate findings one record at a time when a single programming correction can eliminate an entire class of findings.
The preferred sequence is:
Common Validation Anti-Patterns
Anti-Pattern 1: "Zero Findings Means Perfect"
It does not.
A generic validation engine cannot prove that every derivation is scientifically correct.
Anti-Pattern 2: "Every Warning Is a Bug"
Warnings require investigation and interpretation.
Anti-Pattern 3: "Make the Data Pass"
Changing data solely to satisfy a validation rule can create a more serious scientific defect.
Anti-Pattern 4: "Define-XML Is Just Documentation"
Define-XML is structured metadata that supports interpretation of the submission.
Anti-Pattern 5: "Validate Only at Submission"
Late validation concentrates technical risk at the worst possible point in the study lifecycle.
Anti-Pattern 6: "Pinnacle 21 Replaces QC"
It does not.
Anti-Pattern 7: "A Finding Is a Finding"
Different findings can have radically different root causes and implications.
Advanced Example: Debugging an ADaM Finding
Suppose Pinnacle 21 reports an issue involving CHG.
The programmer should trace:
Only after completing this chain should the programmer decide whether the problem is in the data, derivation, metadata, or validation configuration.
Advanced Example: Debugging a Controlled Terminology Finding
Suppose:
SEX = "M"
and the validator reports an issue.
The programmer should ask:
- Which variable is actually being checked?
- Which codelist is expected?
- Which terminology version is configured?
- Is the variable's metadata correct?
- Is the value actually "M" or another representation?
- Is the finding from the dataset or Define-XML?
The first task is diagnosis, not correction.
Advanced Example: Debugging a Define-XML Finding
Suppose the validation report indicates that a variable has a metadata mismatch.
Compare three layers:
| Layer | Example |
|---|---|
| Dataset | AVAL is numeric |
| Specification | AVAL is defined as numeric |
| Define-XML | AVAL described as text |
If the dataset and specification agree, Define-XML is likely the defective layer.
Validation Evidence
For important releases, retain sufficient evidence to reconstruct what was validated.
Useful artifacts include:
- Dataset package
- Define-XML
- Validation configuration
- Terminology versions
- Validation report
- Finding disposition log
- Programming version
- Execution date
- Execution environment
- Reviewer approval
Why Reproducibility Matters
If a validation result cannot be reproduced, it becomes difficult to determine whether a later package is genuinely different.
A reproducible validation process should allow:
Validation Environment Control
For regulated environments, teams should control or document:
- Pinnacle 21 version
- Validation engine version
- Standard versions
- Terminology versions
- Operating environment
- Input package
- Output report
This becomes especially important when validation behavior changes between software releases.
Open Rules and the Future of Validation
CDISC has increasingly emphasized machine-executable conformance rules through its Open Rules work.
The underlying direction is important:
This creates opportunities for greater consistency between standards interpretation and automated validation.
It also increases the importance of understanding exactly which rules and versions are being executed.
Validation Configuration Is Part of the Result
The same dataset can potentially produce different findings under different validation configurations.
Therefore:
This is one of the most important advanced concepts in automated CDISC validation.
What Statistical Programmers Should Know
A statistical programmer using Pinnacle 21 should be comfortable with more than pressing the Validate button.
You should be able to:
- Identify the standards baseline.
- Understand the structure of the dataset being validated.
- Interpret validation findings.
- Trace findings to source programming logic.
- Distinguish data defects from metadata defects.
- Understand terminology dependencies.
- Evaluate potential false positives.
- Document findings rationally.
- Run validation reproducibly.
- Perform regression validation after corrections.
A Practical Programmer's Debugging Checklist
Example Validation Review Table
| Rule | Dataset | Issue | Disposition |
|---|---|---|---|
| RULE-001 | DM | Duplicate USUBJID | Fix programming |
| RULE-002 | VS | Unexpected terminology value | Investigate terminology version |
| RULE-003 | ADSL | Missing permissible variable | Not applicable |
| RULE-004 | ADLB | Metadata mismatch | Fix Define-XML |
| RULE-005 | ADTTE | Potential date inconsistency | Investigate derivation |
What "Submission Ready" Should Mean
A submission-ready dataset should not merely have a green-looking validation dashboard.
A more useful definition is:
Final Validation Checklist
| Area | Question |
|---|---|
| Standards | Are the correct SDTM/ADaM versions being used? |
| Terminology | Are the correct terminology versions configured? |
| Datasets | Are all required datasets present and correctly named? |
| Variables | Are names, labels, types, and lengths correct? |
| Keys | Are record-level keys and uniqueness expectations satisfied? |
| Dates | Are date relationships logically consistent? |
| Controlled terminology | Are values consistent with the applicable terminology? |
| ADaM | Are analysis derivations independently QC'd? |
| Define-XML | Does metadata accurately describe the actual datasets? |
| Findings | Has every meaningful finding been investigated? |
| Exceptions | Are accepted findings appropriately justified? |
| Regression | Was validation rerun after material corrections? |
| Final package | Was the actual submission package validated? |
Common Mistakes
- Running Pinnacle 21 with the wrong standards version.
- Using the wrong controlled terminology version.
- Treating every finding as a programming error.
- Changing values solely to make a validation report cleaner.
- Ignoring Define-XML validation until the end of the study.
- Assuming ADaM derivations are validated merely because the datasets pass structural checks.
- Failing to investigate root causes when hundreds of findings share a common rule.
- Failing to rerun validation after corrections.
- Failing to maintain a finding disposition log.
- Validating development datasets but not the final submission package.
- Ignoring cross-dataset consistency.
- Confusing standards conformance with statistical correctness.
The Most Important Concept
The most important concept in CDISC validation is that validation is an investigative process, not a button-clicking exercise.
Pinnacle 21 is exceptionally useful because it can execute large numbers of standardized checks consistently.
But the statistical programmer still has to answer the harder questions:
- Why did this finding occur?
- Is the finding a genuine defect?
- Where was the defect introduced?
- Does the standard actually require a change?
- Is the metadata correct?
- Is the terminology version appropriate?
- Does the analysis specification support the implementation?
- What downstream datasets and outputs are affected?
- What evidence supports the final disposition?
Those questions require programming expertise, standards knowledge, statistical judgment, and careful documentation.
References
Pinnacle 21. Documentation.
Documentation covering Pinnacle 21 Community, data validation, CDISC
standards, regulatory guidance, Define-XML, SDTM, ADaM, and validation
practice.
Pinnacle 21. OpenCDISC Validation Framework.
Technical documentation describing validation-rule concepts including match,
unique, regular-expression, conditional, required-when, lookup, and metadata
rules.
Pinnacle 21. Validation with Pinnacle 21 Community CLI.
Documentation describing command-line validation workflows for SDTM, ADaM,
and Define-XML.
Pinnacle 21. How does Pinnacle 21 implement ADaM validation checks?
Discussion of the relationship between Pinnacle 21 validation and CDISC ADaM
conformance rules.
CDISC. CDISC Open Rules / CORE.
Information concerning machine-executable CDISC conformance rules and the
development of a more consistent rules-based validation framework.
U.S. Food and Drug Administration. Study Data Technical Conformance
Guide. Technical considerations for electronic submission of
standardized study data.
CDISC. SDTM Implementation Guide. Applicable version should
be selected according to the study's standards baseline and regulatory
requirements.
CDISC. ADaM Implementation Guide. Applicable version should
be selected according to the study's standards baseline and regulatory
requirements.
CDISC. Define-XML Specification. Applicable version should
be selected according to the submission standards baseline.