Data Quality Service · View 10 of 20 · Data
The load-bearing key
- verdict.version_id binds a judgement to an immutable dataset version rather than to a pipeline run. Without it, corruption_window and retroactive verdicts are not expressible at all (ADR-01).
- verdict also carries assertion_ver_id, so a verdict names both what was judged and the exact rule that judged it — which is what makes a revised rule a new verdict rather than an edit.
- override and debt_item are one-to-one on purpose: granting an escape hatch creates a debt record in the same transaction, so there is no way to have the first without the second (ADR-16).
Assumptions
- dataset_state is keyed by dataset and partition, not by dataset alone — partition-level state is what makes a late partition distinguishable from a broken table.
- verdict rows are immutable; a revised judgement supersedes rather than updates, and both remain readable.
Risks
- suspect_mark.cleared_ts is nullable and manual. An uncleared backlog of marks is the failure mode that makes the mark meaningless (ADR-11).
- sample_fraction on verdict exists so a sampled pass is never read as a full-scan pass. If a consumer ignores it, the field is decoration.