> ## Documentation Index
> Fetch the complete documentation index at: https://openmetadata-docs-release-watchers.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Column Tests - UI Config | OpenMetadata Quality Config Guide

> Configure column-level data quality tests in the OpenMetadata UI — uniqueness, nullness, regex, ranges, and more.

# Column Tests - UI Config

Tests applied on top of Column metrics. For table-level tests, see the [Tests UI Overview](/v1.13.x/how-to-guides/data-quality-observability/quality/tests-ui).

Here is the list of all column tests:

* [Column Values to Be Unique](#column-values-to-be-unique)
* [Column Values to Be Not Null](#column-values-to-be-not-null)
* [Column Values to Match Regex](#column-values-to-match-regex)
* [Column Values to not Match Regex](#column-values-to-not-match-regex)
* [Column Values to Be in Set](#column-values-to-be-in-set)
* [Column Values to Be Not In Set](#column-values-to-be-not-in-set)
* [Column Values to Be Between](#column-values-to-be-between)
* [Column Values Missing Count to Be Equal](#column-values-missing-count-to-be-equal)
* [Column Values Lengths to Be Between](#column-values-lengths-to-be-between)
* [Column Value Max to Be Between](#column-value-max-to-be-between)
* [Column Value Min to Be Between](#column-value-min-to-be-between)
* [Column Value Mean to Be Between](#column-value-mean-to-be-between)
* [Column Value Median to Be Between](#column-value-median-to-be-between)
* [Column Values Sum to Be Between](#column-values-sum-to-be-between)
* [Column Values Standard Deviation to Be Between](#column-values-standard-deviation-to-be-between)
* [Column Values To Be At Expected Location](#column-values-to-be-at-expected-location)

### Column Values to Be Unique

Ensures each value in a column appears only once.

#### Dimension

`Uniqueness`

#### When to Use

* Primary keys or natural identifiers
* Fields like email, username, or ID

#### Behavior

| Condition                 | Status |
| ------------------------- | ------ |
| All values are unique     | ✅      |
| Any duplicate value found | ❌      |

<video autoPlay muted loop playsInline className="w-full aspect-video rounded-xl" src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/unique.mp4?fit=max&auto=format&n=syFItHMlJvv5crVx&q=85&s=18383fcf32860e6f76f2ca482d2b1f11" data-path="public/images/how-to-guides/quality/column-test/unique.mp4" />

### Column Values to Be Not Null

Ensures there are no NULL entries in the column.

#### Dimension

`Completeness`

#### When to Use

* Mandatory fields such as `email`, `amount`, `created_at`
* Required keys or business-critical columns

#### Behavior

| Condition              | Status |
| ---------------------- | ------ |
| No NULLs present       | ✅      |
| Any NULL value present | ❌      |

<video autoPlay muted loop playsInline className="w-full aspect-video rounded-xl" src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/not-null.mp4?fit=max&auto=format&n=syFItHMlJvv5crVx&q=85&s=9a0f6d91e84e8d71404bae111c74ad31" data-path="public/images/how-to-guides/quality/column-test/not-null.mp4" />

### Column Values to Match Regex

This test validates that values in a column match a configured regular expression. OpenMetadata uses database regex support where available. For dialects where SQL regex is not supported, the validator falls back to SQL `LIKE` semantics.

Ensures all values match a specified regular expression pattern.

#### Dimension

`Validity`

#### When to Use

* Emails, zip codes, IDs, structured formats

#### Behavior

| Condition                | Status |
| ------------------------ | ------ |
| All values match regex   | ✅      |
| Any value does not match | ❌      |

<video autoPlay muted loop playsInline className="w-full aspect-video rounded-xl" src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/match-regex.mp4?fit=max&auto=format&n=syFItHMlJvv5crVx&q=85&s=77532c5447e226b0c04e8be4ecc0920f" data-path="public/images/how-to-guides/quality/column-test/match-regex.mp4" />

### Column Values to not Match Regex

This test validates that values in a column do not match a configured forbidden regular expression. If the test finds values matching the `forbiddenRegex`, the test will fail. OpenMetadata uses database regex support where available. For dialects where SQL regex is not supported, the validator falls back to SQL `NOT LIKE` semantics.

Ensures values do **not** match a restricted regex pattern.

#### Dimension

`Validity`

#### When to Use

* Prevent forbidden values, test strings, or patterns

#### Behavior

| Condition                          | Status |
| ---------------------------------- | ------ |
| No value matches forbidden pattern | ✅      |
| Any value matches the pattern      | ❌      |

<video autoPlay muted loop playsInline className="w-full aspect-video rounded-xl" src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/not-match-regex.mp4?fit=max&auto=format&n=syFItHMlJvv5crVx&q=85&s=284a97efbc665f3998a5091f80f3a91a" data-path="public/images/how-to-guides/quality/column-test/not-match-regex.mp4" />

### Column Values to Be in Set

Ensures values are within a predefined whitelist.

#### Dimension

`Validity`

#### When to Use

* Enum values: `status`, `currency`, `country_code`

#### Behavior

| Condition                                          | Status |
| -------------------------------------------------- | ------ |
| All values in set (if `matchEnum = true`)          | ✅      |
| Any value not in set (if `matchEnum = true`)       | ❌      |
| Any value from set exists (if `matchEnum = false`) | ✅      |
| No values from set found (if `matchEnum = false`)  | ❌      |

<img src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/column-values-in-set.gif?s=3bd059b7086831775a22bc416904a0da" alt="Column Values In Set" width="1502" height="720" data-path="public/images/how-to-guides/quality/column-test/column-values-in-set.gif" />

### Column Values to Be Not In Set

Ensures values are **not** in a specified blacklist.

#### Dimension

`Validity`

#### When to Use

* Block invalid values like `"NA"`, `"Unknown"`, `-1`

#### Behavior

| Condition                          | Status |
| ---------------------------------- | ------ |
| No values from forbidden set       | ✅      |
| Any value from forbidden set found | ❌      |

<img src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/column-values-not-in-set.gif?s=5c11179dcc605843e479d59fa3b70cfa" alt="Column Values Not In Set" width="1502" height="720" data-path="public/images/how-to-guides/quality/column-test/column-values-not-in-set.gif" />

### Column Values to Be Between

Validates that values in a column are within a configured minimum and maximum range.

#### Dimension

`Accuracy`

#### When to Use

* Numeric thresholds such as age, price, score, or percentage
* Date or timestamp ranges when supported by the connector

#### Behavior

| Condition                 | Status |
| ------------------------- | ------ |
| Value within `[min, max]` | ✅      |
| Value \< min or > max     | ❌      |

<img src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/to-be-between.gif?s=d18fd6328407bc0d09aea6f7e8a4a9af" alt="To Be Between" width="1502" height="720" data-path="public/images/how-to-guides/quality/column-test/to-be-between.gif" />

### Column Values Missing Count to Be Equal

Ensures total missing values (NULL + defined "missing" strings) match a target count.

#### Dimension

`Completeness`

#### When to Use

* Auditing known missing values
* Accounting for `"NA"`, `"N/A"`, `"null"`

#### Behavior

| Condition                      | Status |
| ------------------------------ | ------ |
| Missing count = expected value | ✅      |
| Missing count ≠ expected value | ❌      |

<video autoPlay muted loop playsInline className="w-full aspect-video rounded-xl" src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/missing-count.mp4?fit=max&auto=format&n=syFItHMlJvv5crVx&q=85&s=42c1f5dcdcf819009c86a4ac0b7b552d" data-path="public/images/how-to-guides/quality/column-test/missing-count.mp4" />

### Column Values Lengths to Be Between

Ensures that the length of each string value in the column is within a defined character range.

#### Dimension

`Accuracy`

#### When to Use

* To validate field length constraints like `name`, `address`, or `description`
* To catch too-short or too-long values that may break UI or downstream logic

#### Behavior

| Condition                                  | Status |
| ------------------------------------------ | ------ |
| All values have length within `[min, max]` | ✅      |
| Any value length \< min or > max           | ❌      |

<img src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/lengths-to-be-between.gif?s=b29e2afe0d0a927b3ae51320911b5283" alt="Lengths To Be Between" width="800" height="383" data-path="public/images/how-to-guides/quality/column-test/lengths-to-be-between.gif" />

### Column Value Max to Be Between

Validates the **maximum** value of a column lies within a range.

#### Dimension

`Accuracy`

#### When to Use

* Cap validation for `score`, `amount`, `age`

#### Behavior

| Condition                       | Status |
| ------------------------------- | ------ |
| Max value in range `[min, max]` | ✅      |
| Max \< min or Max > max         | ❌      |

<img src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/max.gif?s=cab093c84f7fd07e7818c912f9b183bf" alt="Max" width="2850" height="1366" data-path="public/images/how-to-guides/quality/column-test/max.gif" />

### Column Value Min to Be Between

Validates the **minimum** value of a column lies within a range.

#### Dimension

`Accuracy`

#### When to Use

* Threshold validation for `discount`, `price`, etc.

#### Behavior

| Condition                       | Status |
| ------------------------------- | ------ |
| Min value in range `[min, max]` | ✅      |
| Min \< min or Min > max         | ❌      |

<img src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/min.gif?s=e04e2a22b09a17e3421393bfdfa77529" alt="Min" width="2850" height="1366" data-path="public/images/how-to-guides/quality/column-test/min.gif" />

### Column Value Mean to Be Between

Validates that the **mean (average)** value is in the expected range.

#### Dimension

`Accuracy`

#### When to Use

* Check dataset drift or pipeline behavior

#### Behavior

| Condition                  | Status |
| -------------------------- | ------ |
| Mean value in `[min, max]` | ✅      |
| Mean \< min or Mean > max  | ❌      |

<img src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/mean.gif?s=e13f636f4820c55d5e883a5501b2922c" alt="Mean" width="800" height="383" data-path="public/images/how-to-guides/quality/column-test/mean.gif" />

### Column Value Median to Be Between

Validates the **median** value is in the expected range.

#### Dimension

`Accuracy`

#### When to Use

* Median income, score, latency checks

#### Behavior

| Condition                     | Status |
| ----------------------------- | ------ |
| Median in range `[min, max]`  | ✅      |
| Median \< min or Median > max | ❌      |

<img src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/median.gif?s=201d9a1f7cc6e07aff83d24f226ae056" alt="Median" width="2850" height="1366" data-path="public/images/how-to-guides/quality/column-test/median.gif" />

### Column Values Sum to Be Between

Validates the total **sum** of values in a column is within a defined range.

#### Dimension

`Accuracy`

#### When to Use

* Revenue, units sold, total scores, etc.

#### Behavior

| Condition                 | Status |
| ------------------------- | ------ |
| Sum in range `[min, max]` | ✅      |
| Sum \< min or Sum > max   | ❌      |

<img src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/sum.gif?s=288e5bdfbf047a6c1a387e810e42928f" alt="Sum" width="1502" height="720" data-path="public/images/how-to-guides/quality/column-test/sum.gif" />

### Column Values Standard Deviation to Be Between

Validates the **standard deviation** (spread) of values is acceptable.

#### Dimension

`Accuracy`

#### When to Use

* Monitoring variance in numeric datasets

#### Behavior

| Condition               | Status |
| ----------------------- | ------ |
| Std Dev in `[min, max]` | ✅      |
| Std Dev \< min or > max | ❌      |

<img src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/standard-deviation.gif?s=284414bf4596c89efe3e1c31a7232d3d" alt="Standard Deviation" width="1502" height="720" data-path="public/images/how-to-guides/quality/column-test/standard-deviation.gif" />

### Column Values To Be At Expected Location

Validates latitude/longitude values are within a defined area.

#### Dimension

`Accuracy`

#### When to Use

* Verifying address coordinates
* Mapping regional data

#### Behavior

| Condition                                      | Status |
| ---------------------------------------------- | ------ |
| Coordinates within buffer of expected location | ✅      |
| Any record outside allowed radius              | ❌      |

<img src="https://mintcdn.com/openmetadata-docs-release-watchers/syFItHMlJvv5crVx/public/images/how-to-guides/quality/column-test/expected-location.gif?s=fc7f56080d58f144f48ebdc7bee657fa" alt="Expected Location" width="1502" height="720" data-path="public/images/how-to-guides/quality/column-test/expected-location.gif" />
