Skip to main content

autojudge-evaluate

Evaluation tools for the TREC AutoJudge framework. Computes leaderboard correlations, inter-annotator agreement on qrels, leaderboard statistics, and format conversion for evaluation result files.

Installation

uv pip install autojudge-evaluate

CLI Commands

All commands are available via auto-judge-evaluate <command>.


meta-evaluate — Leaderboard correlation

Correlate predicted leaderboards against a ground-truth leaderboard.

auto-judge-evaluate meta-evaluate \
    --truth-leaderboard truth.eval.jsonl --truth-format jsonl \
    --eval-format tot -i results/*eval.txt \
    --correlation kendall --correlation spearman --correlation tauap_b \
    --truth-measure nugget_coverage --truth-measure f1 \
    --on-missing default \
    --output correlations.jsonl

Key options:

Option Description
--truth-leaderboard FILE Ground-truth leaderboard file (required)
--truth-format FMT Format: trec_eval, tot, ir_measures, ranking, jsonl
--eval-format FMT Format of input leaderboard files
-i FILE / positional Input leaderboard file(s), supports globs. Repeatable
--correlation METHOD Correlation method. Repeatable. Supports kendall, pearson, spearman, tauap_b, and top-k variants like kendall@15
--truth-measure NAME Truth measure(s) to correlate against. Repeatable. Omit for all
--eval-measure NAME Eval measure(s) to include. Repeatable. Omit for all
--on-missing MODE Handle run mismatches: error, warn, skip, default (fill 0.0)
--only-shared-topics Intersect topics across truth and eval (default: --all-topics)
--only-shared-runs Intersect runs across truth and eval (default: --all-runs)
--truth-drop-aggregate Recompute aggregates from per-topic data
--output FILE Output .jsonl or .txt
--out-format FMT jsonl (default) or table
--aggregate Report only mean across all judges

Output: One row per (Judge, TruthMeasure, EvalMeasure) with correlation values as columns.


qrel-evaluate — Inter-annotator agreement on qrels

Compare predicted relevance judgments (qrels) against truth qrels. Computes set overlap (precision, recall, F1) and agreement metrics (Cohen's Kappa, Krippendorff's Alpha, Jaccard, ARI).

auto-judge-evaluate qrel-evaluate \
    --truth-qrels official.qrels \
    --predict-qrels predicted.qrels

Key options:

Option Description
--truth-qrels FILE Truth qrels in TREC format
--truth-nugget-docs DIR Alternative: truth as nugget-docs directory
--predict-qrels FILE Predicted qrels in TREC format
--predict-nugget-docs DIR Alternative: predicted as nugget-docs directory
--truth-max-grade N Grade scale upper bound for truth (default: 1 = binary)
--predict-max-grade N Grade scale upper bound for predicted (default: 1)
--truth-relevance-threshold N Binary threshold for truth side (default: 1)
--predict-relevance-threshold N Binary threshold for predicted side (default: 1)
--on-missing MODE Handle topics in only one side: error, warn, default, skip
--output FILE Output .jsonl or .txt

Output: Per-topic table with Precision, Recall, F1, Jaccard, Kappa, Krippendorff's Alpha, ARI, plus a MEAN row.


leaderboard — Leaderboard statistics

Compute per-run statistics (mean, stderr, stdev, min, max) from leaderboard files.

auto-judge-evaluate leaderboard \
    --eval-format tot -i results/*eval.txt --sort

Key options:

Option Description
--eval-format FMT Input format (required)
-i FILE / positional Input file(s), supports globs. Repeatable
--eval-measure NAME Filter to specific measures. Repeatable
--sort Sort runs by mean score (descending)
--output FILE Output .jsonl or .csv

Output: One row per (Judge, RunID, Measure) with Topics, Mean, Stderr, Stdev, Min, Max.


Analysis Module

Post-hoc analysis, tables, plots of meta-evaluate output. Produces correlation tables and bar plots with judge categorization.

python -m autojudge_evaluate.analysis.correlation_table \
    -d ragtime:ragtime-correlations.jsonl \
    -d rag:rag-correlations.jsonl \
    -d dragun:dragun-correlations.jsonl \
    --judges judges.yml \
    --correlation kendall \
    --truth-measure nugget_coverage \
    --format latex \
    --plot-dir plots/

Judge configuration (judges.yml) maps cryptic filenames to display names and categories, with optional plot styling:

styles:
  colors:
    pointwise: "#4A90D9"
    pairwise:  "#D94A4A"
  hatches:
    gpt-4o:    ""
    llama-3:   "//"

judges:
  my-judge-A.eval:
    name: System A
    method: pointwise     # category column
    model: gpt-4o         # category column
  my-judge-B.eval:
    name: System B
    method: pairwise
    model: llama-3
  • styles.colors: maps category values to fill colors (any matplotlib color string)
  • styles.hatches: maps category values to hatch patterns (//, .., xx, \\, etc). Values combine across categories.
  • Color is picked from the first matching category value; hatches are combined from all matches.
  • Without a styles: section, bars use a sequential grayscale fallback.
  • Judges not in the YAML are excluded unless --all-judges is passed.

Key options: --format (github, latex, tsv, plain, html, pipe), --columns (correlations or measures), --summary (add mean/max rows), --aggregate (aggregate across datasets), --same THRESHOLD (highlight near-equal values).


eval-result — Format conversion and verification

Clean and convert evaluation result files.

# Convert tot to jsonl
auto-judge-evaluate eval-result data.txt -if tot -of jsonl -o data.jsonl

# Filter to specific runs and topics
auto-judge-evaluate eval-result data.txt -if tot -of jsonl -o filtered.jsonl \
    --filter-runs system_A --filter-runs system_B \
    --filter-topics topic_1

Key options:

Option Description
-if FMT Input format: trec_eval, tot, ir_measures, ranking, jsonl
-of FMT Output format (defaults to input format)
-o FILE Output file. Omit for roundtrip test to temp file
--filter-runs ID Keep only these runs. Repeatable
--filter-topics ID Keep only these topics. Repeatable
--filter-measures NAME Keep only these measures. Repeatable
--compare-aggregates Compare file aggregates vs recomputed from per-topic data
--drop-aggregates Drop existing aggregate rows
--recompute-aggregates Recompute from per-topic data (implies --drop-aggregates)
--roundtrip / --no-roundtrip Enable/disable roundtrip verification (default: on)

Supported formats:

Format Columns
trec_eval measure topic value (3 cols, run_id from filename)
tot run measure topic value (4 cols)
ir_measures run topic measure value (4 cols)
ranking topic Q0 doc_id rank score run (6 cols)
jsonl JSON lines with run_id, topic_id, measure, value

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autojudge_evaluate-1.0.0.tar.gz (62.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

autojudge_evaluate-1.0.0-py3-none-any.whl (55.8 kB view details)

Uploaded Python 3

File details

Details for the file autojudge_evaluate-1.0.0.tar.gz.

File metadata

  • Download URL: autojudge_evaluate-1.0.0.tar.gz
  • Upload date:
  • Size: 62.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for autojudge_evaluate-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2c6ce6e4aa71baaf03b8d1e72d1e654bc0e12dce0e2844d2b5f0741b68cabe86
MD5 8d892ead419b94c259da7f93fba20cb4
BLAKE2b-256 ff0ab1933ab1cae94e99b8e6fa87c664c0a6f09751483e02e7aa03ecaaf75926

See more details on using hashes here.

Provenance

The following attestation bundles were made for autojudge_evaluate-1.0.0.tar.gz:

Publisher: publish.yml on trec-auto-judge/auto-judge-evaluate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file autojudge_evaluate-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for autojudge_evaluate-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 184f0c775a6b679872deb890135dd77f369e3eb2a4f6bd5620907c436deefbc1
MD5 3ddda79e804ea2f1fe9a671e62540578
BLAKE2b-256 82f609065edf6214010c5d8ab8b1b95dc747ff962a2095617af213269a197e8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for autojudge_evaluate-1.0.0-py3-none-any.whl:

Publisher: publish.yml on trec-auto-judge/auto-judge-evaluate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

0.4.6

2 files

0.4.5

2 files

0.4.1

2 files

0.4.0

2 files

0.3.18

2 files

0.3.17

2 files

0.3.16

2 files

0.3.15

2 files

0.3.14

2 files

0.3.13

2 files

0.3.12

2 files

0.3.11

2 files

0.3.10

2 files

0.3.9

2 files

0.3.8

2 files

0.3.7

2 files

0.3.2

2 files

0.3.1

2 files

0.2.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page