{# T48 evals index page -- lists scans with at least one llm_evals row. #} {% extends "admin_layout.html" %} {% block page_title %}Evals{% endblock %} {% block breadcrumb %} Admin / Evals {% endblock %} {% block content %}

Evals

Side-by-side multi-model comparisons on production scans.

Today: ${{ '%.4f'|format(today_usd or 0.0) }} / ${{ '%.2f'|format(cap_usd or 0.0) }} Browse scans →
{% if not rows %}
No evals recorded yet. Open a scan from /admin/scans and click "Evals" on its debug page, or jump straight to /admin/evals/<scan_id> to start a fresh batch.
{% else %}
{% for row in rows %} {% endfor %}
Scan Target Owner Evals Total cost Last eval Action
{{ row.scan_id_short }} {{ row.target_url }} {{ row.owner_email or '(anonymous)' }} {{ row.eval_count }} ${{ '%.4f'|format(row.total_cost) }} {{ row.last_eval_at }} View matrix
{% endif %}
{# T48.1: shared modal for "Start new eval". select-scan mode -- the #} {# index page doesn't pin a scan id, so the picker is visible. #} {% with mode='select-scan' %} {% include 'partials/eval_new_modal.html' %} {% endwith %}
{% endblock %}