> For the complete documentation index, see [llms.txt](https://docs.decube.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decube.io/data-quality-v2/monitor-types/field-health/numeric-checks.md).

# Numeric Checks

Average, Minimum, Maximum, Sum tests.

These four checks compute a single aggregate statistic — the average, minimum, maximum, or sum — of a numeric column, and check that it falls within an expected range. They only apply to numeric column types (integer, float, decimal, and similar).

### When to use it <a href="#when-to-use-it" id="when-to-use-it"></a>

* A business expects the average order value in an `orders` table to stay between $20 and $200. A daily average check flags a sudden drop, which could indicate a currency or unit-conversion bug introduced upstream.
* A business rule caps a single order at 100 units. A daily maximum check on the `quantity` column catches data-entry errors or abnormal orders that exceed the cap.

### What's configurable <a href="#whats-configurable" id="whats-configurable"></a>

* **Schedule** — a fixed recurring schedule, or Manual (triggered on demand). If Manual, the monitor must use Full Table Scan.
* **Scan Method** — how much of the table is read each run:
  * **Full Table Scan** — reads the whole table every run.
  * **Incremental Scan** — reads only the rows added since the last run, based on a timestamp column or a custom filter expression.
* **Threshold** — a Numeric Range: a minimum and/or maximum for the computed statistic. At least one bound is required; bounds are inclusive.

### Worked example — Average <a href="#worked-example-average" id="worked-example-average"></a>

<figure><img src="https://1779874722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTw0qpCVzfrIXqS4FEg4T%2Fuploads%2FE8OjtxM82Zbcnv1BdCCG%2Fimage-20260811-093517.png?alt=media&amp;token=0556fb8b-d7fa-44f8-a37b-5239e9ccb1bd" alt=""><figcaption></figcaption></figure>

* Asset: `orders` table, column `order_value`
* Monitor type: Average
* Scan Method: Full Table Scan
* Schedule: Daily
* Threshold: Numeric Range — min 20, max 200

**Resulting rule:** "An incident will be created when the average of order\_value is below 20 or above 200."

### Worked example — Maximum <a href="#worked-example-maximum" id="worked-example-maximum"></a>

<figure><img src="https://1779874722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTw0qpCVzfrIXqS4FEg4T%2Fuploads%2Fxs5COXRcGFYMwVg2jIpq%2Fimage-20260811-093825.png?alt=media&amp;token=3b9af438-22ba-44a7-9188-bc9d7eeb7d0d" alt=""><figcaption></figcaption></figure>

* Asset: `products` table, column `quantity`
* Monitor type: Maximum
* Scan Method: Full Table Scan
* Schedule: Daily
* Threshold: Numeric Range — max 100 only (no min)

**Resulting rule:** "An incident will be created when the maximum of quantity is above 100."

### Notes <a href="#notes" id="notes"></a>

* Changing the schedule or scan method later is a destructive change (it creates a new monitor version). Adjusting only the threshold value is not.
