Clinical trial data harmonization
While A2K works with a range of life sciences data types, from real-world data to product labeling, clinical trials are a common use case. In principle, trials should be straightforward to combine: CDISC's SDTM is the standard FDA has accepted for trial submissions since 2004 and required since 2016.
In this case study, we sourced five trials from a public clinical trial data-sharing repository, each from a different pharmaceutical sponsor. The goal was to pool all five trials so that cohort subsets with like characteristics could be developed.
Scope and source data profile
We applied the specifications used in our Research Program for academic and nonprofit organizations. They cover eight CDISC SDTM data domains commonly used for pooling and cohort development: demographics (DM), adverse events (AE), concomitant medications (CM), laboratory results (LB), vital signs (VS), medical history (MH), disposition (DS), and exposure (EX).
All five trials were "SDTM-shaped": each followed its sponsor's own reading of the standard and its conventions, rather than the standard exactly. The trials had also been anonymized, which introduced further variability between the trials.
| Trial A | Trial B | Trial C | Trial D | Trial E | Total | |
|---|---|---|---|---|---|---|
| Patients | 325 | 273 | 266 | 130 | 282 | 1,276 |
| Tables holding the 8 domains | 18 | 15 | 22 | 22 | 17 | 94 |
| Source variables within the tables | 338 | 244 | 851 | 650 | 382 | 2,465 |
| Rows processed by A2K | 70,450 | 223,587 | 105,215 | 75,941 | 75,932 | 551,125 |
Counts from a review of each trial's source files; rows processed from each trial's A2K run results. Study and sponsor names withheld.
A2K processing
In total, A2K processed 216 source data files, with 2,465 variable columns across the 94 tables holding the in-scope SDTM domains. Processing took under an hour for each trial.
| Step | Performed by A2K |
|---|---|
| Recognizing the data | Works out what each file and each column contains |
| Reshaping tables | Converts sponsor table layouts into one standard layout |
| Subject identity and linking | Gives each subject one ID that holds across tables and never repeats across trials |
| Standard values and vocabularies | Converts codes, variant wording, and formatting differences into consistent standard terms |
| Measurements, dates, and derived values | Standardizes units and dates and computes routine values |
| Clinical consistency checks | Catches values that contradict each other or lose clinical meaning |
| Audit trail | Records how every value was produced and which decisions need review |
| Deliverables and documentation | Delivers analysis-ready tables with reports and standard metadata |
The platform's processing flow
- IngestParses source files, extracts metadata, and identifies each file's structure
- DecomposeClassifies columns and reshapes each table, with structural checks
- MapAligns tables to the schema and matches columns, guided by the specifications
- HarmonizeTransforms values using specification rules and the AI model
- QCRuns quality, plausibility, and cross-domain checks, with distribution checks
- ReviewAssesses data utility, with an AI model review of the package
- AssembleRecombines tables, links keys across domains, and checks completeness
The specification pack is A2K's proprietary, AI-optimized schema for representing data models, ontologies, and standards. It lets the platform apply standard rules where they are efficient, and model reasoning where the data is variable or ambiguous.
Apply the standard where it settles the answer
- Known codes and terms
- Standard units and dates
- Identifiers and arithmetic
Resolve what the data leaves open
- Recognize what each file and column holds
- Resolve renamed, ambiguous, or unfamiliar values
- Check the rules' answers, with every change recorded
Has the final say
- Reviews the flagged decisions
- Sees the source value and the reason for each
- Builds the pooled analysis set
Run results and deliverables
As expected, how closely a source dataset conforms to the standard determines how much model judgment is required. Trial B was close to the standard: standard rules settled 93% of decisions and the AI model 2%. Trial C departed further from it, and the AI model settled 22%.


The download package for each trial
For each source table
- Harmonized data: standard tables, with sponsor columns that have no standard variable carried as recorded
- Value-level provenance: the original source value, the result, and how it was produced (standard rule, AI model, or derivation)
- QC report: findings on the harmonized output
- Define-XML: standard machine-readable metadata
- Mapping report: a readable account of every variable column
- Source data quality: the completeness and other limits of each source table
Across the package
- Combined tables: one table per data domain
- Review list: decisions that warrant review
- Source profile: what each domain's source contains and what it is missing
- Subject ID lookup: the A2K ID beside each source's subject IDs, so end users can apply the A2K ID to data domains that were passed through without processing
- Manifest: every file, with row counts and checksums
Time savings
We estimated the time it would take to manually harmonize the five trials, assuming one programmer and one QC programmer. Of course the actual time needed depends on many variables including prior experience harmonizing large datasets, familiarity with the standard being applied, and available programming tools. The following table shows the per-trial estimate of manual work saved, along with what's left for an analysis team to complete.
| Step | Performed by A2K | Manual work estimate, hours per trial* | For the analysis team |
|---|---|---|---|
| Recognizing the data | Works out what each file and each column contains | 40–80 | Confirm how files were read |
| Reshaping tables | Converts sponsor table layouts into one standard layout | 40–80 | Confirm reshaped tables |
| Subject identity and linking | Gives each subject one ID that holds across tables and never repeats across trials | 6–12 | Review flagged orphan IDs |
| Standard values and vocabularies | Converts codes, variant wording, and formatting differences into consistent standard terms | 55–135 | Review flagged values |
| Measurements, dates, and derived values | Standardizes units and dates and computes routine values | 50–100 | Check flagged units and dates |
| Clinical consistency checks | Catches values that contradict each other or lose clinical meaning | 20–40 | Decide the conflicts flagged |
| Audit trail | Records how every value was produced and which decisions need review | 100–290 | Spot-check provenance, no rebuild |
| Deliverables and documentation | Delivers analysis-ready tables with reports and standard metadata | 20–45 | Assemble the pooled set |
| Total per trial | ≈340–790 |
*Estimated manual effort for one programmer and one QC programmer, averaged across the five trials and eight domains. Effort depends on the quality and completeness of the source data.