Synthetic example / AE
A date can be precise about uncertainty
Keep a complete date, a partial date and a missing end date distinct.
The second start value tells us a month but no day. Replacing it with February 1 would manufacture precision. Similarly, a null end value is not proof that an event is ongoing. Those interpretation decisions are intentionally outside this small transformation. A reliable pipeline can preserve the source faithfully while leaving an unsupported inference unmade.
01 / The collection
[
{
"id": "event-a",
"study": "CLD-SYN-001",
"subject": "SYN-001",
"report": "Brief discomfort after walking",
"start": "2025-02-03",
"end": "2025-02-04"
},
{
"id": "event-b",
"study": "CLD-SYN-001",
"subject": "SYN-002",
"report": "Intermittent fictional symptom",
"start": "2025-02",
"end": null
}
]02 / The representation
Scroll this table horizontally to inspect every field, or read as records.
| STUDYID | DOMAIN | USUBJID | AESEQ | AETERM | AESTDTC | AEENDTC | AESER |
|---|---|---|---|---|---|---|---|
| CLD-SYN-001 | AE | SYN-001 | 1 | Brief discomfort after walking | 2025-02-03 | 2025-02-04 | null (missing) |
| CLD-SYN-001 | AE | SYN-002 | 1 | Intermittent fictional symptom | 2025-02 | null (missing) | null (missing) |
Inspect output JSON and CSV
[
{
"STUDYID": "CLD-SYN-001",
"DOMAIN": "AE",
"USUBJID": "SYN-001",
"AESEQ": 1,
"AETERM": "Brief discomfort after walking",
"AESTDTC": "2025-02-03",
"AEENDTC": "2025-02-04",
"AESER": null
},
{
"STUDYID": "CLD-SYN-001",
"DOMAIN": "AE",
"USUBJID": "SYN-002",
"AESEQ": 1,
"AETERM": "Intermittent fictional symptom",
"AESTDTC": "2025-02",
"AEENDTC": null,
"AESER": null
}
]STUDYID,DOMAIN,USUBJID,AESEQ,AETERM,AESTDTC,AEENDTC,AESER
CLD-SYN-001,AE,SYN-001,1,Brief discomfort after walking,2025-02-03,2025-02-04,
CLD-SYN-001,AE,SYN-002,1,Intermittent fictional symptom,2025-02,,
03 / The decisions between them
study → STUDYID- Copy study identity.
subject → USUBJID- Copy the fictional subject identity.
report → AETERM- Copy independently authored uncoded wording.
start → AESTDTC- Keep full or partial precision unchanged.
end → AEENDTC- Keep null distinct from a date; do not infer ongoing status.
(authored) → DOMAIN- Set constant AE for this teaching example.
(authored) → AESEQ- Assign fixed example sequence numbers within each subject; not a general sequencing rule.
(not collected) → AESER- Missing categorical values stay null; no controlled terminology lookup.
Trace each row
event-a→adverse-events-timing:1event-b→adverse-events-timing:2
JSON null becomes an empty CSV cell. Empty CSV cells cannot distinguish absent from empty text; use JSON for that distinction.
Read the variable lessons
Follow the source
Original ClinDevLab explanations. Publisher material is linked, not reproduced. Reviewed 8 October 2026.
- SDTM 2.0https://www.cdisc.org/standards/foundational/sdtm/sdtm-v2-0 · CDISC · 2.0 · accessed 2026-10-08
- SDTMIG 3.4https://www.cdisc.org/standards/foundational/sdtmig/sdtmig-v3-4 · CDISC · 3.4 · accessed 2026-10-08