The alert
The whole product is this message
The dbt run this night was green. Nothing failed, nothing retried, nothing paged. This is the message that arrives anyway, naming the model, the column, and the night the distribution changed.
- 1.Diff the payments vendor source schema against the contract as of Aug 11.
- 2.Check the fct_orders join grain against order_lines for duplicate keys.
- 3.Recompute the last 15 days of revenue reporting before anyone quotes it.
- 4.Add a not_null threshold test on promo_code so this becomes a hard failure, not a drift.
- 1.Diff the payments vendor source schema against the contract as of Aug 11.
- 2.Check the fct_orders join grain against order_lines for duplicate keys.
- 3.Recompute the last 15 days of revenue reporting before anyone quotes it.
- 4.Add a not_null threshold test on promo_code so this becomes a hard failure, not a drift.
Every one of the 15 column checks in this run was tested by both detectors. 4 cleared the confidence floor, and Benjamini-Hochberg then set the alert budget across the whole run rather than per check. At real warehouse scale that is thousands of tests a night, where per-check thresholds produce a steady drip of alarms and the tool gets muted.
Statistics decide whether something happened. The model only explains what already cleared that bar, and only ever sees a confirmed changepoint. Feeding raw column profiles to a model and asking “does this look wrong?” is how these products end up confidently wrong.