eval_compare_runs
Compare two evaluation-report JSONs to reveal pass-rate and score deltas, plus per-case regressions and improvements, showing whether a prompt or model change improved the baseline run.
Instructions
Compare two multivon-eval report JSONs and return a structured diff.
Loads both reports from disk (the JSON produced by
EvalReport.to_json()), pairs cases by stable ID and case digest, and
returns pass-rate / average-score deltas plus the per-case
regressions and improvements lists. Includes a McNemar
p-value only when pairing evidence supports it. A large p-value
does not establish equivalence. Legacy reports remain diagnostic.
Use this when you've made a prompt / retrieval / model change and want to know if the new run actually improved over the baseline — not just on aggregate, but case-by-case.
Args:
baseline_json_path: Filesystem path to the baseline report
JSON (e.g. "runs/baseline.json").
new_json_path: Filesystem path to the new / proposal report
JSON to compare against the baseline.
Returns:
A dict with:
- pass_rate_delta: float, new - baseline pass rate
- avg_score_delta: float, new - baseline average score
- regressions: list of dicts with input,
baseline_status, proposal_status,
baseline_score, proposal_score
- improvements: same shape as regressions
- mcnemar_p_value: float or null — paired-test p-value
- baseline / proposal: summary blocks with
name, pass_rate, avg_score, errors,
flaky
- paired_count / added_count / removed_count:
pairing stats so the caller can see how many cases
lined up vs. drifted between runs
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| new_json_path | Yes | ||
| baseline_json_path | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||