As a clinical trial statistician or programmer, answer two short questions in Your review: the task and the inputs and outputs. Agreeing with both approves this benchmark; disagreeing with either needs a comment. Propose a fix with the Edit button on any source file, or add it to your comments.
We suggest spending no more than 5 minutes on a review. The other tabs beside Your review are background for assessment, not under review.
Summary
README.mdPublic entries: Python and R. Passing coverage requires an installed inventory.
Goal: complete a collected birth date to the first and last day of its month and read how much was collected.
Input: subject-level records carrying a birth date as text
DOBTC (a year, a year and month, or a full date), an
assessment moment DTM, and a reference start date REFDT.
All three reach the output as collected, blank when nothing was
collected.
Variables:
DOB_FIRSTholds the birth date with a missing month set to June and a missing day set to the first of the month; a full date stands as collected, and blank stays blank.DOB_LASTholds the birth date completed the same way, but with a missing day set to the last of the month, so February lands on the 28th or 29th by year; a full date stands as collected, and blank stays blank.DOB_PREC_TXholdsyearfor a year alone,monthfor a year and month, anddayfor a full date, read from the collected text; blank when the text is blank.DOB_PREC_DTholds the same word read from the completed first-day date; blank when there is no completed date.DTMDTholds the calendar day of the assessment moment; blank when the moment is blank.DOBDYholds the study day of the completed first-day date against the reference start, with the reference itself as day one and no zero; blank when either date is blank.
Note: a year alone may receive both a month and a day here, while a complete date is never moved. Precision follows the collected text through completion, and the study day counts a collected day exactly as a supplied one would count.
Inputs
Under review1 source fileinput/adsl.csv
Edit5 rows| STUDYID | USUBJID | DOBTC | DTMSTR | REFDTSTR |
|---|---|---|---|---|
| CATH | 1975 | 2025-01-12T14:00 | 1975-06-01 | |
| CATH | 1980-02 | 2024-02-29T23:59:59 | 1980-02-02 | |
| CATH | 1990-06-15 | 1990-06-15T00:00:00 | 1990-06-15 | |
| CATH | — | — | 2025-01-01 | |
| CATH | 2000-02 | 2000-02-29T12:00 | 2000-01-15 |
Expected output
Under review5 expected rowsexpected/adsl.csv
Edit5 rows| STUDYID | USUBJID | DOBTC | DTM | REFDT | DOB_FIRST | DOB_LAST | DOB_PREC_TX | DOB_PREC_DT | DTMDT | DOBDY |
|---|---|---|---|---|---|---|---|---|---|---|
| CATH | 1975 | 2025-01-12T14:00:00 | 1975-06-01 | 1975-06-01 | 1975-06-30 | year | year | 2025-01-12 | 1 | |
| CATH | 1980-02 | 2024-02-29T23:59:59 | 1980-02-02 | 1980-02-01 | 1980-02-29 | month | month | 2024-02-29 | -1 | |
| CATH | 1990-06-15 | 1990-06-15T00:00:00 | 1990-06-15 | 1990-06-15 | 1990-06-15 | day | day | 1990-06-15 | 1 | |
| CATH | — | — | 2025-01-01 | — | — | — | — | — | — | |
| CATH | 2000-02 | 2000-02-29T12:00:00 | 2000-01-15 | 2000-02-01 | 2000-02-29 | month | month | 2000-02-29 | 18 |
Human review and assessment
| Dataset Name | Variable Name | Variable Label | Type | Codelist/Controlled Terms | Core | Computational Method | Origin |
|---|---|---|---|---|---|---|---|
| ADSL | STUDYID | Study Identifier | character | Copy value from SOURCE.STUDYID. | Predecessor | ||
| ADSL | USUBJID | Unique Subject Identifier | character | Copy value from SOURCE.USUBJID. | Predecessor | ||
| ADSL | DOBTC | Date of Birth (Collected Text) | character | Copy value from SOURCE.DOBTC. | Predecessor | ||
| ADSL | DTM | Datetime of Assessment | numeric | ISO 8601 | Copy value from SOURCE.DTMSTR. | Predecessor | |
| ADSL | REFDT | Reference Start Date | numeric | ISO 8601 | Copy value from SOURCE.REFDTSTR. | Predecessor | |
| ADSL | DOB_FIRST | Date of Birth Completed to First Day | numeric | ISO 8601 | Impute incomplete date from DOBTC, defaulting month=6, day=first; invalid text → blank. | Derived | |
| ADSL | DOB_LAST | Date of Birth Completed to Last Day | numeric | ISO 8601 | Impute incomplete date from DOBTC, defaulting month=6, day=last; invalid text → blank. | Derived | |
| ADSL | DOB_PREC_TX | Date of Birth Precision From Text | character | Collected date precision of DOBTC: "day" for a complete date, "month" for a year and month, "year" for a year alone, "none" for an entirely imputed date or text with an unknown year; invalid text → blank. | Derived | ||
| ADSL | DOB_PREC_DT | Date of Birth Precision From Date | character | Collected date precision of DOB_FIRST: "day" for a complete date, "month" for a year and month, "year" for a year alone, "none" for an entirely imputed date or text with an unknown year; invalid text is an error. | Derived | ||
| ADSL | DTMDT | Date of Assessment | numeric | ISO 8601 | Take the date part of DTM, blank for a year or a year and month alone. | Derived | |
| ADSL | DOBDY | Study Day of Birth Completion | numeric | CDISC study day of DOB_FIRST against REFDT as day 1; there is no day zero. | Derived |
| Version | Date | Author | Description | Reviewer | Sign-off |
|---|---|---|---|---|---|
| 1.7 | 2026-10-20 | yamaa docs build | Read a specification in the 1.0 surface as its 0.5 counterpart; state that missing values stay missing where a mapping declares no missing handler, and leave out a declared missing answer that restates a handler's default | ||
| 1.6 | 2026-10-17 | yamaa docs build | Describe collected date parts written as ISO 8601 date text and times of day counted in seconds since midnight | ||
| 1.5 | 2026-10-17 | yamaa docs build | Name collected precision in words instead of letter codes; state imputation fallbacks, minimum source precision, bounds ignored outside the collected period, and invalid text with no handler as an error; describe date and datetime shifts, imputation flag codes, and partial text giving no date part | ||
| 1.4 | 2026-10-15 | yamaa docs build | State datetime precision codes through the hour and minute, and complete only the time parts a collected datetime lacks | ||
| 1.3 | 2026-09-29 | yamaa docs build | Show study codelist names, external dictionaries, and ISO 8601 formats in variable rows; list the document's codelist values and metadata | ||
| 1.2 | 2026-09-29 | yamaa docs build | Classify ADaM copies from a declared input as Predecessor and recodes as Derived, and SDTM recodes of locally derived columns as Derived | ||
| 1.1 | 2026-09-29 | yamaa docs build | Resolve lookups into the donor record they select, and give every derivation shape a plain-language rule instead of its raw YAML | ||
| 1.0 | yamaa docs build | Initial generation from spec.yaml |
yamaa