A tool that scans SAS logs and LST listings, maps them to the TFL plan, checks run order and timing, detects empty and redundant outputs, and rolls everything into a health score with an HTML report.
Conformance tools check datasets; this checks the delivery — logs, listings, run order, TFL coverage and redundancy. It is the operational QC layer no SDTM checker looks at.
How it works
Typical layout
By the numbers
Screenshots
smart-validation-01-scan.png into/public/screenshots/smart-validation/
smart-validation-02-score.png into/public/screenshots/smart-validation/
smart-validation-03-coverage.png into/public/screenshots/smart-validation/
Data flow
Before a deliverable goes out, a programmer must confirm logs are clean, outputs ran in the right order, TFL coverage matches the planned shells, and nothing is empty or redundant. Doing this by hand across many files is slow and easy to miss.
Input: SAS logs + LST listings + TFL plan
|
v
Scanner (scanner.py) discovers logs/listings in the delivery
|
v
Parsers (lst_parser.py, lst.py) extract status, timing, content signals
|
+--> Run-order check (run_order.py)
+--> Timing checks (timing_checks.py)
+--> TFL coverage (tfl_map.py, tnf_coverage.py)
+--> Empty-dataset + redundancy (empty_dataset.py, redundancy.py)
|
v
Severity + Health score (severity.py, health_score.py)
|
v
Report (html_report.py) --> HTML report | CLI (Typer/Rich) Engineering trade-offs
At a glance
A quick visual read of the countable facts; full detail in the table.
Relative scale · values labelled · unit: count
Processing characteristics
| Metric | Value | Notes |
|---|---|---|
| Test functions | 315 | Largest suite in the portfolio |
| Version | 0.13.1 | From the package __version__ |
| Interfaces | CLI + Streamlit | Typer/Rich CLI and a Plotly UI |
| Inputs | Logs, LST, TFL plan | SAS logs and listings mapped to the plan |
| Output | HTML report | Health score with severity breakdown |
| Checks | Order/timing/coverage/empty/redundant | Rolled into the health score |
Functional wins
Module dependencies
- Python
- typer
- rich
- pyyaml
- streamlit
- plotly
- pandas
- openpyxl
- pytest