Skip to content

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.