{% extends "base.html" %} {% block breadcrumbs %} › {{ opts.app_label }} › {{ opts.verbose_name_plural }}{% endblock %} {% block title %}{{ opts.label }} — {{ site_title }}{% endblock %} {% block content %}
{{ opts.kind }}
{{ opts.label }}
{% if opts.description %}— {{ opts.description }}{% endif %}
| Field | Type | Required | Detail |
|---|---|---|---|
| {{ f.name }}{% if f.target %} target{% endif %} | {{ f['class'] }} | {{ 'yes' if f.required else 'no' }} | {%- for k, v in f.items() if k not in ('name','class','kind','required','null','target') -%} {{ k }}={{ v | short(40) }}{% if not loop.last %}, {% endif %} {%- endfor -%} |
| No fields declared. | |||
All dates {% for p in periods %} · {{ p }} {% endfor %}
{% endif %} {% if preview_error %}Could not read the source: {{ preview_error }}
{% elif rows %} {% else %}No rows matched.
{% endif %}| Version | Rows | Schema | Content | Notes | Created |
|---|---|---|---|---|---|
| v{{ v.version }} | {{ v.row_count | number }} | {{ v.fingerprint }} | {{ (v.content_hash or '')[:12] }} | {{ v.notes | short(60) }} | {{ v.created_at.strftime('%Y-%m-%d %H:%M') }} |
Not materialised yet.
{% endif %}| Version | Stage | Metrics | Params | Created |
|---|---|---|---|---|
| v{{ v.version }} | {{ v.stage }} | {% for k, val in (v.metrics or {}).items() %}{{ k }}={{ val | number }} {% endfor %} | {{ v.params | short(80) }} | {{ v.created_at.strftime('%Y-%m-%d %H:%M') }} |
Not trained yet.
{% endif %}{{ drift.rows }} logged prediction{{ '' if drift.rows == 1 else 's' }} from the last {{ drift.days }} days, against what v{{ drift.version }} was trained on.
| Column | Kind | Rows | PSI | Verdict |
|---|---|---|---|---|
| {{ column.name }} | {{ column.kind }} | {{ column.count | number }} | {{ '%.4f' | format(column.psi) }} | {{ column.verdict }} |
Population stability index: below 0.1 stable, 0.1–0.25 moderate, above 0.25 significant.
What v{{ importances.version }} weighted most heavily{% if importances.total > importances.rows | length %} — top {{ importances.rows | length }} of {{ importances.total }}{% endif %}.{% if importances.signed %} A hollow bar is a weight that argues the other way.{% endif %}
| {{ row.name | short(48) }} | {{ row.value | number }} |
|---|
| Run | Status | Summary | Started | Duration |
|---|---|---|---|---|
| {{ run.short_id }} | {{ run.status }} | {% for k, val in (run.summary or {}).items() %}{{ k }}={{ val | number }} {% endfor %} | {{ run.started_at.strftime('%Y-%m-%d %H:%M') }} | {{ run.duration_s | duration }} |
No runs yet.
{% endif %}| Trace | Input | Output | Steps | Tokens | Status |
|---|---|---|---|---|---|
| {{ t.short_id }} | {{ t.input | short(50) }} | {{ t.output | short(50) }} | {{ t.steps }} | {{ t.total_tokens | number }} | {{ t.status }} |
This agent has not run yet.
{% endif %}