> For the complete documentation index, see [llms.txt](https://docs.soda.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.soda.io/data-testing/data-standards.md).

# Data Standards

{% hint style="success" icon="database" %}
Data Standards are currently available as a **preview** feature. Contact <support@soda.io> for early access.
{% endhint %}

## What is a Data Standard?

A **Data Standard** is a **reusable set of data quality checks** that you write **once** and deploy across **many datasets** at the same time.

Where a Data Contract describes the expectations for a *single* dataset, a Data Standard expresses an expectation that should hold *everywhere* a rule applies, for example: "every dataset that contains an `email` column must have valid, non-missing email addresses," or "every table in the `finance` schema must have a passing `schema` and `row_count` check."

Data Standards are how teams enforce **organization-wide data quality governance** without authoring and maintaining a separate contract for every dataset. You define the rule centrally, target the datasets it should apply to, and Soda keeps it enforced as your data landscape grows.

<figure><img src="/files/YPjXIlLcvoaXAXGKjSDJ" alt=""><figcaption><p>The Data Standards overview, listing each standard with its owner, matched datasets, check results, compliance, and status.</p></figcaption></figure>

{% hint style="info" %}
**Data Standards reuse the same check engine and YAML check language as Data Contracts.**

If you already know how to write contract checks, you already know how to write a Data Standard: the checks (`missing`, `invalid`, `duplicate`, `schema`, `row_count`, `freshness`, and so on) are identical.
{% endhint %}

## Data Standards vs. Data Contracts

Data Standards and Data Contracts are complementary. They share the same check language but solve different problems.

| Data Standard                                                         | Data Contract                                            |
| --------------------------------------------------------------------- | -------------------------------------------------------- |
| One expectation that should hold in all datasets it applies           | A tailored agreement for the expectations in one dataset |
| Written once, deployed across a fleet                                 | Written per dataset                                      |
| Scope: many datasets at once, selected by a rule                      | Scope: a single dataset                                  |
| When onboarding, matching datasets inherit the standard automatically | Suitable for new datasets that need their own contract   |
| Best for organization-wide governance enforced consistently at scale  | Best for a dataset that deserves its own bespoke rules   |

<table><thead><tr><th width="153">Aspect</th><th>Data Standard</th><th>Data Contract</th></tr></thead><tbody><tr><td><strong>Scope</strong></td><td>Many datasets at once, selected by a scope rule</td><td>A single, specific dataset</td></tr><tr><td><strong>Intent</strong></td><td>Enforce a quality rule in <em>all datasets</em> it applies</td><td>Define what "good data" means for <em>this</em> dataset</td></tr><tr><td><strong>Authored by</strong></td><td>Data governance / platform teams setting org-wide policy</td><td>The team that owns the dataset</td></tr><tr><td><strong>Identity</strong></td><td>Named rule that fans out to every matching dataset</td><td>Bound to one dataset's fully qualified name</td></tr><tr><td><strong>Typical use</strong></td><td><ul><li>"All PII columns must be valid", "every table must pass schema"</li><li>Matching datasets inherit a standard automatically</li></ul></td><td><ul><li>Producer/consumer agreement on a key table</li><li>A new dataset needs its own tailored contract</li></ul></td></tr></tbody></table>

Use a **Data Contract** when a dataset deserves its own tailored agreement. Use a **Data Standard** when you want the *same* rule applied consistently across a fleet of datasets, whether it is a whole contract, or a check for a specific field.

## How to implement a Data Standard

{% hint style="warning" %}
Creating and managing Data Standards requires the **Manage data standards** permission. Data Standards must also be enabled for your organization.

Learn more about [Broken mention](broken://pages/n914KXqJNBoZ19Ay5W0P)
{% endhint %}

{% stepper %}
{% step %}

### Write the standard

Define the data quality checks you want to enforce, using the same check language as a Data Contract.

> See [Author a Data Standard](/data-testing/data-standards/author-a-data-standard.md).
> {% endstep %}

{% step %}

### Deploy it at scale

Create the standard in Soda Cloud and give it a **scope**, a rule that selects which datasets it applies to. Soda links the standard to every matching dataset and re-evaluates the scope as datasets change.

> See [Deploy at scale](/data-testing/data-standards/deploy-at-scale.md).
> {% endstep %}

{% step %}

### Verify the data

Soda runs the standard's checks against every linked dataset on a schedule. You can also verify on demand from a dataset's page in Soda Cloud, or from the CLI.

> See [Verify a Data Standard](/data-testing/data-standards/verify-a-data-standard.md).
> {% endstep %}

{% step %}

### Review the results

Inspect pass/fail results, history, and diagnostics for each check across every dataset the standard touches.

> See [Review results](/data-testing/data-standards/review-results.md).
> {% endstep %}
> {% endstepper %}

## Lifecycle

A Data Standard moves through a small set of states:

* **Draft** – created but not yet enforced. No datasets are linked and no scans run.
* **Active** – enforced. The standard is linked to every dataset that matches its scope, and its checks run on the configured schedule.
* **Paused** – temporarily suspended. Existing links are kept, but no new scans run until you resume it.

## Prerequisites

Before working with Data Standards, make sure:

* You have a **Soda Cloud account** with the **Dataset Standard**, **Team**, or **Enterprise** license.
* You have connected at least one **data source** and onboarded datasets. See [how to onboard data sources](broken://pages/cHo9ixopiR0flOMCbyUF).
* To create or manage standards, your user needs the **Manage Data Standards** permission.

***

{% if visitor.claims.plan === 'datasetStandard' %}
{% hint style="success" %}
You are **logged in to Soda** and seeing the **Dataset Standard license** documentation. Learn more about [Documentation access & licensing](/reference/documentation-access-and-licensing.md).
{% endhint %}
{% endif %}

{% if visitor.claims.plan === 'enterprise' %}
{% hint style="success" %}
You are **logged in to Soda** and seeing the **Team license** documentation. Learn more about [Documentation access & licensing](/reference/documentation-access-and-licensing.md).
{% endhint %}
{% endif %}

{% if visitor.claims.plan === 'enterpriseUserBased' %}
{% hint style="success" %}
You are **logged in to Soda** and seeing the **Enterprise license** documentation. Learn more about [Documentation access & licensing](/reference/documentation-access-and-licensing.md).
{% endhint %}
{% endif %}

{% if !(visitor.claims.plan === 'enterprise' || visitor.claims.plan === 'enterpriseUserBased' || visitor.claims.plan === 'datasetStandard') %}
{% hint style="info" %}
You are **not logged in to Soda** and are viewing the default public documentation. Learn more about [Documentation access & licensing](/reference/documentation-access-and-licensing.md).

If you do have a Soda license, make sure to **log in to Soda Cloud in this same browser**.
{% endhint %}
{% endif %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.soda.io/data-testing/data-standards.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
