Skip to content

How Volumetric Checks Work

Definition

Asserts that the row count of a table or file stays within an expected range, either as an absolute value or as a change from the count one Measurement Period earlier.

Overview

The Volumetric rule watches the size of a container over time. You choose a comparison, a Measurement Period in days, and a Min and/or Max limit. Each time a Scan evaluates the check, it counts the container's rows and compares that count, or how much it moved, against your limits.

The rule reads the container's row count rather than its values, so it offers neither a filter clause nor a coverage setting.

Typical use cases:

  • Alert when a load cycle adds no new rows.
  • Catch a table that suddenly shrinks because an upstream job truncated or partially reloaded it.
  • Bound normal growth so that a duplicated load (twice the usual volume) is reported.

Field Scope

None: The rule evaluates the whole container, so there is no field to select on the form. Because nothing is evaluated per row, the check offers neither a filter clause nor a coverage setting.

Anomaly Types

Type Supported
Record
Flag inconsistencies at the row level
Shape
Flag inconsistencies in the overall patterns and distributions of a field

When the Check Is Evaluated

A Volumetric check is evaluated only by a Scan. Volumetric and Freshness checks form the Metadata check category of a Scan, so a Scan includes them when the Metadata category is selected. See Select Check Categories.

When the Scan reaches the check, it counts the container's rows at that moment and asserts the check against that count. It does not load the records into Qualytics, so a Scan that runs only Metadata checks skips the read settings. The source still has to produce the count: some platforms answer from their table metadata, but otherwise the source runs a COUNT(*) over the container, which on a large view or computed container is real work for the database.

Observability measurements do not raise anomalies

When Volume Tracking is on, Observability records one row count per container per day, and the chart updates on its own. Those measurements build the history the check compares against, but they never evaluate the check. If no Scan runs, no Volumetric anomaly is created, even when the chart shows the row count outside the limits. Schedule a Scan to turn the limits into alerts.

Properties

Property What it sets
Comparison How the row count is evaluated: Absolute Value, Absolute Change, or Percentage Change. See Comparisons.
Measurement Period Days The number of days the check works over. For Absolute Value, it is the span the row count is averaged across. For the change comparisons, it is how far back the earlier count is taken from: 1 compares against yesterday, 7 against a week ago.
Min Value The lower limit. A row count for Absolute Value, or the smallest allowed movement for the change comparisons (a negative value allows the count to fall by that much).
Max Value The upper limit, with the same meaning as Min for each comparison.

At least one of Min Value and Max Value is required, and Min cannot be greater than Max. For Percentage Change, the form labels them Min Percentage and Max Percentage and takes the values in percent (enter 20 for 20%).

The History the Check Needs

Every comparison except a one-day Absolute Value check compares the current count with earlier daily counts. Those earlier counts come from the container's measurement history, which collects every row count recorded on a day:

  • The hourly Observability measurement, when Volume Tracking is on. It records at most one count per day, and skips the container on a day that already has one.
  • Every Scan that evaluates a Volumetric check, which records the count it reads.
  • A successful Profile, and a Full Scan that read every record, which record the total row count they processed.

When a day has more than one count, the check uses that day's average.

Comparison History it needs before it can be asserted
Absolute Value, 1 day None. The current count is compared directly.
Absolute Value, N days A count on each of the previous N - 1 days.
Absolute Change or Percentage Change, N days A count on each of the previous N days.

Days are calendar days in UTC, and the current day is never part of the history. If any required day is missing, the Scan does not evaluate the check: it is recorded as Not Asserted with a message that there were insufficient historical volume measurements, and no anomaly is created. The check is asserted again as soon as the history is complete. Turning on Volume Tracking for the container is the reliable way to fill every day.

Counts from before and after a load are averaged

When one day holds a count taken before a load and another taken after it, that day's value is their average, and the comparison the next day can miss a stalled load. Keep every count of a day on the same side of the load: run the Scan once a day, after the load finishes and early in the UTC day, before the hourly measurement reaches the container. Its count is then the day's only one, because the hourly measurement skips a container that already has a count for the day. A Profile or another Scan later the same day adds a count of its own. See the A Load Adds No New Rows example.

The Comparison Is Locked After the First Scan

The comparison can be changed only while the check has never been part of a Scan. Once a Scan has included it, the Measurement Period and the limits can still change, but saving a different comparison is rejected. To switch comparisons, create a new check and archive the old one.

One Active Check per Comparison and Period

A container can hold only one Active Volumetric check for each combination of comparison and Measurement Period. Creating or activating a second one, for example another Absolute Change check with a 1 day period, is rejected with a message that an existing check conflicts. The limits do not count: two checks that differ only in Min or Max still conflict. AI Managed checks count as well, so when Create AI Volumetric checks is on, the 1, 7, and 28 day Absolute Change combinations are usually taken. To use one of them, edit the existing check, or choose another comparison or period. Draft and archived checks never conflict.

AI Managed Volumetric Checks

When Create AI Volumetric checks is on in the container's Observability Settings, Qualytics creates up to three Volumetric checks per container from its measurement history. All three use Absolute Change:

Check Measurement Period Learns from Appears after about
Daily 1 day Daily changes over the previous 7 to 28 days One week of measurements
Weekly 7 days Weekly changes over the previous four weeks One month
Monthly 28 days Four-week changes over the previous sixteen weeks Sixteen weeks

The limits are the range of changes actually observed during the training period, widened by a multiple of their standard deviation so that a change slightly outside that range does not raise an anomaly. A new check starts with a margin of about 1.5 standard deviations. Qualytics then updates the limits about once a day as new measurements arrive, starting as wide as 2 standard deviations and tightening toward 1 as its confidence in the check grows.

Qualytics does not create an AI Managed check for a period that already has an Absolute Change check of your own, Active or Draft, or whose earlier AI Managed check was archived as Invalid. Inference needs measurements taken one Measurement Period apart, so a container measured only now and then may not receive an AI Managed check until enough evenly spaced measurements accumulate.

Changing the comparison, the Measurement Period, or a limit of an AI Managed check converts it to Authored. From then on Qualytics stops updating its limits. See AI Managed Checks. Checks owned by a locked check template also keep the limits the template sets.

Volumetric or Freshness?

Both checks read the container's metadata instead of its records, and both run in the Metadata category of a Scan. They answer different questions:

Volumetric Freshness
Answers How much data arrived? When did data last arrive?
Reads The container's row count The container's last modification time
Compares against A fixed range, or the count one Measurement Period earlier A Maximum Age
Use it when You expect a certain volume, or a certain change in volume, per load cycle You expect the container to be updated at least every so many hours or days
Example "Alert me if a day adds no rows" "Alert me if this table has not been touched in 24 hours"

A table can be modified without gaining rows (an update in place), and it can gain rows that arrive late. Pair both checks on critical containers. See Freshness.

No Filter, No Coverage

A filter selects rows and coverage tolerates failing rows. Neither concept applies to a rule that reads the container's row count. Both inputs are absent from the form, and the API rejects them: a non-empty filter, or a coverage other than 1, returns 422.

See Also