# Deprecation Guide: Unified Tests

{% hint style="info" %}
This change will be live on 18 December 2025. Deprecation of legacy test types Not Null, Null%, Is Unique, Unique%, Is Email and Is UUID will be completed on 30 January 2026. Please read [#do-i-need-to-take-action](#do-i-need-to-take-action "mention")if you have existing tests on these test types.
{% endhint %}

### What is changing?

Historically, our platform treated "Row Count" checks and "Percentage" checks as completely separate test types. You had to choose between:

* **`not_null`**: Strict check (e.g., "Fail if *any* rows are null").
* **`null%`**: Trend check (e.g., "Fail if *more than 5%* of rows are null").

We have consolidated these into single, flexible **Unified Tests**. You can now select a logic check (like `null`) and simply toggle how you want to measure failure—by row count, percentage, or automatic detection—all within a single screen.

### The New Unified Tests

The following test types support flexible thresholds:

| **Null**   | `not_null`, `null%`    | Checks for missing values.         |
| ---------- | ---------------------- | ---------------------------------- |
| **Unique** | `is_unique`, `unique%` | Checks for duplicate values.       |
| **Email**  | `is_email`             | Validates email format compliance. |
| **UUID**   | `is_uuid`              | Validates UUID format compliance.  |

#### Flexible Threshold Modes

When configuring these tests, you can now choose between three modes:

1. **Absolute (Row Count):** Best for strict data contracts.
   * *Example:* "Fail when null values > 0 rows."
2. **Percentage:** Best for monitoring trends in large datasets.
   * *Example:* "Fail when null values > 5%."
3. **Automatic:** The system automatically calculates thresholds based on your historical data (available for Scheduled monitors).

These thresholds modes now also apply to other existing tests, like Regex Match test.

### Deprecation Notice

As part of this update, we are deprecating the older, rigid test types.

#### Which tests are affected?

If you see a **"Planned Future Deprecation"** warning in the UI, it applies to one of these legacy tests:

* `not_null`
* `null%`
* `is_unique`&#x20;
* `unique%`
* `is_email`
* `is_uuid`

#### Do I need to take action?

* **For Existing Monitors:** **No.** Your existing tests continue to run normally. You do not need to delete or change them.
* **For New Monitors:** We recommend using the new Unified Test types (e.g., use `null` instead of `is_null`) to take advantage of the improved features and scorecard inclusion.

### Automatic Migration Plan

To make this transition seamless, we will handle the migration of your legacy tests automatically in a future release (**Phase 2**).

#### How it will work

We will convert your legacy configuration into the equivalent Unified Test format. This ensures your monitoring logic remains exactly the same.

* **Example 1:** A legacy `null%` test with a threshold of `5%` will become a Unified `null` test with a **Percentage** threshold of `5%`.
* **Example 2:** A legacy `is_null` test (which fails on 1 bad row) will become a Unified `null` test with an **Absolute** threshold of `0 rows`.

**Note:** We will provide a distinct notice through your account manager before this automatic migration occurs.

### Impact on Data Quality Scorecard

This update significantly improves your Data Quality Scorecard accuracy.

* **Previously:** Legacy percentage tests (like `null%` or `unique%`) were **excluded** from scorecard calculations.
* **Now:** All Unified Tests—whether using Absolute or Percentage thresholds—are **included** in the Data Quality Scorecard.

### FAQ

**Q: Will the migration change my historical data?**&#x20;

No. Your incident history and scan results will be preserved. Once migrated, historical data for `not_null` will simply appear under the history for the new `null` test.

**Q: I use the API. How does this affect me?**&#x20;

We have introduced a standardized `threshold` schema for these new tests. If you programmatically create monitors, please review the [API Documentation](https://docs.decube.io/public-api/overview/index/monitors/create-manage-and-delete) to adopt the new schema.
