{{ ui_lang.expcompare_heading|default('Compare experiments') }}
{{ ui_lang.expcompare_lede_part1|default('Aggregate evaluator scores side by side. The first experiment is the baseline; deltas and the best value per metric are highlighted so regressions stand out. Each delta carries a') }} {{ ui_lang.expcompare_lede_strong|default('paired-bootstrap') }} {{ ui_lang.expcompare_lede_part2|default('significance badge and 95% CI — so you can tell a real change from noise.') }}
{% if experiments|length < 2 %}{{ ui_lang.expcompare_empty|default('Select at least two experiments to compare.') }}
{% else %}| {{ ui_lang.expcompare_col_metric|default('Metric') }} | {% for e in experiments %}{{ e.name or e.id }} {{ e.dataset_name }} · {{ e.dataset_version }}{% if loop.first %} · {{ ui_lang.expcompare_baseline|default('baseline') }}{% endif %} |
{% endfor %}
|---|---|
| {{ key }} | {% for e in experiments %} {% set v = e.aggregate_scores.get(key) %} {% set base = experiments[0].aggregate_scores.get(key) %}{% if v is none %}— {% else %}{{ '%.3f'|format(v) }} {% if not loop.first and base is not none %} {% set d = v - base %} {{ '%+.3f'|format(d) }} {% set sig = significance.get(e.id, {}).get(key) %} {% if sig and sig.mean_diff is not none and sig.n > 1 %} {{ ui_lang.expcompare_significant|default('significant') if sig.significant else ui_lang.expcompare_not_significant|default('n.s.') }} {% if sig.lo is not none %}{{ ui_lang.expcompare_ci_label|default('95% CI') }} [{{ '%+.3f'|format(sig.lo) }}, {{ '%+.3f'|format(sig.hi) }}]{% endif %} {% endif %} {% endif %} {% endif %} | {% endfor %}
| {{ ui_lang.expcompare_row_examples|default('Examples') }} | {% for e in experiments %}{{ e.example_count }} | {% endfor %}