SDTM provides a general framework for describing the organization of information collected during human and animal studies and submitted to regulatory authorities. The model is built around following concepts:

Observation Observations correspond to rows in a dataset and are consist of a series of named variables.
Domain A collection of observations on a particular topic.
Variable A variable normally corresponds to a column in a dataset. Variables can be classified according to its role.
Role A role describes the type of information conveyed by the variable and how it can be used.

Generally speaking, SDTM variables can be classified into five major roles:

Identifier variables Those identify the study, the subject, the domain and the sequence number of the record.
STUDYID USUBJID DOMAIN
Topic variables Specify the focus of the observation (such as the name of a lab test).
–TRT, –TERM, –TESTCD
Timing variables Describe the timing of an observation such as start date and end date.
–STDTC, –ENDTC
Qualifier variables Include additional illustrative text, or numeric values that describe the results or additional traits of the observation (such as units or descriptive adjectives)
Rule variables Express an algorithm or executable method to define start, end or looping conditions in the Trial Design model

The set of Qualifier variables can be further categorized into five sub-classes:

Grouping Qualifiers To group together  a collection of observations within the same domain
–CAT –SCAT
Result Qualifier Describe the specific results associated with topic variable. They answer the questions raised by the topic variable
–ORRES, –STRESC and –STRESN
Synonym Qualifier Specify an alternative name for a particular variable in an observation.
–MODIFY for –TRT
–DECOD for –TERM
–TEST and –LOINC for –TESTCD
Record Qualifier Define additional attributes of the observation record
–REASND,
AESLIFE and all other SAE flag variables in the AE domain
AGE, SEX and RACE in DM domain
–BLFL, –POS, –LOC, –SPEC and –NAM in a Findings domain
Variable Qualifier Further modify or describe a specific variable within an observation and are only meaningful in the context of the variable they qualify.
–ORRESU, –ORNRHI, –ORNRLO for –ORRES
–DOSU for –DOSE

Each domain dataset is distinguished by a unique, two-character code that should be stored in SDTM variable named DOMAIN and should be consistently throughout the submission. This code can be used in four ways:

The dataset name
The value of the DOMAIN variable in that dataset
As a prefix for most variable names in that dataset
As a value in the RDOMAIN variable in relationship dataset

All datasets are structured as flat files. Rows represent observations and columns represent variable.

When creating submissions, we may drop certain variables (those defined as permissible in the implementation guide) from the dataset and corresponding descriptions from the define.xml as long as no data was collected for these variables. CORE variable (see SDTM implementation guide) may describe which variables are required, expected, or permissible in specific domains based on the general observation classes. Sponsor-defined variables must not be added, and existing variables must not be renamed o modified for novel usage.

Note that CORE variable together with the other two shaded columns “CDISC Notes” and “References” are not sent to FDA. Three categories of variables are specified in the “Core” column.

Required Required variables must always be include in the dataset and cannot be null for any record. They are basic to the identification of a data record and are necessary to make record meaningful (key variables and topic variables).
Expected Expected variables may contain some null values and still are included in the dataset even when no data has been collected. In this case, a comment can be included in define.xml to state that data was not collected
Permissible The sponsor can decide whether a Permissible variable should be included as a column when all values for that variable are null

CORE variable has values: Req, Exp and Perm.

ROLE variable has values: Identifier, Topic, Timing, Rule, Grouping Qualifier, Result Qualifier, Synonym Qualifier, Record Qualifier and Variable Qualifier.