Skip to content

Is Type Best Practices

Guidelines for getting reliable signal from Is Type checks while keeping the noise (and the maintenance) low.

Run it on staging, not on already-typed columns

A column the source already declares as a number cannot hold anything else, so the check would always pass and add cost for no signal. Is Type earns its place on text columns: flat-file loads, staging tables, and payloads flattened into strings.

Pick the narrowest type that is still correct

Integral rejects decimals, while Fractional accepts both. Choosing Fractional to be safe hides the whole-number rule you actually wanted. Pick the type the consumer expects, not the most permissive one.

Watch the sentinel values

N/A, -, unknown, and '' are the usual reason this check fires. They are values, not absences, so they fail. Decide whether the fix is to normalize them to NULL upstream or to reject them at the source, and record that decision in the check's description.

Pair it with the rule that validates the value

Is Type says a value is readable as a number; it says nothing about whether the number is plausible. Combine it with Between, Min Value, or Max Value once the type is guaranteed.

Use Matches Pattern when the shape matters more than the type

A code like 2026-W03 is not a date, and an identifier like 00123 loses meaning as an integer. When the rule is about the shape of the text, Matches Pattern states it directly.

Keep coverage at 100% unless a known backlog exists

At 100% coverage every failing row is reported as a Record Anomaly, which tells you exactly which rows break the rule. Below 100% the check reports a single Shape Anomaly only when the failing fraction crosses the tolerance, and no per-row detail is produced. Lower coverage only while a known set of legacy rows is being cleaned up.

Scope with a filter instead of loosening coverage

When the rule only applies to part of the table (one segment, one channel, one period), express that with a filter clause rather than by lowering coverage. The filter removes the out-of-scope rows from evaluation entirely, and the expression is echoed in every anomaly message.

Route the anomalies to the right people

A failure usually points at the system that produced the value, not at the warehouse. Set an Anomaly Assignee from the team that owns that producer, and tag the check so related checks are easy to find.

See Also