{% extends "base.html" %} {% block title %}Compare Runs{% endblock %} {% block content %}
Compare scopes runs of a single type (training, etl, eda, or inference). Select runs of the same type to compare them side by side.
| Run ID | Model(s) | AUC | F1 | Precision | Recall | Threshold |
|---|---|---|---|---|---|---|
| {{ run.run_id }} | {% if is_multi and run.evaluation.ranking %} Ensemble ({{ run.evaluation.ranking | length }} models) {% else %} Single Model {% endif %} | {{ format_metric(metrics.get("auc"), best.auc, run.run_id) }} | {{ format_metric(metrics.get("f1"), best.f1, run.run_id) }} | {{ format_metric(metrics.get("precision"), best.precision, run.run_id) }} | {{ format_metric(metrics.get("recall"), best.recall, run.run_id) }} | {{ format_metric(metrics.get("threshold"), None, run.run_id) }} |
| Rank | Model | AUC | F1 |
|---|---|---|---|
| {{ loop.index }} | {{ model.name }} | {{ format_metric(mm.get("auc"), None, run.run_id) }} | {{ format_metric(mm.get("f1"), None, run.run_id) }} |
| Run ID | Timestamp | Duration (s) | Status | Feature count | Outputs |
|---|---|---|---|---|---|
| {{ entry.run_id }} | {{ meta.get("timestamp") or "—" }} | {{ meta.get("duration_seconds") if meta.get("duration_seconds") is not none else "—" }} | {{ meta.get("status") or "—" }} | {{ meta.get("feature_count") if meta.get("feature_count") is not none else "—" }} |
{% if outputs %}
|