Datatrail
OBSERVABILITY - ANOMALIES

Data Anomaly Detection for Volume, Freshness, and Distribution

Datatrail learns the normal shape of each table, then flags when row volume, load timing, or a column distribution drifts out of range. A 40 percent drop in fct_orders row count surfaces as an alert, not a quarter-end surprise.

See pricing
Read-only Never moves your data
Lineage map
Lineage mapped from query history. Read-only connection.
0

Read-only connection. Datatrail never moves or mutates your data.

In short

Data anomaly detection flags when a table behaves differently from its historical norm in volume, freshness, or value distribution. Datatrail learns the typical row count, load cadence, and column statistics of tables like fct_orders, then alerts when a load arrives half-empty or orders.revenue suddenly skews. Because it understands lineage, it can separate a genuine upstream problem from an expected downstream effect. The monitoring runs from read-only metadata and sampled statistics, so Datatrail never mutates your data.

// CAPABILITY

What you get

Anomaly detection, built for data engineers and analytics teams

Volume anomalies

Catch when fct_orders loads 40 percent fewer rows than usual, a common sign of a partial or failed upstream job.

Freshness anomalies

Detect loads that arrive far earlier or later than the learned cadence, before downstream reports go stale.

Distribution shifts

Flag when a column like orders.revenue suddenly changes its average or null rate, often a sign of a broken transformation.

Lineage-aware triage

Trace an anomaly to its upstream source so you fix the cause, not the symptom.

// 4 STEPS

How it works

From connected to saving in four steps

01

Connect read-only

Datatrail connects with a read-only role and reads row counts, load times, and sampled column stats. Nothing is written.

02

Datatrail learns normal

It builds a baseline of volume, freshness, and distribution for each monitored table.

03

Detect and alert

When a table drifts out of its expected range, Datatrail raises an anomaly tied to the affected lineage.

04

You act early

Investigate the upstream cause and rerun or fix the pipeline before bad numbers spread.

How data anomaly detection actually works

Anomaly detection in a data warehouse is not one technique, it is three signals read together, and knowing which is firing tells you a lot about what went wrong.

  • Volume. Every table has a normal row count per load. Datatrail records the count on each run and models the distribution, including weekday and weekend seasonality, so a Monday that always loads three times a Sunday does not read as an anomaly. A load that arrives at 60 percent of its usual size is the single most common real incident, and it is almost always a partial upstream job rather than a genuine change in the business.
  • Freshness. The gap between loads is itself a signal. A table that has landed within 20 minutes of 02:00 every night for six months and is still empty at 04:30 is broken, whether or not anything failed loudly. This is the same measurement behind freshness monitoring, read as a deviation rather than an SLA breach.
  • Distribution. Row counts can be perfect while the contents are wrong. Null rate on a column, cardinality of a key, the share of a categorical value, the shape of a numeric field: when any of these move sharply against their own history, something upstream changed. A currency column that was 98 percent USD and is suddenly 60 percent USD did not gain international customers overnight, it gained a broken join.

The baseline matters more than the algorithm. A detector trained on two weeks of history will flag your first quarter-end as an anomaly. Datatrail builds baselines from the query and load history already sitting in your warehouse metadata, which means the model starts with months of context on day one rather than learning from scratch after you connect.

Why anomaly detection gets muted, and what fixes it

The predictable arc is this. A team turns on anomaly detection, it fires accurately, and within two months the Slack channel is muted. The alerts were not wrong. The problem is that every alert cost the same investigation regardless of whether it mattered, and most of them did not.

Precision is only half the fix. The other half is ranking, and ranking requires knowing what sits downstream. A distribution shift on a staging table nobody reads is a note for the backlog. The same shift on a column that feeds the board revenue dashboard is a page. Without lineage those two alerts look identical, so a team either treats everything as urgent, which exhausts people, or treats nothing as urgent, which is how a bad number reaches a customer.

Datatrail attaches downstream impact to every anomaly it raises. The alert names the models, exposures, and dashboards that read the affected column, resolved through column-level lineage rather than table-level guessing. That turns triage into a decision you can make in seconds, and it is why alert routing can send the anomaly to the team that owns the affected domain instead of a firehose channel everyone ignores.

What anomaly detection will not do for you

Statistical monitoring is worth having and it is not sufficient. Three honest limits are worth stating before you rely on it.

It cannot enforce a rule you can state exactly. If revenue must reconcile to the ledger within a cent, write that as a dbt test or a Great Expectations assertion. A model of normal behavior will never be as reliable as an assertion for something you already know must be true. Anomaly detection is for the failures nobody thought to check for; explicit rules are for the ones you did.

It is slower on rare, low-volume tables. A table that loads monthly gives a detector twelve observations a year. There is not enough history there for a confident baseline, and the honest answer is a fixed threshold rather than a learned one.

It does not catch consistently wrong data. If a field has been calculated incorrectly since the pipeline was written, its history is the wrong value, and nothing about today deviates from that. Only a human or an explicit rule finds that class of bug.

Vendors differ in how far they push the value-level side of this. Anomalo in particular has built real depth in unsupervised detection on the data itself, and we say so plainly. Datatrail optimizes for a different thing: broad automatic coverage on metadata signals, with lineage underneath so the alerts you do get are worth reading. If you are weighing the whole field, our guide to data quality tools lays out where each option stops.

// FAQ

Questions people ask

Anomaly detection, answered

What is data anomaly detection?

Data anomaly detection flags when a table behaves differently from its own history. It learns the normal row volume, load cadence, null rates, and value distributions for each table, then alerts when the current state deviates beyond an expected range. Unlike a test, it needs no rule written in advance, so it covers tables nobody instrumented and catches failure modes nobody anticipated.

How does anomaly detection work in data pipelines?

It reads signals the warehouse already records. Load timestamps give freshness, row counts per load give volume, and sampled column statistics give distribution. Each signal is modeled against that table history, including weekly and monthly seasonality, and a deviation beyond the modeled range raises an alert. Datatrail does this from read-only metadata and query history, so nothing in your data is moved or changed.

What is the difference between anomaly detection and data quality tests?

A test checks a rule you wrote: this column is never null, this count exceeds 1,000. Anomaly detection checks whether today looks like the table normal history, with no rule written in advance. Tests are precise but only cover what someone remembered to assert. Anomaly detection is broader but statistical, so it finds unknown problems and occasionally flags a legitimate change. Most teams run both.

How do you reduce false positives in data anomaly detection?

Three things do most of the work. Model seasonality, so weekly and month-end patterns are not read as anomalies. Use enough history for the baseline, which is why starting from existing warehouse metadata beats learning from the connect date. And rank alerts by downstream impact, so a deviation on an unused staging table never pages anyone. The last one matters most, because unranked accurate alerts still get muted.

Do I need anomaly detection if I already have dbt tests?

They cover different failures. dbt tests protect the columns somebody named in your dbt project and catch violations of rules you can state. Anomaly detection covers every table automatically, including raw landing tables upstream of dbt and anything added since the last time someone updated the test suite. The incidents that hurt are usually in the space no test covers, which is the gap anomaly detection fills.

See it map your lineage

Connect your warehouse read-only and get a full lineage map in minutes. Datatrail never moves or mutates your data.