# Measuring data qualitydata qualityThe degree to which data is fit for purpose: accurate, complete, consistent, timely, valid and unique. Poor quality data undermines analytics, reporting and AI.View full definition → with sector-specific metrics
A trial coordinator uploads 4,200 oncology patient records. On paper it looks complete. But 38 percent of tumor stage fields are blank, some HER2 statuses read "positve," and one patient has a documented weight of 6 kilograms. Before a single model runs, this dataset is already lying to you.
This lesson gives you a repeatable way to catch those lies. We use three data-quality dimensions the biomedical world actually relies on (completeness, conformance, and plausibility) and score a messy oncology dataset for analytics readiness.
Oncology data is messy for structural reasons, not just carelessness.
The consequence: you cannot trust a dataset because it "has all the columns." You measure it.
These three come directly from the widely cited Kahn framework for EHR data qualitydata qualityThe degree to which data is fit for purpose: accurate, complete, consistent, timely, valid and unique. Poor quality data undermines analytics, reporting and AI.View full definition →, adopted by research networks like OHDSI (Observational Health Data Sciences and Informatics). See the open-access paper on harmonized data quality assessment terminology.
Are values present where they should be? A field can be absent (never collected) or missing (expected but blank). These are different problems.
Do values follow the required format, type, and vocabulary? A HER2 field should hold a controlled value ("Positive," "Negative," "Equivocal"), not "positve" or "3+ maybe."
Are values believable given clinical reality? An adult patient weighing 6 kg fails plausibility even though the field is present and numeric.
A record can pass one dimension and fail another. That is the whole point of measuring them separately.
Let's work a concrete example. Our dataset: 4,200 breast cancer records with these key fields.
| Field | Issue found |
|---|---|
| tumor_stage | 38% blank |
| her2_status | free-text typos, 12% non-conforming |
| patient_weight_kg | 3% implausible values |
| diagnosis_date | 1% after death_date |
Completeness for one field:
completeness = (records with a valid non-null value) / (records where value is expected)For tumor_stage: 62 percent of 4,200 records have a value.
completeness(tumor_stage) = 2,604 / 4,200 = 0.62That is 62 percent. Below most analytics thresholds (research networks often target 90 percent or higher for core clinical variables, though there is no single universal standard).
But be careful: some blanks are legitimately "not applicable." For a patient whose cancer was caught pre-invasive, a full stage may not apply. So split completeness into "expected but missing" (a real problem) versus "not applicable" (fine). If 400 of those blanks are genuinely not applicable:
adjusted completeness = 2,604 / (4,200 - 400) = 2,604 / 3,800 = 0.685Now 68.5 percent. Still weak, but honest.
her2_status should mapmapUsing software to automate repetitive marketing tasks and campaigns, enabling personalisation at scale across channels like email, web, and social.View full definition → to a controlled vocabulary. Twelve percent fail.
conformance(her2_status) = (4,200 - 504) / 4,200 = 3,696 / 4,200 = 0.8888 percent. The 504 non-conforming records are often recoverable: "positve," "POS," and "positive" can be normalized to one canonical value. Conformance failures are frequently the cheapest to fix because they are mechanical.
Two checks here:
patient_weight_kg between roughly 30 and 250 for adults. 3 percent fail.diagnosis_date must precede death_date. 1 percent fail.plausibility(weight) = (4,200 - 126) / 4,200 = 0.97
plausibility(date_logic) = (4,200 - 42) / 4,200 = 0.99Weight plausibility is 97 percent, date logic 99 percent. The date failures are red flags: they usually signal a data merge error, not a real outlier.
You do not average blindly. Weight the fields by how much your downstream analytics need them.
Suppose you are building a model to predict treatment response, and tumor_stage and her2_status are essential predictors. A field-level score of 68.5 percent completeness on tumor_stage is a blocker, not a footnote. No amount of clean weight data compensates for a missing key predictor.
A simple readiness rubric:
Our dataset is Red, driven by tumor_stage completeness. The her2 conformance issue is Amber (mechanically fixable). The date-logic failures need investigation before anything else, because they hint the merge itself is faulty.
That verdict is the deliverable. "Red because of stage completeness and unresolved date-logic errors" is far more useful than a single blended percentage that hides the fatal flaw.
🎬 [VIDEO: "Data QualityData QualityThe degree to which data is fit for purpose: accurate, complete, consistent, timely, valid and unique. Poor quality data undermines analytics, reporting and AI.View full definition → in Healthcare: The OHDSI Data QualityData QualityThe degree to which data is fit for purpose: accurate, complete, consistent, timely, valid and unique. Poor quality data undermines analytics, reporting and AI.View full definition → Dashboard" - youtube.com - walkthrough of an open-source tool that runs thousands of automated conformance and plausibility checks on health data]
Knowledge check
1. A tumor stage field is blank because the biomarker result had not yet arrived at the time of data extraction, while another field was never captured by the source system at all. Which distinction does this illustrate?
2. A HER2 status field contains the entry "positve" instead of "positive." Which data-quality dimension does this failure primarily violate?
3. A patient record lists a documented adult weight of 6 kilograms. All required fields are filled and the value is a properly formatted number. Why does this record still fail a data-quality check?
4. Select ALL correct answers. Why does oncology data tend to break in predictable, structural ways rather than through simple carelessness?
Select all the correct answers.
5. Select ALL correct answers. What reasoning does the lesson use to justify measuring data quality rather than trusting a dataset that appears complete?
Select all the correct answers.
You would not eyeball 4,200 records. Here is the logic of a minimal conformance and plausibility check in Python-style pseudocode.
VALID_HER2 = {"Positive", "Negative", "Equivocal"}
def score_record(r):
flags = []
# Conformance
if r["her2_status"] not in VALID_HER2:
flags.append("her2_nonconform")
# Plausibility: range
if not (30 <= r["patient_weight_kg"] <= 250):
flags.append("weight_implausible")
# Plausibility: temporal logic
if r["diagnosis_date"] > r["death_date"]:
flags.append("date_logic_fail")
return flagsRun this across the dataset, count flags per rule, and you have field-level dimension scores automatically. Tools like the OHDSI Data Quality Dashboard do exactly this at scale, running thousands of checks against a standardized data model.
A few reference points for 2026, all to be treated as context, not hard rules:
There is no single legally mandated completeness percentage. What regulators require is that you document your quality assessment and your handling of defects. A transparent Amber is defensible. A hidden Red is not.
The same three dimensions apply to device-generated data (a continuous glucose monitor, an infusion pump log).
For high-frequency device data, plausibility often becomes the dominant concern, because sensors produce present, well-formatted, but physiologically impossible values.
tumor_stage (an essential predictor) makes the dataset Red regardless of how clean everything else is.diagnosis_date after death_date usually signals a broken data merge.