Skip to content

Between Times Check FAQ

Answers to common questions about how the Between Times check evaluates a time window, how the boundaries behave, and how anomalies are reported, grouped by topic.

Behavior

Are the boundaries inclusive or exclusive?

Both are inclusive, and there is no setting to change that. A value equal to Min or to Max passes. When an edge must be excluded, use the strict pair After Date Time and Before Date Time. Shifting the boundary by a fixed step instead is only safe when the column is no more precise than that step, so it excludes sub-second values on a high-resolution timestamp.

How are NULL values treated?

NULLs pass. A row with NULL in the evaluated field is not counted as a violation. If the field must also be populated, pair the check with a Not Null check on the same field.

What happens when the data and the boundaries have different time zones?

Both boundaries are stored as UTC instants and the comparison runs in UTC. Values with an explicit time zone are compared directly; values without one are interpreted as UTC (a Date counts as midnight UTC of that day). Normalize mixed-zone data upstream with a Computed Field so the window is unambiguous.

What happens on an array field?

Every element is tested against the window, and the row fails as soon as one element falls outside it. NULL elements pass, and empty and NULL arrays pass, since there is nothing to evaluate. Element-wise evaluation runs as a field-level check, so the result is a Shape Anomaly for the field rather than per-row Record Anomalies, whatever the coverage is set to.

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 falls outside <min> and <max>

Shape Anomaly: <field> values fall outside <min> and <max>, 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 Between Times 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 Custom Anomaly Description work for Between Times?

Yes. Between Times 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 a Between Times 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 window on an existing check?

Yes. In the UI, open the check, change Min or Max, 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 a Between Times 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 Between Times different from Between?

Between works on numeric fields and lets you choose inclusivity for each side. Between Times applies the same idea to dates and timestamps, with both boundaries always inclusive.