ADaM All lessons Scene 1 / 12

ADaM · Interactive Lesson

ADTTE: Time-to-Event in ADaM

12 scenes· ~22 min· pairs with the article

Step through the scenes, pass the checkpoint quizzes, and try the hands-on exercises. Progress saves locally in this browser — no account, no tracking.

Scene index · 12 scenes
  1. ConceptThe Question on the Death Record
  2. ConceptAnatomy of an ADTTE Dataset
  3. ConceptDefinitions Live in the SAP
  4. ConceptThe Censoring Date Cascade
  5. ConceptCNSR Semantics: Why Direction Is Everything
  6. ConceptPartial Dates at the Event
  7. CheckpointCheckpoint: ADTTE Core Concepts
  8. ConceptThree OS Rows in Study 043-18101
  9. Hands-onEvent or Censor? Trace the Source
  10. ConceptThe QC Listings That Catch Broken TTE
  11. CheckpointClosing Check: Reading a Real ADTTE Row
  12. ConceptADTTE in Practice: Key Takeaways
Concept1 / 12

The Question on the Death Record

The Question on the Death Record

• QC of an OS (overall survival) analysis in ADaM ADTTE

• Kaplan–Meier (KM) curves cross

• Hazard ratio (HR) favors the control arm

Which CNSR value do the death records carry?

• ADaM defines CNSR: 1 = censored · 0 = event

• A 1 on death rows flips KM/HR — plot still looks normal

Agenda: ADTTE anatomy · SAP rules · censoring cascade · Study 043-18101 rows · QC listings

Opening scenario (L1): during QC of an overall-survival analysis, the Kaplan-Meier curves cross and the hazard ratio favors control, so the statistician asks one question — what value does CNSR carry on the death records? This frames why CNSR direction is the most expensive silent error in ADTTE.

Speaker notes

Picture a quality control review of an overall survival analysis in an Analysis Data Model time-to-event dataset, where the Kaplan–Meier curves cross and the hazard ratio favors the control arm. The statistician asks one question: which CNSR value do the death records carry? In the Analysis Data Model, CNSR equals one means censored and CNSR equals zero means event — that rule is fixed, never inferred from how yes or no flags behave elsewhere. If death rows carry CNSR equals one, the analysis models censoring instead of the event, so the curves flip, the hazard ratio reverses, and every conclusion reverses while the Kaplan–Meier plot still looks normal. Today we cover the time-to-event dataset anatomy, the statistical analysis plan rules, the censoring cascade, real rows from our demo study, and the two quality control listings that catch a broken dataset.

Concept2 / 12

Anatomy of an ADTTE Dataset

Anatomy of an ADTTE Dataset

ADaM Time-to-Event Dataset

Grain: one record per subject (USUBJID) per analysis — PARAMCD/PARAM names the analysis (OS, PFS, ...).

STARTDT

time zero (origin)

ADT

event / censor date

CNSR (0/1)

event / censor flag

AVAL

duration per SAP

EVNTDESC / CNSDTDSC

what event or censor was

why censor date chosen

SRCDOM / SRCVAR / SRCSEQ

source domain, variable, record

ADT provenance — audit trail

ADSL merge

treatment & population flags

from subject-level ADSL

Concept page (L1): defines the grain of ADTTE and the core variable roles that every time-to-event analysis relies on.

Speaker notes

Here is the anatomy of an Analysis Data Model, ADaM, Time-to-Event dataset, or ADTTE. The grain is one record per unique subject identifier, USUBJID, per analysis, with parameter code PARAMCD and parameter PARAM. One study can run overall survival, OS, and progression-free survival, PFS, off the same machinery. The start date variable STARTDT is the time-to-event origin, analysis date ADT is the event or censoring date, censor CNSR is the 0 or 1 flag, and analysis value AVAL is the analysis duration per the statistical analysis plan, SAP. Event Description, EVNTDESC, and Censoring Date Description, CNSDTDSC, state what the event or censoring was and why a censored date was chosen. SRCDOM, SRCVAR, and SRCSEQ, source domain, variable, and sequence, record the source for ADT for audit, while treatment and population flags merge from ADSL, the Subject-Level Analysis Dataset.

Concept3 / 12

Definitions Live in the SAP

Definitions Live in the SAP

What counts as an event, when to censor, and which date starts the clock — all live in the SAP (Statistical Analysis Plan) before any ADaM (Analysis Data Model) code is written.

RuleTypical SAP wording (examples)ADaM expression
Event definitionfirst occurrence per adjudicated domainADT (analysis date)
Censoring ruleno event → last known contactCNSR = 1 (censored)
Origin datefirst doseSTARTDT (origin date)

• Transcribe each ADT/CNSR/AVAL with a trace — SRCDOM / SRCVAR / SRCSEQ.

• Never invent a censoring rule — a made-up rule is an inspection finding.

• SAP is silent? Raise a spec query, not a programmer preference.

Concept page (L1): establishes that event definition, censoring rules, and origin dates are SAP content; the programmer transcribes them with traceability, never prefers their own rule.

Speaker notes

Before any ADaM, Analysis Data Model, code is written, the three decisions that shape a time-to-event dataset already live in the SAP, the Statistical Analysis Plan. What counts as an event, when to censor, and which date starts the clock are SAP content, not programmer preference. A typical SAP says the event is the first occurrence per the adjudicated domain, captured in ADT, the analysis date. If there is no event, censor at last known contact and set CNSR, the censoring flag, to one; the origin date, first dose, is carried in STARTDT. Every ADT, CNSR, and AVAL, the analysis value, traces to SRCDOM, SRCVAR, and SRCSEQ, the source domain, variable, and sequence number. Never invent a censoring rule, a made-up rule is an inspection finding, so when the SAP is silent, raise a spec query instead.

Concept4 / 12

The Censoring Date Cascade

The Censoring Date Cascade

ADT = analysis date · CNSR = censor flag: 0 = event, 1 = censored.

SAP fixes the order; the first applicable rule wins and assigns one traceable source row (SRCDOM / SRCVAR / SRCSEQ).

Priority 1 — event on record

ADT = event date · CNSR = 0 (event) · source: event record

Priority 2 — discontinued study (DS)

ADT = discontinuation date · CNSR = 1 (censored) · reason: DS

Priority 3 — known alive at last contact (ADSL.LSTALVDT)

ADT = last known alive date · CNSR = 1 (censored) · source: ADSL.LSTALVDT

Priority 4 — none of the above applies

ADT = data cut date · CNSR = 1 (censored) · reason: data cut

Concept page (L1): shows how a subject with no event still receives an ADT through a priority-ordered cascade, with every censored subject getting exactly one date, one reason, and one source row.

Speaker notes

When a subject has no event, the cascade assigns an analysis date, ADT — the first applicable rule wins. Priority one: an event on record gives ADT as the event date, sets the censor flag, CNSR, to zero, and uses the event record as source. Priority two: discontinued the study gives ADT as discontinuation date, CNSR one, reason from the Disposition domain, DS. Priority three: known alive at last contact means ADT is the last known alive date from the Subject-Level Analysis Dataset, ADSL, variable LSTALVDT, with CNSR one. Priority four: otherwise, ADT is the data cut date, CNSR one, reason data cut. This enforces one censoring date, one reason, and one traceable source row using source domain, SRCDOM, source variable, SRCVAR, and source sequence, SRCSEQ — and the priority order is statistical analysis plan, SAP, content.

Concept5 / 12

CNSR Semantics: Why Direction Is Everything

CNSR Semantics: Why Direction Is Everything

CNSR = 0

Event branch

cnsr = 0;

CNSR = 1

Censoring branch

cnsr = 1;

Reverse the coding →

model becomes the hazard of censoring

curves flip • hazard ratio flips • conclusions flip

Analysis: declare which is censored

time tte * cnsr(1);

PROC LIFETEST — PROC PHREG: identical

Duration guard

Duration = ADT − STARTDT

negatives rejected before analysis

Concept page (L1): explains the fixed ADaM meaning of CNSR values and what happens when the convention is reversed, then shows the explicit code and analysis statements from the canonical snippet.

Speaker notes

CNSR, the censoring indicator, is an ADaM convention — Analysis Data Model — where zero marks an event and one marks censoring. In the derivation, state it explicitly: cnsr = 0; on the event branch, and cnsr = 1; on the censoring branch. Reverse that coding and you instead model the hazard of censoring, so the curves flip, the hazard ratio reverses direction, and every conclusion reverses with it. At the analysis step, declare the semantics as well: time tte * cnsr(1); tells PROC LIFETEST, the Lifetest procedure, which value is censored. PROC PHREG, the proportional hazards procedure, carries identical semantics. Duration runs from STARTDT, Start Date, to ADT, Analysis Date, and a mandatory guard rejects negative duration before analysis.

Concept6 / 12

Partial Dates at the Event

Partial Dates at the Event

ADaM (Analysis Data Model)  •  TTE (time-to-event)  •  SAP (Statistical Analysis Plan)

USUBJID (subject id)  •  ADT (analysis date)  •  STARTDT (study start date)  •  CNSR  •  AVAL

Rule — partial event date is imputed per SAP and flagged — never silent.

TTE wrinkle — imputation direction can move ADT before STARTDT, or shift whether it counts as an event.

Review boundary — ADT-vs-STARTDT and CNSR/AVAL effects go to data review, not a fallback branch.

Extract 043-18101 — no partial-date rows exist, so no USUBJID data row is shown for this rule.

Concept page (L1): covers SAP-driven imputation of partial or uncertain event dates and flags the specific TTE risk that imputation direction can move ADT before STARTDT. Notes that the supplied Study 043-18101 extract contains no partial-date records, so the rule is taught without a patient-data row.

Speaker notes

Now we turn to partial dates at the event. In an Analysis Data Model, or ADaM, time-to-event dataset, a partial event date must be imputed according to the Statistical Analysis Plan, the SAP, and that imputation must be flagged. The reason is a time-to-event, or TTE, wrinkle: the imputation direction can change whether the record counts as an event at all, or it can push ADT, analysis date, before STARTDT, study start date. Those consequences affect CNSR, the censoring indicator, and AVAL, the analysis value, so they belong to data review, not to a fallback branch that the programmer invents. For the extract supplied with this lesson, no partial-date rows exist, so no USUBJID, unique subject identifier, data row is shown for this rule.

Checkpoint7 / 12

Checkpoint: ADTTE Core Concepts

1 In an ADaM time-to-event analysis dataset (ADTTE), the variable CNSR identifies whether the observation time is censored. If CNSR is set to 0 for a subject record, what is the correct interpretation?

2 The ADTTE quartet consists of STARTDT, ADT, AVAL, and CNSR. Select all statements that are true about these variables. (select all that apply, then Check)

3 In an ADTTE derivation cascade, if the subject had the event of interest, ADT is set to the event date and CNSR = 0. If a subject discontinued from the study without the event of interest, which rule usually applies next?

4 Censoring decisions in ADTTE depend on both the planned analysis and the data collected. Who is responsible for defining the censoring rules and the priority order for choosing ADT? If the Statistical Analysis Plan (SAP) is silent about a specific censoring situation, what should the ADTTE programmer do? (reflect, then reveal)

Reveal analysis
The SAP defines the censoring rules and the priority order for assigning ADT. The ADTTE programmer implements those rules. If the SAP does not address a specific censoring case, the programmer must not improvise. The appropriate action is to ask the study statistician or SAP owner for clarification, obtain an agreed rule, and document that decision so the ADTTE derivation remains reproducible and traceable. ADaM conventions may provide context, but they do not replace the need for a clearly documented, analysis-specific decision.
Speaker notes

This checkpoint reviews core concepts in the Analysis Data Model (ADaM) time-to-event analysis dataset, known as ADTTE. For the censor indicator, CNSR, if CNSR is 0, the correct interpretation is A: the subject had the event of interest, and ADT, the analysis date, is usually the event date, because CNSR equals 1 means the observation is censored. For the ADTTE quartet of STARTDT, ADT, AVAL, and CNSR, the correct choices are A, B, C, and D: STARTDT is the time-to-event origin date, ADT holds the event date when CNSR equals 0 or the censor date when CNSR equals 1, AVAL is the analysis value representing time from STARTDT to ADT in the analysis time unit, and CNSR marks whether the observation is censored. When a subject discontinued without the event of interest, the usual next cascade rule is B: set ADT to the date the subject discontinued and set CNSR to 1, because STARTDT is the origin date, not the censor date. For censoring rules, the Statistical Analysis Plan (SAP) defines the rules and priority order for choosing ADT, while the ADTTE programmer implements them; if the SAP is silent, the programmer must not improvise and should ask the study statistician or SAP owner for clarification, obtain an agreed rule, and document it.

Concept8 / 12

Three OS Rows in Study 043-18101

Three OS Rows in Study 043-18101

Real-data walkthrough · verbatim rows from the adtte.csv extract

USUBJIDSTARTDTADTADYCNSREVNTDESCSRCDOMSRCVARSRCSEQ
74001-0012019-05-082019-05-2215.01AliveADSLLSTALVDT—
74001-0022019-05-152019-09-05114.00DeathADRSADT4.0
74001-0032019-05-152019-05-2612.00DeathADRSADT4.0

Legend — CNSR 1 = censored (Alive) · CNSR 0 = death

Duration — AVALU = MONTHS · AVAL ≈ 0.4928 / 3.7454 / 0.3943 (row order)

Death rows (002 / 003) → SRCDOM = ADRS · SRCVAR = ADT · SRCSEQ = 4.0

Censored row (001) → SRCDOM = ADSL · SRCVAR = LSTALVDT (last-known-alive)

Real-data walkthrough (L1): reads actual Overall Survival rows from the adtte.csv extract verbatim, contrasting a censored subject with two death-event subjects and tracing the SRC columns to their source records.

Speaker notes

This slide shows three overall survival, or OS, rows, taken verbatim from the time-to-event analysis data set, ADTTE, extract, and no patient values are invented. Row one is censored: its censor indicator, CNSR, equals one, and its analysis value, AVAL, is about 0.4928, with AVALU, the analysis value unit, set to months. Its start date, STARTDT, is 2019-05-08, and its analysis date, ADT, is 2019-05-22, sourced from the subject-level analysis dataset, ADSL, variable LSTALVDT, the last known alive date. The two death rows, CNSR equals zero, both point to the analysis data set for response, ADRS, with source variable SRCVAR of ADT and source sequence number SRCSEQ of four. Together with SRCDOM, the source domain, these columns act as audit instructions pointing to the upstream record behind each date.

Hands-on9 / 12

Event or Censor? Trace the Source

Hands-on interactive — if it does not load, open the paired article and try the exercise there.

Speaker notes

You'll do this one hands-on on the website at jaimeyan.com/learn. The exercise asks you to read the censoring indicator (CNSR) on each overall survival (OS) row for the demo subject, decide whether it is an event or a censoring, and pick the matching event description (EVNTDESC) or censoring description (CNSDTDSC). You'll also trace each source domain (SRCDOM), source variable (SRCVAR), and source sequence number (SRCSEQ) trio back to its source record, then apply the two quality control (QC) listing rules to see whether any supplied row would be flagged, so give it a try right after the video.

Concept10 / 12

The QC Listings That Catch Broken TTE

The QC Listings That Catch Broken TTE

QC = quality control · ADaM = analysis data model · ADTTE = time-to-event analysis dataset · ADSL = subject-level analysis dataset

Listing A — Event Before Origin

• ADT (analysis date) < STARTDT (TTE origin), CNSR = 0 (event)

• Every hit: misassigned origin or source-date error

Listing B — Censoring Without a Source

• CNSR = 1 (censored): SRCDOM/SRCVAR/SRCSEQ blank or dangling

• Violation: the cascade's one-source-row promise

• Trace: USUBJID 74001-002 → ADRS.ADT row 4.0 (SRC)

Why Both Listings

• Minutes to write; catches defects reaching statisticians

• Structural conformance tools cannot check cascade vs. SAP

ADTTE in the Modern Workflow

• ADTTE builds late — ADSL plus event-bearing data

• SRC → independent ADT re-derive: diff vs submission

QC and modern-workflow page (L2): presents the two listings that catch defects conformance tools cannot, and locates ADTTE in the ADaM build sequence with SRC-enabled automated QC.

Speaker notes

Quality control, or QC, listings catch broken time-to-event analysis datasets, ADTTE. Listing A flags rows where ADT, the analysis date, is before STARTDT, the time-to-event origin, with CNSR, the censoring indicator, equal to zero. That means an event before origin, so every hit is a misassigned origin or source-date error; Listing B finds censored subjects where CNSR equals one but SRCDOM, SRCVAR, or SRCSEQ, source domain, variable, and sequence, are blank or dangling. For example, USUBJID, the unique subject identifier, 74001-002, has a death row pointing to an ADT record 4.0. Both listings catch defects reaching statisticians, and no structural conformance tool checks the cascade against statistical analysis plan. In the modern workflow, ADTTE builds late from the subject-level analysis dataset plus event-bearing data, and the SRC variables let independent QC re-derive ADT and diff it against the submission copy.

Checkpoint11 / 12

Closing Check: Reading a Real ADTTE Row

1 For the closing-check extract, you inspect the 74001-002 OS (Overall Survival) row in the ADTTE (Analysis Dataset for Time-to-Event) dataset. The row has populated ADT (Analysis Date), CNSR (Censor), EVNTDESC (Event Description), and SRCDOM/SRCVAR/SRCSEQ (source domain, variable, and sequence). What do these variables together establish? Select the single best answer.

2 Suppose the value of CNSR in a real ADTTE row is accidentally flipped from 0 to 1 for an event observed on ADT. The KM (Kaplan-Meier) output still runs and displays a plot. Why does the flip nevertheless change the hazard interpretation? Select the single best answer.

3 Consider the two QC (Quality Control) listings used in the closing check. One targets events before the time-to-event origin; the other targets censored subjects without a censoring source. Which row categories are correctly matched to these listings? Select all that apply. (select all that apply, then Check)

Speaker notes

Welcome to the closing check, where we will read a real Analysis Dataset for Time-to-Event row and test three key points. For the checkpoint, inspect the Overall Survival, or OS, row in the Analysis Dataset for Time-to-Event, or ADTTE. The correct answer is A: Analysis Date, or ADT, Censor, or CNSR, Event Description, or EVNTDESC, and the source domain, variable, and sequence variables, or SRCDOM, SRCVAR, and SRCSEQ, together establish the analysis time contribution, event-versus-censor status, a clinical description of that status, and traceability to the source data record. If Censor, or CNSR, is accidentally flipped from 0 to 1 for an event observed on Analysis Date, or ADT, the correct answer is A: the subject's row no longer contributes an observed event to the numerator at the event time and is instead handled as censored, so the Kaplan-Meier, or KM, output may still run but the hazard interpretation changes. For the Quality Control, or QC, listings, the correct answers are A and B: the first listing targets event rows where Analysis Date, or ADT, occurs before Start Date, or STARTDT, the analysis origin, and the second targets censored rows with Censor, or CNSR, equal to 1 that have no matching source domain, variable, and sequence record to justify the censoring reason.

Concept12 / 12

ADTTE in Practice: Key Takeaways

ADTTE in Practice: Key Takeaways

ADaM bootcamp series — ADSL → BDS/OCCDS → ADTTE

Model & Semantics

Data spine: one row per subject per analysis — STARTDT = time zero, ADT = event / censoring date.

CNSR code: 0 = event, 1 = censored — reversing these silently reverses the hazard ratio.

Censoring cascade: one date, one reason, one SRC row per censored subject, in SAP priority order.

QC & Series

Two listings: events before STARTDT, censored with no source row — catches what conformance tools cannot.

Line closes: ADSL → BDS/OCCDS → ADTTE complete; paired blog article supplies the full worked reference.

Agent caution (2026-08-30): verify which CNSR value marks an event, then SRC-trace records by hand.

Summary (L1-L3): distills the lesson into durable takeaways, adds the time-sensitive agentic-layer warning from the source article, and links back to the ADaM bootcamp series.

Speaker notes

This closes the Analysis Data Model, or ADaM, line: ADTTE, the Time-to-Event Analysis Dataset, is one row per subject per analysis. STARTDT, the Time-to-Event Origin Date, sets time zero; ADT, the Analysis Date, holds the event or censoring date; and CNSR, the Censor variable, carries the semantics. CNSR equals zero for an event, one for censored; reversing those values silently reverses the hazard ratio while output still looks normal. The censoring cascade gives every censored subject one date, one reason, and one traceable source row in Statistical Analysis Plan, or SAP, priority order. Two Quality Control listings — events before STARTDT, and censored without a source row — catch what conformance tools cannot. As of 2026-08-30, verify which CNSR value means event, then hand-trace Source, or SRC, records; this closes the line from subject-level to basic and occurrence structures to time-to-event.

✓

Lesson complete

Nice work — every scene seen. Keep the momentum going.

← → Space to navigate · progress is saved locally in your browser

AI Tutor

Ask the tutor