trialdiff and the existing ecosystem

Complement, not duplicate

trialdiff does not attempt to replace low-level data frame comparison. It builds on the observation that detection is a solved problem, while clinical interpretation and downstream impact are not.

Tool / package What it does Where it stops How trialdiff relates
diffdf Detailed cell-level diff of two data frames, with keys No clinical categorisation, no lineage, no impact Optional low-level backend (backend = "diffdf"); trialdiff adds the clinical layers
waldo General R object comparison, used by testthat General purpose, not clinical Optional low-level equality backend (backend = "waldo")
dplyr / base Joins and set operations Building blocks only Used internally; no user-facing duplication
haven Read SAS/SPSS/Stata Transport only Input reader for compare_cut()
admiral ADaM derivation Does not compare data cuts Downstream of the comparison; lineage edges can point at admiral derivations
metacore / metatools Metadata management and dataset checking Metadata, not data-cut diffs lineage_from_metadata() derives a lineage graph from a metacore object
cards Analysis Results Data Results, not change detection Impacted “analysis” nodes can be cards/ARD objects
tern / rtables TLG generation Output generation Outputs (TLFs) are lineage nodes flagged for review
SAS PROC COMPARE Dataset comparison, value/label/length differences No classification, lineage or impact Conceptual ancestor; trialdiff is the R/pharmaverse equivalent plus context
Commercial platforms End-to-end clinical data management and validation Closed, licence-bound trialdiff is open-source and scriptable

Integration points

Is this novel?

The novelty is not in comparison. It is in the combination of:

  1. a clinical change taxonomy;
  2. explicit, user-declared lineage between datasets, variables, analyses and outputs;
  3. a transparent, policy-driven impact assessment that distinguishes “definitely”, “potentially” and “unlikely”, and refuses to claim statistical impact without a rerun;
  4. reporting that lists exactly what a programmer or statistician must review.

No package in the pharmaverse currently occupies this position. See the project proposal in proposal/ for the full gap analysis and roadmap.