{% extends "base.html" %}
{% block title %}Classifier vs judge · {{ job.job_id }} — Nullius{% endblock %}
{% block crumb %}/ {{ job.job_id }} / classifier vs judge{% endblock %}
{% block head %}
{% endblock %}
{% block body %}
The recorded outcome is the classifier's deterministic reading of the exception, verifier and patch; the judge's
failure_cause is its reading of the transcript. Where they disagree is listed first. The recorded outcome never changes.
Classifier vs judge experimental
{{ job.job_id }}
| Trial | Recorded outcome | Compatible with | Judge's pick | Confidence | p(pick) | {% if with_suggests %}Suggests experimental | {% endif %}
|---|---|---|---|---|---|---|
| {{ r.task }} | {{ r.outcome_label }} | {{ r.compatible|join(' · ') if r.compatible else '—' }} | {% if r.choice %}{{ r.choice }}{% if r.version and r.version != QUESTIONS_VERSION %} {{ r.version }}{% endif %}{% else %}not judged{% endif %} | {% if r.confidence is not none %}{{ '%.0f'|format(r.confidence * 100) }}%{% else %}—{% endif %} | {% if r.p is not none %}{{ '%.0f'|format(r.p * 100) }}%{% else %}—{% endif %} | {% if with_suggests %}{% if r.suggests %}{% for s in r.suggests %}{{ C_LABELS[s] }}{% if not loop.last %} or {% endif %}{% endfor %}{% if r.likely %} direct {{ '%.0f'|format((r.likely_p or 0) * 100) }}%{% endif %} — a suggestion from the transcript; the recorded outcome stays {{ r.outcome_label }}{% else %}—{% endif %} | {% endif %}
The judge's pick is not one the recorded outcome allows. Strongest first: by the judge's confidence, then the probability on the pick.
{% if view.rows.disagree %}{{ rows_table(view.rows.disagree, 'reconcile-disagreements') }}{% else %}None above the threshold.
{% endif %}The judge chose other: a cause none of its options describes. Not a claim about which option the classifier should have used, so listed apart from the disagreements.
{{ rows_table(view.rows.other, 'reconcile-others') }}The classifier could not place these trials. The judge's pick names the outcome labels it is compatible with — a place to look, never a reclassification: the recorded outcome stays {{ C_LABELS.unknown }}.
{{ rows_table(view.rows.suggestion, 'reconcile-suggested', with_suggests=True) }}None.
{% endif %}None.
{% endif %}None.
{% endif %}None.
{% endif %}The classifier's labels and the judge's options are not the same list, so a trial agrees when the pick is one its outcome does not contradict. A label with several compatible options is one the classifier cannot split further; a label with none is not comparable.