Healthcare data

OMOP data quality in practice: conformance, completeness and plausibility

Most clinical data was never collected for research. Before anyone builds a cohort or trains a model on it, you need evidence it's fit for purpose. These are the checks I put in place.

Field noteSumanta Mukhopadhyay7 min read4 sources
#healthcare#omop#data#governance
FIELD NOTE · HEALTHCARE DATA19 Oct 2026 · 04:15 GST

A successful OMOP conversion feels like the finish line. The ETL ran, the tables are populated, ATLAS loads. In my experience with OMOP and the OHDSI tools, it is closer to the halfway point. The question that matters next is whether anyone should trust the data.

The Book of OHDSI frames it well: most observational data was not collected for research. EHRs exist to support patient care and claims exist to get paid, so the real question is whether the data is good enough for your purpose1.

A shared vocabulary for "quality"

The framework I use comes from Kahn and colleagues, who published a harmonised terminology for EHR data quality in 20162. It has three categories:

CategoryQuestionExample check
ConformanceDo values follow the expected formats, relationships and computations?Every provider referenced in a drug exposure exists in the provider table
CompletenessAre the values we need actually present?Do all persons have a recorded gender?
PlausibilityAre the values believable?No patients aged 141; diabetes prevalence close to known rates

Each category can be checked by verification, against internal rules and expectations, or validation, against an external benchmark such as other sites or published rates12. The value of the framework is less in the categories than in the shared language: clinicians, analysts and engineers stop arguing about what "bad data" means.

Layer 1: characterise the data with ACHILLES

ACHILLES pre-computes a large set of characterisation analyses over an OMOP CDM, such as distributions of drug supply days by concept, and presents them visually1. I use it first because it shows the shape of the data before anyone writes a rule.

ACHILLES data density plot showing record counts over time by domain
A data density plot in the ACHILLES viewer. Sudden drops or spikes over time often reveal source-system changes or ETL gaps. Source: OHDSI, The Book of OHDSI, Data Quality · CC0 1.0

Layer 2: rule-based checks with the Data Quality Dashboard

The Data Quality Dashboard runs rule-based checks against the CDM and reports, for each one, the fraction of rows that violate it, a threshold and a pass or fail status. Checks are organised by the Kahn categories and by table, field and concept level13.

Data Quality Dashboard overview table showing checks by Kahn category with pass and fail counts
The Dashboard overview groups checks by Kahn category and context, so you can see at a glance where a dataset is weak. Source: OHDSI, The Book of OHDSI, Data Quality · CC0 1.0

Two practical notes. Thresholds are a decision, not a default, so agree them with the people who will use the data. And a failed check can come from the conversion or from the source system itself; the Book of OHDSI is explicit that dashboard findings need that diagnosis before anyone fixes anything1.

Layer 3: unit tests for the ETL

Dashboards find problems after the fact. ETL unit tests stop them getting in. The Book of OHDSI recommends a suite of small tests, each creating a fake source record and asserting what the CDM should contain, typically hundreds of them, re-run whenever the ETL changes1.

This is ordinary software engineering applied to clinical data, and it is the layer most often skipped. In my view it is the most valuable, because mapping mistakes are the ones you can actually prevent.

Layer 4: study-specific checks

General checks say the data is broadly usable. A specific study needs more: confirm the concepts in your cohort definitions appear at plausible rates over time, check that the key exposure fields are populated, and compare cohort prevalence with clinical expectations1. The same logic applies before training a clinical model: check the data for the question you are asking, not just in general.

Making it operational

  1. Run ACHILLES and the Dashboard on every refresh, not once at go-live, and keep the history so trends are visible.
  2. Gate releases on agreed thresholds. A refresh that fails critical checks doesn't reach analysts.
  3. Keep ETL unit tests in CI alongside the conversion code.
  4. Publish a data quality report with each release, so users know the known limitations.
  5. Track mapping coverage: how many source codes map to standard concepts, and which unmapped codes matter most.

This is the quality layer on top of the pipeline I describe in FHIR to OMOP: a practical architecture.

How I can help

I design healthcare data platforms where quality is measured, gated and reported, from ETL tests to dashboards. See healthcare data architecture, or analyse your challenge and bring the result to a call.

References
  1. 1
  2. 2
  3. 3
  4. 4
FAQ

Common questions

What is the Kahn data quality framework?

A harmonised terminology for assessing EHR data quality, published by Kahn and colleagues in 2016. It groups checks into conformance, completeness and plausibility, each assessed by verification against internal expectations or validation against external benchmarks.

What do ACHILLES and the Data Quality Dashboard do?

Both are OHDSI tools that run against an OMOP CDM. ACHILLES pre-computes characterisation analyses to visualise the data, while the Data Quality Dashboard runs rule-based checks organised by the Kahn categories and reports pass or fail against thresholds.

Are data quality dashboards enough on their own?

No. They find problems after conversion. ETL unit tests catch mapping errors in the conversion itself, and study-specific checks confirm the data is fit for a particular question.

Keep reading

Related

Open to advisory, fractional CTO & select builds

Let's talk about what you're building.

The fastest route is a free 30-minute call. Prefer to write? Send a message and I'll reply personally within two business days.

Start a conversation

How would you like to reach me?

Book a 30-min callFastest. Pick any open slot on my calendar.→ Write in GmailOpens a pre-filled draft in your browser.→ Use my email appOutlook, Apple Mail or your default client.→

I reply personally within two business days. US & UAE time zones.