Built around real clinical review workflows
Subject-level safety review
Right-click a USUBJID and press L. Every dataset in the library — AE, CM, MH, LB, VS — is instantly filtered to that subject. Flip through domains like pages in a patient narrative.
Old way: Write a WHERE clause in SAS, re-run for each domain.
→ Library filter docsSUPPAE, SUPPEX, SUPPQS — joined in one click
Open AE and choose Join with Supplemental. StatDataViewer finds SUPPAE, pivots QNAM/QVAL using IDVAR/IDVARVAL, and adds the supplemental parameters as columns — no PROC TRANSPOSE, no code.
Old way: PROC SORT + PROC TRANSPOSE + PROC SQL merge, every single time.
→ SDTM tools docsIncidence counts in two keystrokes
Click AEDECOD, press N. You see distinct USUBJID counts per preferred term. Ctrl-click AEBODSYS too for a two-level crosstab. Replaces a full PROC FREQ call.
Old way: PROC FREQ with TABLES and BY statements.
→ Frequency docsDelivery comparison without a SAS session
Compare the new ADSL delivery against the previous one: choose base and compare datasets, set ID variables, click Compare. Results show matched rows, unmatched rows, and every cell-level difference.
Old way: Write PROC COMPARE, check the log, run again.
→ Compare datasets docsDescriptive statistics for efficacy review
Right-click any numeric column → Descriptive Statistics. Set AVISIT as a BY variable to stratify by visit. N, mean, SD, min, max, median — no PROC MEANS required.
Old way: PROC MEANS with CLASS/BY statements.
→ Statistics docsMulti-study libraries side by side
Add SDTM, ADaM, and outputs as separate libraries with different colors. Name them SDTM, ADAM, OUT. The library filter and tab grouping keep you oriented across hundreds of datasets.
Old way: Multiple SAS explorer windows or repeated LIBNAME statements.
→ Libraries docsPHI stays on your machine. Always.
StatDataViewer performs all processing locally. It makes no network requests with your data. There is no cloud sync, no telemetry, no analytics on your datasets. The macOS version runs inside the App Sandbox.
Suitable for clinical trial data under HIPAA, GCP, and 21 CFR Part 11 environments where data must not leave the controlled workstation.
Every format you work with
.sas7bdat
Full support including variable labels, formats, and lengths. Open directly — no SAS engine needed.
.xpt
V5 and V8 transport format. The standard for CDISC regulatory submissions to FDA and EMA.
.rds / .rdata
For biostatistics teams working in R alongside SAS programmers.
.sav
With value labels shown — common in earlier-phase and academic trials.
.dta
Stata 12–18. For global health and epidemiology datasets.
.xlsx
CRF annotations, specs, edit check listings — without leaving StatDataViewer.
Learn five keys. Review data at full speed.
Every shortcut is a single letter matching the action name.
Built by a clinical SAS programmer — for clinical SAS programmers
StatDataViewer started as a personal tool to handle the daily friction of reviewing SDTM and ADaM data: the repetitive WHERE clauses, the manual SUPP joins, the PROC FREQ calls, the PROC COMPARE boilerplate. It is now used by programmers across biotech, CRO, and pharmaceutical settings who need to move through data quickly and safely.
— Kenneth Yan, clinical SAS programmer & author of StatDataViewer