Data Quality Standard Template (ISO/IEC 25012, ODCS)
Organisation DQ standard: ISO/IEC 25012 vocabulary, tiers, rule catalogue, severity, enforcement points, observability, scorecard, issues, waivers
사용법: Use it when you set organisation-wide data quality rules that every data contract and pipeline applies. Fill the roles, the dimension vocabulary and the criticality tiers first, then the rule catalogue. The main pitfall is rating every rule Critical, so failures always block and teams switch tests off.
미리보기
Data Quality Standard: [Organisation name]
Organisation-wide standard for data quality: the dimension vocabulary every team uses, criticality tiers, the rule catalogue format (rule ID, dimension, check, threshold, severity, owner, enforcement point), measurement and the scorecard, data observability signals (freshness, volume, schema, distribution, lineage), issue management and root cause, the roles of data owner, steward and custodian, and how quality rules flow into data contracts and pipelines. The dimension vocabulary is structured on the characteristic names of ISO/IEC 25012:2008 (data quality model) and maps to the quality dimensions of the Bitol Open Data Contract Standard (ODCS) v3.2.0. Replace every
[bracketed]value and every row marked Example.
Document control
| Field | Value |
|---|---|
| Document ID | [STD-DQ-001] |
| Version | [1.0] |
| Status | [Draft / In review / Approved / Superseded] |
| Owner | [@head-of-data-governance] |
| Approvers/reviewers | [@chief-data-officer], [@data-platform-lead], [@domain-data-owners], [@dpo] |
| Last updated | YYYY-MM-DD |
| Next review | YYYY-MM-DD (at least annually, and after any SEV1 data incident) |
| Classification | [Internal] |
| Applies to | [All shared datasets, data products and reports in the analytics platform] |
| Dimension vocabulary basis | ISO/IEC 25012:2008 characteristic names; ODCS v3.2.0 dimension values |
| Related documents | [Data governance operating model], [Data classification policy], [Incident severity matrix] |
Approvals
| Role | Name | Decision | Date |
|---|---|---|---|
| Chief data officer | [@name] | [Approve / Approve with conditions / Reject] | YYYY-MM-DD |
| Data platform lead | [@name] | [Decision] | YYYY-MM-DD |
| Data governance council chair | [@name] | [Decision] | YYYY-MM-DD |
| Data protection officer (privacy dimensions) | [@name] | [Decision] | YYYY-MM-DD |
Revision history
| Version | Date | Author | Change summary |
|---|---|---|---|
| 0.1 | YYYY-MM-DD | [@name] | First draft |
| 1.0 | YYYY-MM-DD | [@name] | Example: Approved by the data governance council |
| 1.1 | YYYY-MM-DD | [@name] | Example: Added the staging uniqueness requirement after data incident DIP-2026-014 |
Contents
- Purpose, scope and principles
- Roles and responsibilities
- Data quality dimension vocabulary
- Criticality tiers and minimum controls
- Rule catalogue
- Severity, thresholds and actions on failure
- Enforcement points
- Data quality in contracts and pipelines
- Data observability signals
- Measurement and scorecard
- Issue management and root cause
- Exceptions and waivers
- Conformance, review and improvement
- Glossary and references
- Standard and licence note
1. Purpose, scope and principles
1.1 Purpose
This standard defines how [Organisation name] specifies, measures, enforces and improves the quality of shared data. It gives every team the same words for quality problems, the same way to write a rule, the same severity levels and the same path from a failed check to a fixed root cause. The goal is that a consumer can tell, before using a dataset, how good it is for the intended use and who to call when it is not.
1.2 Scope
In scope:
- Every dataset published for use outside the producing team: data product output ports, shared marts, semantic models, certified dashboards and extracts sent to partners.
- Every pipeline that produces such a dataset, from ingestion to publication.
- Reference and master data used by those datasets.
Out of scope (covered elsewhere):
- Quality of application databases for their own transactional use (owned by the application team, see Database Design,
architecture/database-design). - Machine learning model quality and evaluation (covered by the AI and ML templates in this library).
- Security classification and handling rules (Data Classification Policy,
data/data-classification-policy).
1.3 Principles
- Fitness for use. Quality is judged against a stated use. A dataset can be excellent for trend analysis and unfit for invoicing. Every rule names the use it protects.
- Measured, not asserted. A quality claim without a rule, a threshold and a result is an opinion. Publish results where consumers can see them.
- Fix at the source. Cleansing downstream hides defects and multiplies cost. Correct the producing process; use downstream repairs only as a declared, temporary measure.
- Prevent before detecting. Contracts, schema enforcement and tests at build time stop defects early. Observability catches what prevention misses; it does not replace it.
- Proportionate controls. Controls scale with criticality (section 4). Tier 3 data does not need Tier 1 ceremony.
- One vocabulary. Teams use the dimension names in section 3, in contracts, test tags, tickets and dashboards.
2. Roles and responsibilities
| Role | Accountable for | Typical holder |
|---|---|---|
| Data owner | Business accountability for a data domain or product: approves quality requirements, accepts residual risk, approves waivers for their data | Business or domain leader |
| Data steward | Defines business rules and thresholds with consumers, triages issues, maintains business definitions and the rule catalogue entries for the domain | Domain analyst or analytics engineer |
| Data custodian | Operates the technical controls: storage, pipelines, test execution, access, backup and recovery; implements rules defined by the steward | Data or platform engineer |
| Data producer | Builds and runs the pipeline or source system that creates the data; fixes defects at the source | Source application team or data engineering team |
| Data consumer | States the intended use and the quality it needs, reports issues, respects published caveats | Analysts, data scientists, downstream products |
| Data quality lead | Owns this standard, the scorecard, tooling standards and the quarterly review | Data governance office |
| Governance council | Approves this standard, tier criteria and policy exceptions above the owner's authority | Cross-domain forum |
2.1 Responsibility matrix
| Activity | Owner | Steward | Custodian | Producer | Consumer | DQ lead |
|---|---|---|---|---|---|---|
| Assign criticality tier | A | R | C | C | C | C |
| Define rule and threshold | A | R | C | C | C | I |
| Implement and schedule check | I | C | A/R | R | I | I |
| Triage a failed rule | I | A/R | R | R | I | I |
| Fix root cause at source | A | C | C | R | I | I |
| Grant waiver | A | R | C | C | I | C |
| Publish scorecard | I | C | R | I | I | A |
| Review this standard | C | C | C | C | C | A/R |
R = responsible, A = accountable, C = consulted, I = informed. Exactly one A per row.
3. Data quality dimension vocabulary
3.1 Characteristic names (ISO/IEC 25012 alignment)
ISO/IEC 25012:2008 groups 15 data quality characteristics under two points of view: inherent (properties of the data itself) and system-dependent (properties that depend on the systems that store and serve the data). Some characteristics belong to both points of view. The table lists the characteristic names only; read the standard for the normative definitions. The "How we use it" column is this organisation's operational guidance, written for this template.
| Characteristic | Point of view | How we use it (operational guidance) | Typical rule types |
|---|---|---|---|
| Accuracy | Inherent | Values match the real-world fact or an authoritative source | Reconciliation to source, reference lookup, sample audit |
| Completeness | Inherent | Required values and expected records are present | Null checks, row count against expectation, coverage of keys |
| Consistency | Inherent | No contradictions within a record, across tables or across systems | Cross-field logic, referential integrity, cross-system totals |
| Credibility | Inherent | Consumers have reason to trust the source and its provenance | Certified source flag, provenance recorded, owner sign-off |
| Currentness | Inherent | Data is recent enough for the decision it supports | Freshness lag, effective-date checks |
| Accessibility | Inherent and system-dependent | Authorised people, including users of assistive technology, can reach and use the data | Catalogue entry, access path documented, accessible report formats |
| Compliance | Inherent and system-dependent | Data follows applicable standards, conventions and regulations | Format standards (ISO 4217, ISO 3166), retention tags, classification labels |
| Confidentiality | Inherent and system-dependent | Only authorised users can access and interpret the data | Masking checks, access reviews, no personal data in open zones |
| Efficiency | Inherent and system-dependent | Data can be processed with acceptable resources | Storage format, partitioning, avoidable duplication |
| Precision | Inherent and system-dependent | Values carry the exactness the use needs | Decimal scale, timestamp granularity, unit checks |
| Traceability | Inherent and system-dependent | Access and changes can be audited and lineage followed | Lineage events present, audit columns, change history |
| Understandability | Inherent and system-dependent | Users can read and interpret values, units and codes | Descriptions present, units stated, code lists published |
| Availability | System-dependent | Data can be retrieved when needed | Query success rate, platform uptime |
| Portability | System-dependent | Data can move between systems without losing quality | Open table formats, export tests |
| Recoverability | System-dependent | Data quality survives failures and can be restored | Snapshot retention, restore tests, replayable ingestion |
3.2 Operational dimensions used in rules
Rules in contracts and tests use a shorter operational set, aligned with the dimension values of the ODCS v3.2.0 quality object. Every rule carries exactly one operational dimension.
| Operational dimension (ODCS value) | Maps to ISO/IEC 25012 characteristic | Use for |
|---|---|---|
accuracy | Accuracy | Reconciliation, reference matching, plausibility of values |
completeness | Completeness | Nulls in required fields, missing records, row volume |
conformity | Compliance, Precision | Format, type, allowed values, code lists, scale |
consistency | Consistency | Cross-field, cross-table and cross-system agreement |
coverage | Completeness | Share of the expected population present (for example all stores, all markets) |
timeliness | Currentness | Freshness lag and on-time delivery against the service level |
uniqueness | Consistency | No duplicate entities at the declared grain |
"Validity" is used informally by many tools. In this organisation, a validity rule is recorded as conformity. "Volume" and "freshness" are observability signals (section 9); when written as rules they are recorded as completeness and timeliness.
4. Criticality tiers and minimum controls
4.1 Tier criteria
| Tier | Criteria (any one is enough) | Example (Example) |
|---|---|---|
| Tier 1 | Feeds external or regulatory reporting, financial close, automated decisions that move money or affect customers, or a certified executive metric | Corvid Commerce "Orders" product, orders output port |
| Tier 2 | Feeds internal decisions made weekly or more often, or more than one domain depends on it | "Checkout" product, fct_checkout_sessions |
| Tier 3 | Exploratory, team-internal or experimental data | Sandbox marts, one-off analyses |
4.2 Minimum controls per tier
| Control | Tier 1 | Tier 2 | Tier 3 |
|---|---|---|---|
Data contract with quality rules (data/data-contract) | Required | Required | Optional |
| Uniqueness rule at the declared grain | Required, Critical | Required, Major | Recommended |
| Completeness rules on critical data elements | Required, Critical | Required, Major | Recommended |
| Reconciliation to the system of record | Required, daily | Recommended | Not required |
| Freshness monitoring against service level | Required, paging | Required, ticket | Optional |
| Volume, schema and distribution monitors | Required | Volume and schema required | Optional |
| Lineage events emitted (OpenLineage) | Required | Required | Recommended |
| Scorecard published | Weekly | Monthly | Not required |
| Postmortem after consumer-impacting incident | Required (SEV1, SEV2) | Required (SEV1, SEV2) | At owner's discretion |
| Named owner, steward and custodian | Required | Required | Owner only |
5. Rule catalogue
5.1 Rule ID convention
Rule IDs use DQ-<DOMAIN>-<NNN>, for example DQ-ORD-001 for the Orders domain. IDs are never reused. A retired rule keeps its ID with status Retired. The same ID appears in the data contract, in the test name or tag, in alerts and in incident tickets, so a failure can be traced end to end.
5.2 Required fields
| Field | Meaning |
|---|---|
| Rule ID | Stable identifier, DQ-<DOMAIN>-<NNN> |
| Dataset and element | Table, column or object the rule applies to |
| Dimension | One operational dimension from section 3.2 |
| Check | What is evaluated, written so a reviewer can implement it without guessing |
| Threshold | The pass condition, with unit and comparison operator |
| Severity | Critical, Major or Minor (section 6) |
| Owner | Steward accountable for the rule |
| Enforcement point | Where the check runs (section 7) |
| Schedule | Every load, hourly, daily or on demand |
| Action on failure | Block, quarantine, warn; who is notified |
| Business impact | One sentence on what goes wrong for consumers |
| Status | Proposed, Active, Waived, Retired |
5.3 Catalogue
| Rule ID | Dataset and element | Dimension | Check | Threshold | Severity | Owner | Enforcement point | Action on failure |
|---|---|---|---|---|---|---|---|---|
| DQ-ORD-001 (Example) | orders.order_id | uniqueness | Count of duplicate order_id values | mustBe: 0 | Critical | [@orders-steward] | EP3 transformation (dbt test) | Block publish; page producer on-call |
| DQ-ORD-002 (Example) | orders.customer_id | completeness | Count of null customer_id | mustBe: 0 | Critical | [@orders-steward] | EP3 transformation | Block publish |
| DQ-ORD-003 (Example) | orders.currency | conformity | Values outside the ISO 4217 code list | mustBe: 0 | Major | [@orders-steward] | EP2 ingestion | Quarantine rows; ticket to producer |
| DQ-ORD-004 (Example) | orders daily net_amount | accuracy | Daily sum compared with the order service ledger | Difference at most 0.1% | Major | [@finance-steward] | EP4 publish (reconciliation job) | Mark day provisional; alert producer |
| DQ-ORD-005 (Example) | orders daily rows | completeness | Daily row count | Between 40,000 and 160,000 | Minor | [@orders-steward] | EP4 publish | Warn; notify consumers channel |
| DQ-ORD-006 (Example) | orders | timeliness | Now minus latest loaded order_ts; implemented as contract service level SLA-ORD-001 (latency), not as a quality rule (section 8.1) | At most 60 minutes | Major | [@orders-custodian] | EP5 observability | Page during business hours; ticket otherwise |
| DQ-ORD-007 (Example) | stg_payments_api__payments.payment_id | uniqueness | Count of duplicate payment_id values in staging | mustBe: 0 | Critical | [@payments-steward] | EP3 transformation | Block downstream models |
| DQ-CHK-001 (Example) | fct_checkout_sessions.session_key | uniqueness | Duplicate session keys | mustBe: 0 | Major | [@checkout-steward] | EP3 transformation | Block publish |
| DQ-CHK-002 (Example) | fct_checkout_sessions | consistency | Sessions with order_completed but no matching row in orders | At most 0.5% per day | Minor | [@checkout-steward] | EP4 publish | Warn |
| [DQ-XXX-nnn] | [dataset.element] | [dimension] | [check] | [threshold] | [severity] | [@owner] | [EPn] | [action] |
Rule DQ-ORD-007 is the staging control added after data incident DIP-2026-014 (see the worked example in Data Incident Postmortem, data/data-incident-postmortem). Duplicates in a source feed are cheaper to stop in staging than to detect in a revenue reconciliation.
5.4 Writing a good rule
- Write the check as a query or test name a reviewer could run.
- Derive thresholds from observed history and from the consumer's tolerance, not from habit. Record the evidence in the rule's change log.
- Prefer zero-tolerance thresholds only where zero is achievable; otherwise the rule fails constantly and is ignored.
- Link every Critical and Major rule to the use it protects (report, metric, decision) in the business impact field.
6. Severity, thresholds and actions on failure
6.1 Rule severity levels
| Severity | Meaning | Default pipeline action | Notification |
|---|---|---|---|
| Critical | Publishing would give consumers wrong numbers for a Tier 1 or Tier 2 use | Stop: do not publish the affected partition; keep the last good version visible | Page the producer on-call any hour for Tier 1; business hours for Tier 2 |
| Major | Data is usable with a caveat, or a subset is wrong | Quarantine failing rows or publish with a provisional flag | Ticket to producer within 1 business day; consumer channel notice |
| Minor | Early warning; no known consumer impact yet | Publish and record | Daily digest |
Rule severity names are not incident levels. The Incident Severity Matrix (ops/incident-severity-matrix) also names SEV1 "Critical", SEV2 "Major" and SEV3 "Minor", but a Critical rule failure is classified separately (section 6.2) and is not automatically SEV1; many Critical failures are stopped at the publish gate and never become incidents. In alerts and tickets, write the rule severity with the word "rule" (for example "Critical rule DQ-ORD-001 failed") and the incident level only as SEV1 to SEV4, so the two scales are never confused.
6.2 From a failed rule to an incident
A failed rule becomes a data incident when wrong, late or missing data has reached a consumer or an automated decision, or is about to. Then classify the incident with the Incident Severity Matrix (ops/incident-severity-matrix), SEV1 (most severe) to SEV4. Each criterion of the matrix is evaluated on its own and the most severe result wins. Data specific examples (Example): corrupted or lost data that cannot be recovered within the recovery point objective, or confirmed unauthorised access to personal or confidential data in an analytics zone, is SEV1 (matrix sections 4.3 and 4.4); wrong figures in a certified metric that can be corrected from intact source records, such as two days of overstated revenue, is SEV2 (section 4.3); a late mart with no data loss is SEV3; a Minor rule trend that has not yet affected anyone is SEV4. Any incident involving personal data is also handled with the Incident Response Plan (compliance/incident-response-plan), which decides on breach notification.
6.3 Threshold setting method
- Profile at least [90] days of history for the measure.
- Agree the consumer tolerance (for example, finance accepts a 0.1% reconciliation difference before close).
- Set the threshold at the tighter of the tolerance and what the process can reliably achieve, and record both values.
- Review thresholds that fail more than [5%] of runs or never fail in [180] days; both are signs the threshold is wrong.
7. Enforcement points
| ID | Enforcement point | What runs there | Typical dimensions |
|---|---|---|---|
| EP1 | Source and producer | Input validation, contract tests in the producer's CI, schema registry compatibility checks | conformity, completeness |
| EP2 | Ingestion | Schema enforcement, type casting with quarantine, deduplication of replayed events | conformity, uniqueness |
| EP3 | Transformation | Tests on models (unique, not null, accepted values, relationships, unit tests), model contracts | uniqueness, completeness, consistency |
| EP4 | Publish gate | Reconciliation, volume ranges, write-audit-publish (stage, test, then expose) | accuracy, completeness, coverage |
| EP5 | Observability | Freshness, volume, schema change and distribution monitors on published data | timeliness, completeness, consistency |
| EP6 | Consumption | Report-level checks, certified dashboard tests, consumer feedback | accuracy, understandability |
Use a write-audit-publish pattern for Tier 1 data: write the new partition or snapshot to a staging location (for example an Apache Iceberg branch or an unpublished snapshot), run the EP4 checks, then publish atomically. Consumers never see a partially checked load.
8. Data quality in contracts and pipelines
8.1 Contracts
Each Tier 1 and Tier 2 dataset has a Data Contract (data/data-contract) that applies this standard to one dataset. In ODCS v3.2.0 terms, rules sit in the quality list of a schema object or property, with dimension, type (text, library, sql or custom), a comparison operator such as mustBe or mustBeBetween, and severity. Use the rule ID as the quality rule id so the contract, the test and the alert share one identifier. Service levels such as freshness and latency go in the contract's service-level section, not in the quality list. The rule catalogue may still list them, as DQ-ORD-006 does, so the scorecard covers timeliness; the catalogue entry then names the contract service level that implements it.
8.2 Pipelines
- The Data Pipeline Specification (
data/data-pipeline-spec) lists the rules each pipeline step enforces and the action on failure. - In dbt projects, follow the dbt Project Standard (
data/dbt-project-standard): every model has a primary key test, staging models test source keys, and tests carry the rule ID as a tag or in their name. - Rules generated from the contract are preferred over hand-written duplicates. If both exist, the contract wins and the duplicate is removed.
- A contract change that tightens a threshold or adds a Critical rule is reviewed by the producer before merge, because it can block their releases.
8.3 Data products
The Data Product Specification (data/data-product-specification) publishes the scorecard and observability status of each output port as part of its management interface, so consumers find quality information where they find the data.
9. Data observability signals
Monitor five signals on every published Tier 1 and Tier 2 dataset.
| Signal | Question it answers | Measure | Default monitor (Example) | Linked dimension |
|---|---|---|---|---|
| Freshness | Is the data as recent as promised? | Lag between now and the latest event or load time | Breach of contract freshness, checked hourly | timeliness |
| Volume | Did the expected amount of data arrive? | Rows or bytes per load or partition | Outside 50% to 200% of the 28-day median for the same weekday | completeness |
| Schema | Did the structure change? | Added, removed, renamed or retyped fields | Any change not announced in the contract change log | conformity |
| Distribution | Do values look like they usually do? | Null rate, distinct count, mean, percentiles, category shares | Null rate change above 5 percentage points; category share shift above 10 points | accuracy, consistency |
| Lineage | What feeds this and what does it feed? | OpenLineage run, job and dataset events with facets | Missing run event for a scheduled job; new unregistered upstream | traceability |
9.1 Lineage
Emit OpenLineage events (specification 2-0-2, as published by the OpenLineage project) from orchestrators and transformation tools. Each run sends a START event and one terminal event (COMPLETE, FAIL or ABORT); datasets carry facets such as the schema, and input datasets can also carry data quality assertions (the assertions facet is defined for inputs only). Lineage is what turns a failed check into a blast-radius list during an incident (see Data Incident Postmortem, data/data-incident-postmortem).
9.2 Alert routing
Route alerts according to the Alerting Policy (ops/alerting-policy): an alert pages a human only when the rule severity and the tier together require it (section 6.1). Every monitor has an owner and a runbook link. Review monitors that fired more than [10] times in a month without action; tune or delete them.
10. Measurement and scorecard
10.1 Method
- Rule pass rate = passed evaluations / total evaluations in the period.
- Rule weight by severity: Critical 3, Major 2, Minor 1.
- Dataset score = sum of (weight x pass rate) / sum of weights, over all active rules.
- Bands (Example) for Tier 1: Green at or above 98.0%, Amber 95.0% to below 98.0%, Red below 95.0%.
- Override: any Critical rule failure that reached consumers in the period makes the dataset Red, whatever the score.
The ISO/IEC 25024:2015 standard defines data quality measures for the ISO/IEC 25012 characteristics. Use it, by clause reference, if you need formally defined measures for audits; the method above is a simpler operational score.
10.2 Worked example: Corvid Commerce orders, 28-day period
Example: period of 28 days, daily evaluation except DQ-ORD-006 (hourly, 28 x 24 = 672 evaluations).
| Rule | Dimension | Severity | Weight | Evaluations | Passed | Pass rate | Weight x pass rate |
|---|---|---|---|---|---|---|---|
| DQ-ORD-001 (Example) | uniqueness | Critical | 3 | 28 | 28 | 100.00% | 3.0000 |
| DQ-ORD-002 (Example) | completeness | Critical | 3 | 28 | 27 | 96.43% | 2.8929 |
| DQ-ORD-003 (Example) | conformity | Major | 2 | 28 | 28 | 100.00% | 2.0000 |
| DQ-ORD-004 (Example) | accuracy | Major | 2 | 28 | 26 | 92.86% | 1.8571 |
| DQ-ORD-005 (Example) | completeness | Minor | 1 | 28 | 27 | 96.43% | 0.9643 |
| DQ-ORD-006 (Example) | timeliness | Major | 2 | 672 | 658 | 97.92% | 1.9583 |
| Total | 13 | 12.6726 |
Dataset score = 12.6726 / 13 = 97.48%, which is Amber for a Tier 1 dataset. The DQ-ORD-002 failure was blocked at the publish gate and did not reach consumers, so the Critical override does not apply. The two DQ-ORD-004 failures were the duplicate payment days investigated in DIP-2026-014.
10.3 Scorecard layout
| Dataset | Tier | Owner | Score | Band | Critical failures reaching consumers | Open issues | Trend vs last period |
|---|---|---|---|---|---|---|---|
orders (Example) | 1 | [@orders-owner] | 97.48% | Amber | 0 | 2 | Down 1.2 points |
fct_checkout_sessions (Example) | 2 | [@checkout-owner] | 99.10% | Green | 0 | 0 | Stable |
| [dataset] | [tier] | [@owner] | [score] | [band] | [count] | [count] | [trend] |
Publish the scorecard in the data catalogue and in the data product's management port. Keep the per-rule detail one click away.
11. Issue management and root cause
11.1 Issue lifecycle
Every issue moves through the states below. Only the steward closes an issue, and only after the rule has passed for the agreed verification period.
11.2 Targets
| Rule severity | Triage within (Example) | Root cause fix planned within (Example) |
|---|---|---|
| Critical | 1 hour (Tier 1), 4 business hours (Tier 2) | 10 business days |
| Major | 1 business day | 30 days |
| Minor | 5 business days | Next quarterly review |
11.3 Issue record
Record for each issue: issue ID (DQI-<YYYY>-<NNN>), rule IDs affected, datasets and periods affected, detection source (rule, monitor, consumer), consumer impact, workaround, root cause category, fix, verification evidence and closure date.
11.4 Root cause categories
Use these categories so the quarterly review can find patterns:
| Category | Examples |
|---|---|
| Source process | Manual entry error, missing validation in the source application, business process change not communicated |
| Source system change | Schema or semantics changed without notice, new code values |
| Ingestion | Replay or retry duplicates, partial loads, timezone conversion |
| Transformation logic | Wrong join grain (fan-out), filter error, late-arriving data handling |
| Reference data | Outdated mapping table, missing code |
| Orchestration and platform | Skipped run, dependency ordering, resource failure |
| Rule gap | No rule existed, threshold too loose, wrong severity, alert misrouted |
| Definition | Producer and consumer understood the field differently |
For root cause analysis, use a causal chain and contributing factors as in Postmortem (dev/postmortem). A rule gap is always recorded in addition to the technical cause, because it explains why the defect was not caught earlier.
12. Exceptions and waivers
- A waiver suspends or relaxes one rule for one dataset for a stated period, at most [90] days, renewable once with council approval.
- The data owner approves waivers for Major and Minor rules; the governance council approves waivers for Critical rules on Tier 1 data.
- Each waiver records the reason, the consumer notice given, a compensating control and the expiry date. Waived rules appear on the scorecard as Waived, not as passing.
| Waiver ID | Rule ID | Dataset | Reason | Compensating control | Approved by | Expires |
|---|---|---|---|---|---|---|
| WVR-2026-003 (Example) | DQ-CHK-002 | fct_checkout_sessions | Marketplace orders arrive up to 48 hours late during migration | Daily manual reconciliation by steward | [@checkout-owner] | YYYY-MM-DD |
| [WVR-YYYY-nnn] | [rule] | [dataset] | [reason] | [control] | [@approver] | YYYY-MM-DD |
13. Conformance, review and improvement
13.1 Conformance evidence
A dataset conforms when, for its tier: the minimum controls in section 4.2 are in place; every Critical and Major rule has an owner, a threshold, an enforcement point and recent results; and open issues are within the targets of section 11.2. Evidence is the contract in version control, test results, monitor configuration, lineage events and the issue log.
13.2 Programme metrics
| Metric | Definition | Target (Example) |
|---|---|---|
| Tier 1 coverage | Share of Tier 1 datasets with all section 4.2 controls | 100% |
| Consumer-detected defects | Share of incidents first reported by a consumer rather than a rule or monitor | Below 20% |
| Time to detect | Median time from defect introduction to detection, Tier 1 | Below 2 hours |
| Repeat root causes | Issues with a root cause category seen in the same dataset within 90 days | Falling quarter on quarter |
| Waivers past expiry | Count of waivers not renewed or closed by expiry | 0 |
13.3 Review
The data quality lead runs a quarterly review with stewards: scorecard trends, repeat root causes, noisy monitors, waivers and rule gaps from postmortems. The standard itself is reviewed at least annually and after every SEV1 data incident.
13.4 Related standards
ISO 8000 is a multi-part series on data quality, including master data exchange and data quality management. Parts such as ISO 8000-1:2022 (overview), ISO 8000-8:2015 (information and data quality concepts and measuring) and ISO 8000-150:2022 (roles and responsibilities framework for data quality management) can inform the roles and processes above. The DAMA-DMBOK (2nd Edition Revised, 2024) has a Data Quality knowledge area that many organisations use for training. Check the current editions before citing them in an audit.
14. Glossary and references
14.1 Glossary
| Term | Meaning in this standard |
|---|---|
| Critical data element (CDE) | A field whose errors have material financial, regulatory or customer impact |
| Data contract | Agreement between a producer and consumers on schema, quality and service levels for one dataset |
| Data incident | Wrong, late, missing or exposed data that reached or threatened consumers or decisions |
| Data observability | Automated monitoring of freshness, volume, schema, distribution and lineage of data |
| Enforcement point | The pipeline stage where a rule is evaluated (EP1 to EP6) |
| Rule severity | Critical, Major or Minor: what the pipeline does when a rule fails |
| Incident severity | SEV1 to SEV4: how serious an incident is, per the Incident Severity Matrix |
| Write-audit-publish | Load to an unexposed location, test, then publish atomically |
| Waiver | Approved, time-limited relaxation of one rule for one dataset |
14.2 References
| Reference | Version or date checked | Use |
|---|---|---|
| ISO/IEC 25012:2008, Software engineering, SQuaRE, Data quality model, iso.org/standard/35736.html | Edition 2008, checked 2026-10-24 | Characteristic names and points of view (names only) |
| ISO/IEC 25024:2015, Measurement of data quality, iso.org/standard/35749.html | Edition 2015, checked 2026-10-24 | Pointer to formal measures (cited only) |
| ISO 8000-1:2022, ISO 8000-8:2015, ISO 8000-150:2022, Data quality series | Editions as listed, checked 2026-10-24 | Related standards (names only) |
| Bitol Open Data Contract Standard (ODCS) v3.2.0, github.com/bitol-io/open-data-contract-standard | Released 2026-09-08, Apache-2.0 | Quality object fields and dimension values |
| OpenLineage specification 2-0-2, openlineage.io | Project release 1.54.0, 2026-10-13, Apache-2.0 | Run, job, dataset and facet concepts for lineage |
| DAMA-DMBOK, 2nd Edition Revised, DAMA International | 2024 | Knowledge area name only |
| [Internal: incident severity matrix, alerting policy] | [Version] | Incident severity and alert routing |
Standard and licence note
Structure aligned with the data quality model of ISO/IEC 25012:2008 (characteristic names and the inherent and system-dependent points of view only), with pointers to ISO/IEC 25024:2015 and the ISO 8000 series by name. Based on the Bitol Open Data Contract Standard (ODCS) v3.2.0 (Apache-2.0, github.com/bitol-io/open-data-contract-standard) for the quality rule fields and dimension values, and on the OpenLineage specification 2-0-2 (Apache-2.0, openlineage.io) for lineage concepts. No ISO text, definition or table and no DAMA-DMBOK content is reproduced; the operational guidance is original text written for this collection. Corvid Commerce is fictional. Check the current official versions of the standards and specifications before use. Template licence: MIT.
관련 템플릿
Data Retention and Deletion Standard Template (GDPR Art. 17, SP 800-88)
Retention rule method, deletion classes, standard periods, deletion per store (OLTP, Iceberg, Delta, search, logs, ML, backups), erasure propagation, evidence, sanitisation
데이터 엔지니어링 및 거버넌스dbt Project Standard Template (Analytics Engineering)
Layers and folder layout, naming, sources and freshness, tests, contracts, versions, groups and access, docs, macros, environments, slim CI, review checklist, cost guardrails
데이터 엔지니어링 및 거버넌스Analytics Tracking Plan Template (Privacy-First, JSON Schema, GPC)
Privacy-first tracking plan: tiers, object_action naming, events, property dictionary, JSON Schema 2020-12, SchemaVer, consent and GPC gating, PII rules, QA