pub fn is_regression(
baseline: f64,
current: f64,
higher_is_better: bool,
tolerance: f64,
) -> boolExpand description
The one regression rule.
The verdict is computed in three places — by the engine for the recorded
OutcomeResult, by outcome_review when it drafts the revert, and by
areev eval run --tolerance when it re-accepts a model swap — and any two
silently disagreeing would either revert a change that held or sit on one
that regressed. So all of them call this.
tolerance is the policy’s minimum effect size in the metric’s own unit
(OutcomeEvalset::min_effect, or --tolerance in percentage points of
the pass rate): a worsening of at most that much is not a regression. It
is a floor, not a significance test — no p-value, no interval; a host
that needs statistics has the run counts to compute them. Zero is the
pre-policy behaviour: any drop is a regression. EPSILON is only
floating-point equality slack, so a value read twice that differs in the
last bit does not flip the verdict; it is not a noise floor.