Record Anomalies¶
Reviewing record anomalies
A Record anomaly flags one row of a table or file that failed one or more checks. It is the most specific evidence a Scan can give: the exact row, the exact field, and the value that broke the rule. The simplest Record anomaly is a row with no value in a field that must always be filled in.
This page explains when a failure becomes a Record anomaly, what one contains, and how to read it. For failures that concern many rows or the dataset as a whole, see Shape Anomalies.
When a Failure Becomes a Record Anomaly¶
A Scan reports a failure as a Record anomaly when all of these are true:
- The rule evaluates each row on its own. Rules such as Not Null, Min Value, or Matches Pattern decide row by row whether the data passes. Rules that look at the dataset as a whole, such as Unique or Volumetric, always produce Shape anomalies instead.
- The check's coverage is 100%. Every row must pass. With a lower coverage, the check tolerates some failing rows and reports a failure as one Shape anomaly for the dataset.
- The check failed few enough rows. When a check fails more rows than the Scan's Maximum Record Anomalies per Check (10 by default), all of that check's failures are reported as one Shape anomaly instead of one Record anomaly per row. See Maximum Record Anomalies per Check.
See Rule Types for every rule type that can produce Record anomalies.
One Anomaly per Row¶
By default, a Scan creates one Record anomaly per failing row, not one per failed check. When the same row fails several checks, those checks are grouped into a single anomaly:
- The Failed Checks section lists every check the row failed, each with its own message.
- The anomaly's Impact is the highest among its failed checks, so the most serious rule the row breaks decides how it ranks.
- The anomaly starts with the Default Anomaly Assignee of every failed check that has one. See Anomaly Assignees.
One Anomaly per Check¶
The One anomaly per check scan default changes this grouping. It is set in Platform Defaults and can be overridden per datastore and per table or file:
| One anomaly per check | Anomalies for a row that fails 3 checks | Failed checks on each anomaly |
|---|---|---|
| Off (default) | 1 | All 3 checks |
| On | 3 | 1 check each |
Leave it off when your team remediates row by row, so each anomaly shows every issue found on a row. Turn it on when your team remediates check by check, so each anomaly covers one check. With the setting on, each anomaly has its own status, Impact, assignees, and notifications, and its own copy of the row in the enrichment datastore. See One anomaly per check for the full behavior.
A check that was rolled up into a Shape anomaly, or that has a coverage below 100%, is not part of these groups. The same row can then appear in a Record anomaly for its other checks and among the source records of a Shape anomaly.
What a Record Anomaly Shows¶
| Part | What it shows |
|---|---|
| Anomalous Records | Always 1: the row the anomaly is about. |
| Failed Checks | Each check the row failed, with a message that names the field and the value, such as salary has the value 30000, which is under the minimum of 40000. |
| Source Records | The row itself, with every field. The cell that failed is highlighted, so you can see the problem without reading the whole row. The row is stored only when the source datastore has an enrichment datastore. See Source Records. |
| Description | A summary of the failure built from the failed checks. See Anomaly Description. |
A check can replace the standard message with the value of another column on the same row, such as a column that already explains the row in business terms. That option, Custom Anomaly Description, changes Record anomaly messages only.
How a Later Scan Recognizes It¶
Every Record anomaly gets a fingerprint built from the checks it lists as failed and every value in the row. If a later Scan finds the same row failing the same check, with every value unchanged, it produces the same fingerprint, so duplicate handling can archive the new anomaly as Duplicate or reopen the earlier one. Change any value in the row and the fingerprint changes too, and the Scan reports a new anomaly.
Rule Types¶
These rule types evaluate each row, so they produce Record anomalies. All of them except Metric also produce a Shape anomaly when the check's coverage is below 100% or when it fails more rows than the limit.
Examples¶
The Sample Data tables below follow the Source Records view: one row per record, with only the failing cell highlighted.
The situation: Your employees table feeds payroll, and every salary must be at least 40,000. A Min Value check on salary, with a minimum of 40000 and 100% coverage, guards that rule.
Sample Data
| emp_id | name | department | salary |
|---|---|---|---|
| 101 | John Doe | Finance | 52000 |
| 102 | Bob Johnson | Support | 30000 |
| 103 | Jane Smith | Engineering | 75000 |
| 104 | Ana Lima | Support | 28500 |
What gets flagged
Rows 102 and 104 are under the minimum. Each failing row becomes its own Record anomaly, so the Scan reports two anomalies, one per employee. Only the salary cell is highlighted: the other fields are part of the row, not of the failure.
Record Anomaly (emp_id 102)
salary has the value 30000, which is under the minimum of 40000
Record Anomaly (emp_id 104)
salary has the value 28500, which is under the minimum of 40000
The situation: Your orders table has two checks: a Not Null check on customer_id, because every order must belong to a customer, and a Positive check on amount, because an order cannot have a negative total.
Sample Data
| order_id | customer_id | order_date | amount |
|---|---|---|---|
| 5001 | C-310 | 2026-10-01 | 129.90 |
| 5002 | C-118 | 2026-10-01 | 54.00 |
| 5003 | NULL | 2026-10-02 | -15 |
| 5004 | C-207 | 2026-10-02 | 310.25 |
What gets flagged
Order 5003 fails both checks. Because both failures belong to the same row, the Scan reports one Record anomaly with two failed checks, not two anomalies. Both failing cells are highlighted in its source record, and its Impact is the higher of the two checks' levels. With One anomaly per check turned on for the orders table, the Scan reports two Record anomalies instead, one for each check.
Record Anomaly (order_id 5003)
customer_id has no value
amount has the value -15, which is not positive
The situation: The employees table from the first example is reloaded every night with the same data, and the Scan runs with Archive Duplicate Anomalies turned on. Yesterday's Record anomaly for emp_id 102 is still open.
Sample Data (the next night)
| emp_id | name | department | salary |
|---|---|---|---|
| 101 | John Doe | Finance | 52000 |
| 102 | Bob Johnson | Support | 30000 |
| 103 | Jane Smith | Engineering | 75000 |
| 104 | Ana Lima | Support | 41000 |
What gets flagged
Row 102 fails again with every value unchanged, so the new Record anomaly has the same fingerprint as the open one and is archived as Duplicate right away. The open list keeps only yesterday's anomaly. Row 104 now passes: its salary was corrected, so no new anomaly is created for it. If the nightly Scan is a Full Scan, which has Auto Resolve Anomalies on by default, yesterday's anomaly for row 104 is resolved by this Scan. See Auto-Resolve on Full Scans.
Record Anomaly (emp_id 102, archived as Duplicate)
salary has the value 30000, which is under the minimum of 40000
See Also¶
-
Shape Anomalies
Anomalies about many rows or the whole dataset: what creates them, what they count, and examples.
-
AI Managed and Authored
How anomalies from AI Managed and Authored checks differ, the AI badge, and how triage tunes AI Managed checks.
-
Impact
How the Low to Critical impact level is decided from the failed checks, and when it updates.
-
Status
The lifecycle of an anomaly, from Active and Acknowledged to the archived statuses.
-
Assignees
How the Assignees field works, who can be assigned, and when assignees are notified.
-
Fingerprints
How Qualytics recognizes a newly detected anomaly as a duplicate of one it already found.
-
Anomaly Views
The four screens that show anomalies: how to reach each one, what it shows, and what you can do there.
-
Description
The business-friendly explanation of the data quality issue behind an anomaly.
-
Source Records
The rows behind an anomaly, how to read them, and how masked values are protected.
-
Tickets
Linked Jira and ServiceNow tickets: sync modes, what reaches the ticket, and status sync.
-
Timeline
The record of every change to an anomaly, and how comments and mentions work.
-
Examples
Real scenarios that follow an anomaly from the Scan that finds it to the decision that closes it.
-
Best Practices
Guidelines for keeping the anomaly list short, trusted, and acted on.
-
Permissions
The team permission and user role behind every anomaly action.
-
How It Works
How a Scan creates anomalies, AI Managed and Authored checks, the lifecycle, duplicates, and notifications.