Skip to main content

Six checks, every table, every night.

The six standard checks run on every plan. All six run on every monitored table after the data loads, and each is judged against that table's own history rather than a threshold you set.

01

Freshness

Catches a table that has stopped receiving data when it normally would.

What it learns
How far behind the newest row usually is at the end of each day, as a median, a 90th percentile and a worst case, along with how often the table actually loads.
When it flags
When the newest row is more than a day older than the usual 90th-percentile lag, or six hours past the worst lag ever seen, on a weekday the table normally loads. A table that suddenly has no timestamps at all is flagged too.
What the agent does
Measures the lag itself and looks at recent row counts by day to tell "not scheduled today" apart from "stale".
What it leaves alone
Weekly and weekday-only tables on their quiet days. A table with no timestamp column is not given a freshness check.

02

Volume

Catches a load that is far bigger or smaller than this table normally gets.

What it learns
Yesterday's row count set against the average and spread for the same weekday, once there are three of that weekday to compare with, otherwise against every day.
When it flags
At three standard deviations from normal, or two standard deviations plus a change of at least half. Zero rows on a day that normally loads always flags.
What the agent does
Recounts the rows, weighs the weekday pattern and judges the change against the table's own noise. An empty load on a normal day is almost always reported.
What it leaves alone
Quiet weekends and other weekday rhythms the table has always had. There are no fixed row-count limits to maintain.

03

Out-of-range

Catches numeric values far outside anything the column has produced before.

What it learns
Each numeric column's daily minimum, maximum, average and spread, and the most extreme value it has ever reached.
When it flags
When yesterday's highest or lowest value sits at least four standard deviations from the average and clearly beyond the column's previous record. The worst column on the table is the one investigated.
What the agent does
Pulls the actual extreme rows and cites them, then judges whether they look like a data-entry error, a unit mix-up or a placeholder such as -1 or 9999.
What it leaves alone
Columns with naturally long tails: a value has to beat the column's own record, not just be large.

04

Null rate

Catches a column that suddenly starts arriving empty.

What it learns
The share of nulls in each column per day, and how much that share normally moves.
When it flags
When the null rate rises by at least ten percentage points and the jump is well outside its usual variation, or the column has never varied before.
What the agent does
Compares yesterday's null rate with the trailing weeks, cites sample affected rows, and dismisses columns that are optional by design, such as a cancellation reason.
What it leaves alone
Falling null rates, days with no rows at all, and brand-new columns until they have five days of history.

05

Format

Catches text values that no longer look like they used to.

What it learns
Each text column's length range and the shapes its values take, so a postcode like "SW1A 1AA" is remembered as letters, digits and a space in that order.
When it flags
When the longest value is half again as long as any seen before, or when at least three in ten of yesterday's sampled values have a shape the column has never produced.
What the agent does
Selects the non-matching rows and cites them, then checks how varied the column has always been before calling it a problem.
What it leaves alone
Free-text and legitimately mixed-format columns. No regex or format rules for you to write.

06

Duplicates

Catches an ID column that has always been unique and suddenly is not.

What it learns
For ID columns, the share of repeated values per day and whether the column has ever had any.
When it flags
When at least one percent of values repeat in a column that has been completely unique across its history.
What the agent does
Groups by the key, cites the duplicated values, and reads the schema to confirm the column is really meant to be unique rather than a reference to another table.
What it leaves alone
Columns that have always contained repeats, such as an order ID on an order-lines table.

Six checks, learned from your own tables

Each check learns what normal looks like for that table and compares the latest run to it.

Freshness

The table didn't receive data when it normally would.

orders loads every day; today has no rows for yesterday.

Volume

Row counts deviate from the historical load pattern.

Usually about 10k rows a day; today, 200.

Out-of-range

Values land far outside the learned distribution.

Every prior order value sat within 1 SD; today's max is 5 SDs out.

Null-rate

A column's null share spikes.

email is historically 2% null, suddenly 40%.

Format

Values violate the column's established format.

A numeric column starts receiving strings; date formats shift.

Duplicates

Uniqueness of key columns breaks.

order_id was always unique; today it has duplicates.

Run all six tonight