Skip to content

Predicted By Best Practices

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

Write the prediction as the relationship you can defend

The expression is the definition of correct for this column. Base it on something that genuinely determines the value, a documented formula, a rate, another column it is derived from, rather than on a curve that happens to fit today's data.

Size the tolerance from observed drift, not from a round number

Look at how far the column actually strays from the prediction over a few weeks, then set the band just outside that. A tolerance guessed at zero reports rounding, and one guessed too wide never reports anything.

Remember the band does not scale

The tolerance is an absolute number. On a column whose values span orders of magnitude, one band cannot serve the whole range. Scope the check with a filter, or move to Satisfies Expression where you can write a relative comparison.

Filter out rows the prediction cannot cover

An expression that references an empty column returns nothing, and those rows are reported. If a missing input is legitimate, exclude those rows with the Filter Clause rather than absorbing them by lowering coverage.

Prefer a simpler rule when the relationship is simple

If the prediction is just another column, Equal To Field says so more clearly and offers a relative tolerance. If it is a constant, Equal To does. Keep Predicted By for relationships that need an expression.

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