---
title: "How to Fix Data Quality Problems at the Source with Governance"
url: "https://atlan.com/know/data-governance/how-to-fix-data-quality-problems-at-the-source-with-governance/"
description: "How to fix data quality problems at the source with governance: name an owner where data is made, write a data contract, enforce rules at the point of entry."
author: "Emily Winks"
author_role: "Data Governance Expert"
published: "2026-10-28"
updated: "2026-10-28T00:00:00.000Z"
---

> Atlan is hosting Context Conference, bringing together the leaders and builders at the frontier of giving AI the context it needs to understand their business. It runs online on October 28, 2026, from 11:00 AM to 2:00 PM ET. Atlan co-founder Prukalpa Sankar opens and closes the day. Leaders from AstraZeneca, BNY and Verizon share why they invest in context and what they get from it. Registrants get early access to The AI Context Gap, a new study from MIT Technology Review Insights. Register: https://atlan.com/context-conference/

## How to fix data quality problems at the source with governance?

To fix data quality problems at the source with governance, give each critical dataset a named owner in the team that produces it, and write what good data looks like into a data contract. Enforce those rules where data enters, so a bad record is rejected or flagged before it reaches the warehouse. When a check fails, trace the record upstream and change the process that created it, instead of patching the copy downstream.

## Key takeaways

- A downstream fix corrects one copy of the data.
- The team that produces the data owns its quality.
- A contract has effect only when a tool checks it.
- Run each rule at the earliest point that can see the error.

---

To fix data quality problems at the source with governance, give each critical dataset a named owner in the team that produces it, and write what good data looks like into a [data contract](https://atlan.com/know/ai-agent/data-for-ai/data-contracts-for-ai/). Enforce those rules where data enters, so a bad record is rejected or flagged before it reaches the warehouse. When a check fails, [trace the record upstream](https://atlan.com/know/ai-agent/data-for-ai/data-lineage-for-ai/) and change the process that created it, instead of patching the copy downstream.

### Choose Your Data Quality KPIs

Give it one governance objective, such as fixing quality at the source, and what you can measure today. It returns three or four KPIs, a baseline plan, and what a miss should send you to check. [Read the skill](/skills/governance-metrics-baseline.md).

*Paste into a new chat*

```
Use the skill at https://atlan.com/skills/governance-metrics-baseline.md to choose data quality KPIs and a baseline for our governance program. Ask me for whatever it needs.
```

*Run once in a terminal*

```
curl -fsSL --create-dirs \
  -o ~/.agents/skills/governance-metrics-baseline/SKILL.md \
  https://atlan.com/skills/governance-metrics-baseline.md
```

*For an agent*

```
curl -fsSL https://atlan.com/skills/governance-metrics-baseline.md
```


    Human
    Agent


  ClaudeChatGPTGeminiCursorOther
  Copy

---

## Why do data quality issues keep coming back after downstream fixes?

A downstream fix corrects one copy of the data. The process that produced the error keeps running, so the error returns with the next load.

The UK government's [Government Data Quality Framework](https://www.gov.uk/government/publications/the-government-data-quality-framework/the-government-data-quality-framework), published in December 2020, names the pattern directly: "the symptoms are often treated instead of the cause." Its fifth principle asks teams to anticipate changes and address issues at their source. Thomas Redman, writing in [MIT Sloan Management Review](https://sloanreview.mit.edu/article/seizing-opportunity-in-data-quality/) in 2017, put the [cost of bad data](https://atlan.com/know/data-for-ai/data-quality-for-ai-agent/) at 15% to 25% of revenue for most companies, and argued that fewer errors come from finding and eliminating root causes.

Source errors carry legal cost too. In March 2022, Equifax found a coding error that sent lenders inaccurate data for about three weeks. The [New York Attorney General's settlement](https://ag.ny.gov/press-release/2025/attorney-general-james-secures-725000-equifax-harming-consumers-through) of January 2025 says over 77,000 New Yorkers had their scores wrongly lowered. Equifax must pay $725,000 and review customer incident reports at least weekly.

Every problem has a point of origin, such as a form without validation or an untested code change. For a list of the common problems and the cleanup methods for each, see [data quality problems and how to fix them](https://atlan.com/data-quality-problems/). This page covers the governance that stops them from recurring.

---

## What does fixing data quality at the source mean?

Fixing at the source means you correct the process that creates or first changes the data. The [GOV.UK framework guidance](https://www.gov.uk/government/publications/the-government-data-quality-framework/the-government-data-quality-framework-guidance) says to "fix as close to source as possible." It accepts a short-term fix downstream, on condition that the fix moves closer to the source over time.

| | Downstream cleanup | Fix at the source |
|---|---|---|
| Where the fix runs | Warehouse, report or spreadsheet | Application, ingestion step or [producing team's pipeline](https://atlan.com/know/data-for-ai/data-pipeline-for-ai/) |
| Who makes the fix | Analyst or data engineer who found the problem | Owner of the system or team that made the data |
| What happens on the next load | The same error arrives again | The record is rejected, quarantined or flagged at entry |

"Source" is not always the operational application. For many teams it is the first point they control, such as the ingestion job for a vendor feed. Ask where the error first became possible, and put the control there.

Governance makes this repeatable: an owner is accountable for the upstream change, [a written standard says what "correct" is](https://atlan.com/know/data-governance/why-should-data-governance-rules-be-readable-by-ai-agents/), and [an automatic check](https://atlan.com/know/ai-agent/ai-agent-evals/context-evals-vs-data-quality-testing/) means nobody has to remember the fix.

---

## Who owns a data quality problem at the source?

The team that produces the data owns its quality. Consumers find most problems, but only producers can change the process that caused them.

| Role | Accountable for | Typical action when a rule fails |
|---|---|---|
| Data owner | Business accountability for a dataset; approves its standards and exceptions | Decides priority and accepts the fix |
| [Data steward](https://atlan.com/know/ai-agent/context-layer-for-data-governance-teams/) | Daily quality work: rules, [definitions](https://atlan.com/know/ai-agent/how-to-manage-kpi-definitions-and-a-business-glossary-in-a-data-catalog/), triage | Investigates, traces upstream, documents the cause |
| Data producer (engineer or application team) | The pipeline or system that creates the data | Changes validation, mapping or code at the source |
| Data consumer | Reporting what breaks, and saying what "fit for purpose" means for their use | Raises the issue with the owner, not a local workaround |

The [GOV.UK guidance](https://www.gov.uk/government/publications/the-government-data-quality-framework/the-government-data-quality-framework-guidance) addresses its action plans to the data owners and managers responsible for actively managing datasets, and asks organizations to set a [data ownership policy](https://atlan.com/know/data-governance/how-to-scale-data-governance-across-business-domains/) that assigns responsibility for [metadata](https://atlan.com/know/ai-agent/data-for-ai/metadata-management-for-ai/). Training the staff who enter data is a source fix too.

[Ownership fails](https://atlan.com/know/ai-agent/ai-agent-governance/why-data-governance-implementations-fail/) when the owner is a name on a spreadsheet and alerts go to a channel nobody reads. [Record ownership on the asset](https://atlan.com/what-is-a-data-catalog/), so a failed rule finds its owner. For how ownership relates to quality controls, see [data quality vs data governance](https://atlan.com/data-quality-vs-data-governance/).

---

## How do data contracts stop bad data at the source?

A data contract is a written agreement between the producer of a dataset and its consumers. It states the schema, [the meaning of each field](https://atlan.com/know/semantic-layer/), the quality rules, and the [freshness](https://atlan.com/know/ai-agent/data-for-ai/data-observability-for-ai-pipelines/) the producer commits to. Because the producer signs it, the contract puts the quality obligation where the data is made.

The [Open Data Contract Standard](https://bitol-io.github.io/open-data-contract-standard/latest/) (ODCS) is an open YAML format for these agreements. It is maintained by [Bitol](https://bitol.io/bitol-graduates/), a graduated Linux Foundation AI & Data project. An ODCS contract has sections for the schema, data quality, the service-level agreement, the team, roles, and support channels. That gives the contract a place to name the owner and the escalation path, not only the columns.

A contract has effect only when a tool checks it. If your transformations run in [dbt](https://atlan.com/dbt-semantic-layer/), an enforced [model contract](https://docs.getdbt.com/docs/mesh/govern/model-contracts) checks that the model returns the declared column names and data types. If it does not, the model does not build, and the bad shape never reaches downstream tables. The same page shows a limit you must plan for: on [Snowflake](https://atlan.com/know/context-layer-for-snowflake/) and Redshift, dbt enforces `not_null`, while `primary_key`, `foreign_key` and `unique` are recorded but not enforced. Uniqueness and value rules need a separate check.

Keep contracts in version control next to the producer's code, so a schema change goes through review before it ships. For contract design patterns and rollout, see [data contracts explained](https://atlan.com/data-contracts/).

---

## Where should data quality rules run, from point of entry to warehouse?

Run each rule at the earliest point that can see the error. Some rules can run at the application. Others need data from several systems and can only run in the pipeline or the warehouse. Use more than one layer, and put the strictest action closest to the source.

| Enforcement point | Example mechanism | What happens to a bad record |
|---|---|---|
| Application database | A PostgreSQL [check constraint](https://www.postgresql.org/docs/current/ddl-constraints.html) requires a column to satisfy a Boolean expression | The insert raises an error and the row is not stored |
| [Ingestion pipeline](https://atlan.com/know/ai-agent/data-for-ai/etl-vs-elt-for-ai/) | Azure Databricks [pipeline expectations](https://learn.microsoft.com/en-us/azure/databricks/ldp/expectations) with `expect`, `expect_or_drop` or `expect_or_fail` | Kept with a metric, dropped, or the update fails and needs manual intervention |
| Transformation | An enforced dbt [model contract](https://docs.getdbt.com/docs/mesh/govern/model-contracts) | The model does not build |
| [Warehouse monitor](https://atlan.com/know/how-to-implement-data-observability-for-ai/) | Snowflake [data metric functions](https://docs.snowflake.com/en/user-guide/data-quality-intro) combined with an expectation | A violation is reported; the default schedule runs each check once an hour |

In Azure Databricks, [`warn` is the default action](https://learn.microsoft.com/en-us/azure/databricks/ldp/expectations), so a pipeline keeps invalid records unless you choose `drop` or `fail`. In Snowflake, [data quality monitoring](https://atlan.com/know/ai-agent/ai-agent-observability/context-observability-vs-data-observability-vs-llm-observability/) requires [Enterprise Edition](https://docs.snowflake.com/en/user-guide/data-quality-intro), and a data metric function only measures. The expectation decides what counts as a failure.

Quarantine is the middle path between dropping a record and failing the load. Write failing records to a separate table, keep the load running, and send those rows to the producer, who then sees each error with its input values.

---

## How do you run root cause analysis when a data quality rule fails?

[Root cause analysis](https://atlan.com/know/mcp/data-lineage-rca-with-mcp/) finds the step that let the error in, and the fix changes that step. The [GOV.UK guidance](https://www.gov.uk/government/publications/the-government-data-quality-framework/the-government-data-quality-framework-guidance) gives this root cause sequence:

1. Log each problem with a severity, and report the most serious ones to senior managers.
2. [Map the data journey](https://atlan.com/know/ai-agent/data-for-ai/automated-sql-lineage-vs-manual-lineage-mapping/) to find where the error starts. [Lineage from the report back to the source system](https://atlan.com/know/ai-readiness/ai-ready-data-lineage/) makes this a lookup.
3. Estimate the cost of fixing the problem and the cost of leaving it.
4. Fix as close to the source as possible, and accept a temporary downstream fix only with a plan to move it upstream.
5. Ask "Is it correct for its original purpose?" The guidance notes that "as data moves through the system the use of data can change."
6. Monitor the data over time to confirm the fix holds.

Then close the loop. Add the rule that should have caught the error, and record the cause and the fix on the dataset, so the next person who sees the symptom finds the history.

Prioritize first. The same guidance starts its action plan with the critical data that decisions depend on. Its rules measure six [dimensions](https://www.gov.uk/government/publications/the-government-data-quality-framework/the-government-data-quality-framework): [completeness, uniqueness, consistency, timeliness, validity and accuracy](https://atlan.com/know/data-governance/what-are-common-data-quality-use-cases-and-where-does-governance-fit/). A timeliness rule might require entry within two days of collection.

---

## How does Atlan help fix data quality problems at the source?

Atlan puts the owner, the contract, the rules and the alerts on the same asset, so a failed check reaches the team that can fix the source.

Contracts live on the asset. Atlan's [data contracts](https://docs.atlan.com/product/capabilities/governance/contracts/how-tos/create-data-contracts), labeled Private Preview in its docs, use a YAML template that carries the asset's owners, description, terms, [tags](https://atlan.com/know/ai-agent/ai-agent-governance/data-governance-taxonomy/) and column definitions. A producer can create one from the asset's Contracts tab, or import it with the Atlan CLI from a CI/CD pipeline.

Rules run where the data lives. On [Snowflake](https://atlan.com/know/snowflake/atlan-snowflake-architecture/), Atlan's [Data Quality Studio](https://docs.atlan.com/product/capabilities/governance/data-quality/snowflake) monitors assets using Snowflake's native data metric functions. Atlan's [setup page for Snowflake data metric functions](https://docs.atlan.com/apps/connectors/data-warehouses/snowflake/how-tos/configure-snowflake-data-metric-functions) labels the feature Private Preview.

Alerts find the owner. With [notification routing](https://docs.atlan.com/product/capabilities/governance/data-quality/concepts/notification-routing), a rule failure goes to the configuration scoped to the asset's owners, in Slack, Microsoft Teams, Jira or ServiceNow. If the asset has no owner, owner routes are skipped and the alert goes to other matching routes or the default channel, so assign owners before you write rules.

Autodesk shows the producer side of this model. Its [data mesh](https://atlan.com/know/ai-agent/data-for-ai/data-mesh-and-ai/) lets any team [publish its own data](https://atlan.com/data-marketplace-vs-data-catalog/), and with Atlan [60 domain teams now have full visibility into the consumption of their data products](https://atlan.com/customers/autodesk-data-mesh-snowflake-atlan/). Mark Kidwell, Chief Data Architect, Data Platforms and Services, described the change: "We would have to move from teams that were simply ingesting data, and toward teams that were thoughtfully publishing data on the platform and thinking about what it meant to their consumers to have these data."

---

## FAQs about fixing data quality problems at the source with governance

### What is the difference between data cleansing and fixing data quality at the source?

Data cleansing corrects records after they land, usually in a warehouse or report. Fixing at the source changes the process that created the error, such as a form, an integration mapping or a pipeline step. Cleansing has to run again on every load. A source fix stops the error, so later loads arrive correct and the cleanup job can retire.

### Who should own data quality, the data producer or the data consumer?

The producer owns quality, because only the producer can change the process that creates the data. Consumers define what "fit for purpose" means for their use and report failures. Governance connects the two: the owner is recorded on the dataset, the consumer's requirement is written into a contract, and a failed rule alerts the owner directly.

### What if you cannot change the source system?

Put the control at the first point you do control, usually ingestion. Validate there, quarantine failing records, and send them to the supplier with their input values. The GOV.UK guidance accepts a temporary downstream fix, on condition that it moves closer to the source over time.

### How do you measure whether source fixes are working?

Track the share of critical datasets with a named owner and a written rule set, and the share of failures caught at entry instead of in reports. Add time to detect, time to resolve at the source, and how often the same problem returns. A falling repeat rate is the clearest sign that fixes are landing upstream.

---

## Sources

1. [The Government Data Quality Framework, GOV.UK](https://www.gov.uk/government/publications/the-government-data-quality-framework/the-government-data-quality-framework)
2. [Seizing Opportunity in Data Quality, MIT Sloan Management Review](https://sloanreview.mit.edu/article/seizing-opportunity-in-data-quality/)
3. [Attorney General James Secures $725,000 from Equifax, New York State Attorney General](https://ag.ny.gov/press-release/2025/attorney-general-james-secures-725000-equifax-harming-consumers-through)
4. [The Government Data Quality Framework: Guidance, GOV.UK](https://www.gov.uk/government/publications/the-government-data-quality-framework/the-government-data-quality-framework-guidance)
5. [Definition: Open Data Contract Standard (ODCS), Bitol](https://bitol-io.github.io/open-data-contract-standard/latest/)
6. [Three Years, 59 RFCs, One Vote: Bitol Graduates, Bitol](https://bitol.io/bitol-graduates/)
7. [Model contracts, dbt Developer Hub](https://docs.getdbt.com/docs/mesh/govern/model-contracts)
8. [Constraints, PostgreSQL Documentation](https://www.postgresql.org/docs/current/ddl-constraints.html)
9. [Manage data quality with pipeline expectations, Azure Databricks, Microsoft Learn](https://learn.microsoft.com/en-us/azure/databricks/ldp/expectations)
10. [Introduction to data quality checks, Snowflake Documentation](https://docs.snowflake.com/en/user-guide/data-quality-intro)