Check reference¶
CatalystData ships 51 check types, generated from the code on every build - this page can't drift from what's actually available.
Table-level¶
| Check | What it catches |
|---|---|
| Column count between (min/max columns) | Validates that a table's column count falls within expected bounds - catches accidental schema changes. |
| Column name exists (schema validation) | Validates that a table has a column with a given name. |
| Row count (30-day average or min/max) | Validates that a table's row count is within expected bounds, either fixed limits or a 30-day rolling average. |
Common column checks¶
| Check | What it catches |
|---|---|
| Anomaly: spike/drop in row count or column sum | Detects anomalies by comparing the current row count or column sum against recent history. |
| Composite unique | Validates that combinations of columns are unique, e.g. (tenant_id, email). |
| Cross-field math | Validates that a numeric column equals a formula computed over other columns in the same row. |
| Cross-table reconciliation (totals match) | Validates that an aggregate over a column matches the same aggregate in another table. |
| Custom SQL check (query + threshold) | Runs a custom SQL query and compares the result against a threshold - the escape hatch for anything not covered by a built-in check. |
| Null check | Validates that a column's null percentage stays within a threshold. |
| Referential integrity (FK exists in parent) | Validates that values in a column exist in a parent table's column. |
| Unique check | Validates that a column's duplicate percentage stays within a threshold. |
| Value in allowed options | Validates that every non-null value in a column is in a fixed set of allowed values. |
Numeric¶
| Check | What it catches |
|---|---|
| Default value | Validates that non-null values in a column match an expected default value. |
| No NaN/Inf (float) | Validates that a float or double column has no NaN or infinite values. |
| Non-negative | Validates that every non-null value in a numeric column is zero or greater. |
| Outlier (IQR) | Flags statistical outliers using the interquartile range (IQR) method. |
| Outlier (z-score) | Flags statistical outliers using the z-score method. |
| Precision/scale (decimal) | Validates that decimal values fit within an expected precision and scale. |
| Range (min/max) | Validates that a numeric column's values fall within expected bounds. |
| Sign consistency | Validates that every value in a numeric column has the expected sign. |
| Skewness | Validates that a numeric column's sample skewness stays within an expected range. |
String¶
| Check | What it catches |
|---|---|
| Case (UPPER/lower) | Validates that non-null string values match an expected case, upper or lower. |
| Format / pattern (regex or LIKE) | Validates that non-null string values match a pattern, expressed as a regex or a SQL LIKE pattern. |
| Length (min/max, whitespace) | Validates string length bounds and optionally flags leading or trailing whitespace. |
| No truncation (max length) | Validates that no value is at or beyond the column's maximum length, catching possible truncation. |
| Not empty string | Validates that non-null string values aren't empty strings. |
| Not placeholder (N/A, UNKNOWN, etc.) | Validates that non-null values aren't placeholder text such as N/A or UNKNOWN. |
| Reference table (allowed categories) | Validates that non-null values exist in a reference table's column - a foreign key for string categories. |
Date and time¶
| Check | What it catches |
|---|---|
| Date within range (min/max) | Validates that a date or datetime column's values fall within an expected range. |
| Freshness (e.g. updated within N hours) | Validates that a date or datetime column has recent values, catching data that has gone stale. |
| No future dates | Validates that a date or datetime column has no dates after now. |
| Start ≤ end (two columns) | Validates that one date column is never later than another, e.g. start_date before end_date. |
| Valid date/time (no Feb 30, etc.) | Validates that a date or datetime column contains only genuinely valid dates. |
Boolean¶
| Check | What it catches |
|---|---|
| Boolean implies other field | Validates that a required column is non-null whenever a boolean column has a given value. |
| Only TRUE/FALSE or 1/0 | Validates that a boolean column contains only recognized values. |
Binary¶
| Check | What it catches |
|---|---|
| Checksum/hash validation | Validates that a stored checksum or hash matches the value computed from the binary data. |
| Not NULL and not empty/corrupted | Fails when a non-null binary value has zero length. |
| Size (min/max, no zero-byte) | Validates binary column size against optional minimum and maximum byte bounds. |
| Valid binary format (magic number) | Validates that binary values start with an expected magic-byte signature, e.g. a file format header. |
JSON and XML¶
| Check | What it catches |
|---|---|
| Document not empty | Validates that a JSON or XML column's non-null values aren't empty. |
| Required nodes/keys present | Validates that required keys or nodes are present in every document. |
| Schema validation (JSON Schema / XSD) | Validates documents against a JSON Schema or XSD. |
| Well-formed JSON/XML (no syntax errors) | Validates that a JSON or XML column's non-null values are syntactically well-formed. |
UUID¶
| Check | What it catches |
|---|---|
| No placeholder UUIDs (e.g. all zeros) | Validates that a UUID column has no placeholder values, e.g. all-zeros. |
| Valid UUID format (v1/v4) | Validates that non-null values are well-formed UUIDs. |
Geospatial¶
| Check | What it catches |
|---|---|
| Coordinates within valid ranges | Validates that geometry coordinates fall within valid longitude and latitude ranges. |
| Geometry well-formed (no self-intersecting polygons) | Validates that geometries are well-formed, catching things like self-intersecting polygons. |
| No NULL geometries | Validates that a geometry or geography column has no null values. |
| Within expected geographic boundaries | Validates that geometries fall within an expected longitude/latitude bounding box. |
Money¶
| Check | What it catches |
|---|---|
| Amount and currency match region/account | Validates that a currency code column only contains an allowed set of codes. |
| Range (no negative unless allowed, no extreme values) | Validates that a currency amount column stays within bounds, and is non-negative unless explicitly allowed. |