The dimensions of quality
Talking about "clean data" without saying which property is meant leads to misplaced effort: hours spent filling empty cells while the real defect lies elsewhere.
| Dimension | The question it answers | Fixable afterwards? |
|---|---|---|
| Accuracy | Does the value match what was observed? | Rarely — it means going back to the source record |
| Completeness | Is what is missing documented as missing? | No — untraced absence stays ambiguous |
| Consistency | Do linked variables contradict each other? | Yes, partly |
| Conformity | Are format, type and unit respected? | Yes |
| Traceability | Is the origin of the value known? | No — it is lost for good |
| Currency | Does the value correspond to the right date? | No, if the date was never captured |
Quality is produced before capture
The common reflex is to collect first and clean later. That is the most expensive order, and the one producing the least defensible datasets: cleaning after the fact means guessing what the author meant, months later.
What is decided in advance
- Type and scale — an integer does not accept "moderate", an ordinal variable does not accept a mean.
- The unit — declared, normalised per UCUM, therefore convertible without ambiguity.
- Bounds — two distinct levels: the possible (beyond it, refusal) and the plausible (beyond it, a warning).
- Categories — a closed list, so that "HTN", "htn" and "hypertension" do not become three groups.
- Permitted reasons for absence — the difference between not sought, sought and not found, and not applicable.
All of this is the content of the data dictionary, and it is why the dictionary precedes capture rather than documenting it.
The controls that actually help
Possible and plausible bounds, kept separate
An age of 210 is impossible and must be refused. An age of 103 is improbable but real: refusing it would discard a true value. Conflating the two levels produces either wrongful refusals or accepted absurdities.
Consistency between linked variables
A discharge date before the admission date, a metastatic stage with no metastatic site recorded, a grade 4 complication with a two-day stay: these contradictions are caught by rule, not by rereading.
Completeness per variable, not overall
An overall fill rate of 94% can hide a variable completed at 30% — and if that is the primary endpoint, the study is compromised while the headline indicator looks excellent.
Human review of adjudicated cases
Automatic checks catch the impossible. They do not catch the plausible-and-wrong. Only record-by-record review does, and it should be concentrated where judgement was required — which provenance makes knowable.
How AnzarSeha addresses it
- Typing, units and bounds live in the dictionary generated when the study is created, so they are active from the first entry.
- Possible bounds refuse the value; plausible bounds let it through with a warning that is kept.
- Reasons for absence are a closed list, specific to each variable, and each carries its analytical consequence.
- The export includes a missing-value table: what is missing, for which declared reason, variable by variable.
- Every value carries its origin, which allows review to target the cases that required judgement.
What gets reported in a publication
Data quality is not only internal housekeeping: STROBE expects an observational paper to describe how variables were measured, how missing data were handled, and what was done to limit information bias.
- The number of records eligible, included and excluded, with reasons.
- For each variable of interest, the proportion of missing values and the handling method chosen.
- The source of each main variable: measured, computed, extracted from a report.
- The validation rules applied and how many values they rejected.
A dataset managed as described above yields these figures with no extra work. A dataset managed in a spreadsheet forces them to be reconstructed, often from memory.
Frequent questions
Should missing values be imputed?
That is a statistical decision, not a data management one. What data management must supply is the basis for making it: the missing rate per variable and the declared reason for each absence. Imputing without knowing the missingness mechanism amounts to inventing data.
Is a 100% completeness rate a good sign?
Not necessarily. Perfect completeness in a retrospective cohort often signals that a default value was entered where information was absent — which is worse than an empty cell, because it is undetectable.
When does quality control stop?
When remaining discrepancies have been examined and documented, and before the database freeze. After the freeze, correcting a value stays possible but requires a reasoned reopening, recorded in the log.