Any Not Null Check FAQ
Common questions about how the Any Not Null check evaluates completeness, how it handles NULLs and filters, and how anomalies are reported.
Behavior
When does a row pass and when does it fail?
A row passes as soon as at least one of the selected fields carries a non-NULL value. It fails only when every selected field is NULL on that row.
Do empty strings, zero, and false count as values?
Yes. Any Not Null is a NULL-only check. Any non-NULL value satisfies the rule, including empty strings (""), 0, and false. If your data uses placeholders such as "" or "N/A" to mean "missing", either normalize them upstream with a Computed Field or pair the rule with a companion check that treats those placeholders as violations.
How is Any Not Null different from Not Null?
Not Null asserts that every selected field is populated on every row. Any Not Null asserts that at least one of the selected fields is populated. When one non-NULL field is enough, use Any Not Null; when every field is required, use Not Null.
Does the order of fields in the check matter?
No. The evaluation checks all selected fields against NULL at once, and their order does not affect the result.
Does the filter run before or after the check?
Before. The platform applies the filter first and then evaluates only the rows that pass the filter. Filtered-out rows cannot trigger an anomaly and are not counted in the totals.
Anomaly Reporting
What do the anomaly messages look like?
Record Anomaly: None of the fields '<field_list>' have a value assigned
Shape Anomaly: For the fields '<field_list>', X.XXX% of N records (K) have no value set for any field
When a filter is set, both Record and Shape Anomaly messages end with [filter: <expression>].
Does Any Not Null produce Record Anomalies, Shape Anomalies, or both?
At 100% coverage (the default), violating rows are reported as Record Anomalies. Below 100% coverage, a failed coverage assertion produces one Shape Anomaly for the dataset. A scan can also roll up a large number of Record Anomalies into one Shape Anomaly.
Does Custom Anomaly Description work for Any Not Null?
Yes, for Record Anomalies. The anomaly_message_field payload field (and the Custom Anomaly Description toggle in the UI) replaces the Record Anomaly message with the value of the named column on the violating row. When that column is null, missing, or empty on a violating row, the standard Record template is used instead. The option does not affect Shape Anomalies.
How are the selected fields highlighted in Source Records?
Every selected field that is NULL on a violating row is highlighted with an orange outline and an orange-tinted background in the Source Records view. Fields outside the check render normally.
Configuration
Does Any Not Null have rule-specific properties?
No. The check has no additional properties. In the API, send "properties": {} or omit the key.
Can I use Any Not Null on a single field?
Yes, the platform accepts a single field, but the rule is designed for two or more. With one field the semantics are identical to Not Null (the row fails when that field is NULL), so use Not Null instead: the anomaly messages are clearer.
Can I lower the coverage on an Any Not Null check?
Yes. Coverage at 1.0 (100%) means every row must pass. Lowering coverage to 0.995 allows up to 0.5% of rows to fail without raising an anomaly; once the failing fraction goes past that, the check reports a Shape Anomaly. Use lower coverage with care: a real regression that happens to fall just under the threshold will not raise an alert at all.
Can I add or remove fields on an existing check?
Yes. A PUT to /api/quality-checks/{id} can update fields (along with most other fields). The rule type, the target container, and the associated Check Template stay immutable. See the API page for the editable/immutable matrix and the team permission each update needs.
Related
- Introduction: formal definition, field scope, and general/anomaly properties.
- How It Works: full semantics, NULL handling, filter behavior, and edge cases.
- Examples: three production scenarios with sample data and resulting anomalies.
- API: payload example and field notes for creating an Any Not Null check programmatically.