Skip to content

Greater Than Check FAQ

Answers to common questions about how the Greater Than check compares a numeric field against a threshold, how inclusivity and tolerance behave, and how anomalies are reported, grouped by topic.

Behavior

Is the threshold inclusive or exclusive?

It depends on the Inclusive setting: on, the comparison is >= and a value equal to the threshold passes; off, it is > and that value is flagged.

What does the Numeric comparator do?

It adds a tolerance to the comparison. The margin is added to the row's value before the threshold is applied, so a value that misses by less than the margin still passes. The margin can be absolute or a percentage of the compared value.

What happens on a numeric field nested inside an array?

It cannot be checked with Greater Than. The rule accepts Integral and Fractional fields only, and has no array-element mode. A numeric field nested inside an array of structs is stored as an array, so it is excluded too. To check the numbers inside an array element by element, use Between, Not Negative, or Positive, which support array elements.

How are NULL values treated?

NULLs pass. A row with NULL in the evaluated field is not counted as a violation. Greater Than only asserts that present values satisfy the rule. If the field must also be populated, pair the check with a Not Null check on the same field.

Which field types can I check?

Numeric fields only: integers and decimals. An array column is rejected with 422, and so is a numeric field nested inside an array of structs, since it is stored as an array. A number stored as text does not appear in the field picker; expose it with a numeric type first.

Does the filter run before or after the comparison?

Before. The platform applies the filter first and then evaluates the comparison only on 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: <field> has the value <value>, which is not greater than <limit>

Shape Anomaly: <field> values are not greater than <limit>, affecting N of M asserted records

When a filter is set, the message names it at the end of its first sentence, as (applied to records where <expression>). Record and Shape Anomaly messages both carry it.

Does Greater Than 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.

Scan settings can group a large number of Record Anomalies into one rolled-up Shape Anomaly, which carries the Shape Anomaly message. This behavior applies across rule types and is documented under Maximum Record Anomalies per Check.

Does the message say whether the threshold was inclusive?

No. The message shows the field, the value, and the threshold, but not the inclusivity setting. Check the configuration when a value sitting exactly on the threshold is reported.

Does Custom Anomaly Description work for Greater Than?

Yes. Greater Than emits Record Anomalies, so the anomaly_message_field payload field (and the Custom Anomaly Description toggle in the UI) applies.

When the option points at another column on the same row, the Record Anomaly message becomes that column's value for the violating row, shown as written. When the column is null, missing, or empty, the message falls back to the rule's standard wording, and when the column is masked the message reads <masked>. Shape Anomaly messages are unaffected.


Configuration

Can I lower the coverage on Greater Than 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 move the threshold on an existing check?

Yes. In the UI, open the check, change Value, Inclusive, or the Numeric comparator, and click Update; see Edit a Check for the full steps. Through the API, a PUT to /api/quality-checks/{id} updates the whole properties object. The rule type, the target container, and the associated Check Template stay immutable; see the API page for the editable/immutable matrix.

What permission do I need to create or edit Greater Than check?

The Drafter team permission on the datastore covers Draft work (creating a check as Draft or editing it while it stays Draft). Anything that puts the check into evaluation, such as creating or editing an Active check, archiving, or deleting, requires the Author team permission (or above). Viewing only requires Reporter. See Permissions for the full matrix.

How is Greater Than different from Min Value?

Min Value states a plain bound with a single property and no tolerance. Greater Than adds an explicit inclusivity setting and an optional numeric tolerance, which is what you want when the boundary is contested or the data carries rounding noise.

How do I compare against another column instead of a constant?

Use Greater Than Field, which compares the field against another field on the same row.