Skip to content
About
Main content

Multiple comparisons and alert fatigue

Why does a large expectation suite produce alert fatigue by arithmetic?

Multiple comparisons: alert fatigue is arithmetic

This is arithmetic, not a discipline problem. Freshlane has 200 tables × 20 columns × 3 checks = 12,000 assertions. Suppose each assertion has a false-positive rate of one in a thousand per run, and runs once a day. = 12,000 × 0.001 = 12. Every day, forever, even if the data is perfect.

(The textbook name for the underlying effect is the multiple-comparisons problem: test enough hypotheses and some will "fail" by chance.)

Every response is lossy:

ResponseWhat you lose
Raise thresholds (more misses)
Correct family-wise (e.g. divide the significance level by the number of tests, the Bonferroni correction)power (smaller real defects are missed)
Aggregate to one verdict per datasetlocality (you no longer know which column)
Give paging authority only to a handful of checkscoverage where you did not give authority

There is no operating point with neither false alarms nor misses. There is only a choice of which to buy. and silent corruption are the same dial at opposite ends. A quality system tuned for zero noise is, by construction, tuned for low recall.

Every mature stack converges on the last option: a small set of gates with teeth, and a large set of signals without. That convergence is empirical evidence for the principle stated in Gates, quarantine, stop-the-line.

Compression: statistics turn checks into classifiers. At scale, significance measures your row count, and false alarms are arithmetic.