Skip to main content
You ran a baseline on Monday, changed the prompt on Wednesday and ran again, and now want to know which evals this change made better and which it made worse. Before comparing, pin which run each side is. “The latest results” change with the next run; if you compare against them, today’s conclusion and tomorrow’s may differ. Every time niceeval exp finishes, the terminal’s NEXT panel lists the Run IDs created this time. Write down the baseline and candidate IDs.

View them side by side in the browser

View opens both Runs at once. You can compare pass/fail, scores, duration, and cost eval by eval, then click into a specific run to see the conversation and tool calls.

Let scripts and CI read the comparison

When an automated flow needs a structured comparison, use a runs.compare request:
mode decides how the two sides line up: The comparison honestly reports each side’s denominator, plus unpaired evals, excluded evals, and missing results. Missing results are not treated as zero or failure. When the conditions are not met, you get a named error explaining why, not a number that looks normal. First check that the request is valid with query explain, then run it for real:

When a comparison can be trusted

  • Both sides ran the same set of evals, each run a similar number of times.
  • The two sides differ only in the one variable you want to compare; see Organize Experiments for how to write that.
  • Look at cost and duration alongside the pass rate. A slightly higher pass rate at double the cost is not necessarily worth switching to.
For how to read a single run’s results, see View Run Results.