Run each case multiple times
- Score: mean across runs
- Pass rate: fraction of runs that passed
- Stability: whether the case behaves consistently
Reading the results
Terminal output
The reporter adds pass rate and stability columns automatically whenruns > 1:
Combine with parallel execution
Run cases in parallel and each case multiple times:Statistical significance in experiment comparison
exp.compare() reports an approximate two-proportion test using run summaries.
A p-value describes compatibility with the no-difference hypothesis under the
sampling assumptions; it is not the probability that a regression is real.
A nonsignificant result is not proof of no regression.
baseline_report.compare(proposal_report). Read the
statistical guide for paired tests, missing coverage,
multiple comparisons, and limits of the summary-level approximation.
CI/CD: fail on instability
Recommended defaults
More runs = more reliable signal, but proportionally more model calls. Start at
runs=3 for most pipelines.
How scores are aggregated
For each case across N runs:- Score: mean of per-run scores
- Passed: majority vote — passes if more than half of runs passed
- Flaky:
0 < pass_count < N(at least one pass and one fail) - Latency: mean across runs
Judge reliability
Model flakiness is about your model’s variance. Judge reliability is about the evaluator’s variance — whether the same judge call on the same output produces the same pass/fail decision twice. Enable it once in your config:None.
Agreement measures repeatability, not correctness. A consistently wrong grader
can score 100%. Inspect sample size, disagreements, and agreement with independent
human labels before gating. There is no universal percentage that establishes
fitness for a release decision. See the temperature transport limitation
before relying on configured sampling values.
Note: reliability_check=True makes additional LLM calls (one re-evaluation pass over reliability_sample cases). Keep reliability_sample low (5–10) for routine runs; increase for audits.
