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
When comparing two runs,exp.compare() now shows whether the difference is real or sampling noise:
p<0.01 ✦✦— highly significant, very unlikely to be noisep<0.05 ✦— significant at the standard thresholdp<0.10— marginal, treat with cautionp≥0.10— not significant, likely sampling noise
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:- ≥ 85%: reliable for CI gating
- 70–85%: usable for iteration; add more cases to average out judge variance
- < 70%: judge is significantly non-deterministic — lower temperature, use a larger judge model, or pin
questions=inCheckEvaluator
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.
