{{ ui_lang.integrity_heading|default('Annotation integrity') }}

{{ ui_lang.integrity_lede|default('Flags annotators who likely echoed an LLM or answered with little effort —') }} {{ ui_lang.integrity_lede_without_ground_truth|default('without ground truth') }}. {{ ui_lang.integrity_correlated_agreement|default('Correlated Agreement') }} (CA) {{ ui_lang.integrity_lede_ca_desc|default("is each annotator's same-item minus cross-item agreement with peers (low ⇒ random/low effort). When reference LLM labels are available,") }} {{ ui_lang.integrity_llm_alignment|default('LLM alignment') }} {{ ui_lang.integrity_lede_with_low|default('with low') }} {{ ui_lang.integrity_residual|default('residual') }} {{ ui_lang.integrity_lede_residual_desc|default('(independent agreement on items where they diverge from the LLM) is the covert-LLM tell. Treat as triage signals to review, not proof.') }}

{% if not reports %}

{{ ui_lang.integrity_no_annotations|default('No annotations to analyze yet.') }}

{% else %} {% for r in reports %} {% set hue = 0 if r.suspicion >= 0.66 else (40 if r.suspicion >= 0.34 else 140) %} {% endfor %}
{{ ui_lang.integrity_col_annotator|default('Annotator') }} {{ ui_lang.integrity_col_items|default('Items') }} {{ ui_lang.integrity_col_suspicion|default('Suspicion') }} {{ ui_lang.integrity_col_ca_score|default('CA score') }} {{ ui_lang.integrity_col_llm_alignment|default('LLM alignment') }} {{ ui_lang.integrity_col_residual|default('Residual') }} {{ ui_lang.integrity_col_flags|default('Flags') }}
{{ r.annotator }} {{ r.n_items }} {{ '%.2f'|format(r.suspicion) }} {{ '%.3f'|format(r.ca_score) if r.ca_score is not none else '—' }} {{ '%.0f%%'|format(r.llm_alignment*100) if r.llm_alignment is not none else '—' }} {{ '%.0f%%'|format(r.residual_agreement*100) if r.residual_agreement is not none else '—' }} {% for f in r.flags %}{{ f.replace('_',' ') }}{% endfor %}

{{ n_annotators }} {{ ui_lang.integrity_annotators_suffix|default('annotator(s).') }} {% if used_llm_labels %}{{ ui_lang.integrity_llm_labels_available|default('Reference LLM labels were available (LLM-echo signal active).') }} {% else %}{{ ui_lang.integrity_no_llm_labels|default('No reference LLM labels — Correlated-Agreement signal only; run the judge to enable LLM-echo detection.') }}{% endif %}

{% endif %}