---
title: "Get Comparison Progress"
method: GET
path: "/run_sets/compare/{job_id}"
---

# Get Comparison Progress

`GET /run_sets/compare/{job_id}`

Get the progress and results of an async comparison job.

Poll this endpoint to check the status of a comparison started with
POST /run_sets/compare/start. Once status is 'completed', the result
field will contain the full comparison report.

Recommended polling interval: 3-5 seconds.

## Path parameters

- `job_id` string, required

## Response `200`

Successful Response

- ComparisonJobProgressResponse — Response for checking comparison job progress.
  - `job_id` string, required
  - `status` string, required
  - `progress_percent` number
  - `error` string, nullable
  - `result` RunSetComparisonReport — Complete comparison report between two run sets.
    - `comparison_id` string, required — Unique ID for this comparison
    - `run_set_a` RunSetInfo, required — Basic information about a run set.
      - `id` string, required
      - `name` string, nullable
      - `description` string, nullable
      - `image_url` string, nullable
      - `runs_per_incident` integer, required
      - `session_count` integer
      - `incident_count` integer
      - `created_at` string, nullable
      - `completed_at` string, nullable
    - `run_set_b` RunSetInfo, required — Basic information about a run set.
      - `id` string, required
      - `name` string, nullable
      - `description` string, nullable
      - `image_url` string, nullable
      - `runs_per_incident` integer, required
      - `session_count` integer
      - `incident_count` integer
      - `created_at` string, nullable
      - `completed_at` string, nullable
    - `incident_comparisons` IncidentComparisonReport[], required — Per-incident comparison reports
      - `incident_id` string, required
      - `incident_key` string, required
      - `session_comparisons` SessionComparisonReport[], required — All pairwise session comparisons for this incident
        - `comparison_id` string
        - `incident_id` string, required
        - `incident_key` string, required
        - `session_a_id` string, required
        - `session_b_id` string, required
        - `evaluation_a_id` string, required — Evaluation ID for session A
        - `evaluation_b_id` string, required — Evaluation ID for session B
        - `dimensions` DimensionComparison[], required
          - `dimension` 'root_cause_accuracy' | 'evidence_recall' | 'investigation_efficiency', required — The three dimensions used to compare sessions.
          - `winner` 'session_a' | 'session_b' | 'tie', required
          - `justification` string, required — AI-generated explanation with specific examples and metrics
          - `confidence` number — Average judge confidence across all runs
          - `agreement_rate` number — Fraction of runs that agreed on the winner (1.0 = unanimous)
          - `num_runs` integer — Number of judgment runs performed for this dimension
          - `dimension_name` string, required
          - `is_stable` boolean, required — Whether the judgment is considered stable (high agreement + confidence).
        - `overall_winner` 'session_a' | 'session_b' | 'tie', required
        - `wins_by_session` object, required — Count of dimension wins per session
        - `summary` string, required — AI-generated overall comparison summary
        - `session_a_wins` integer, required
        - `session_b_wins` integer, required
        - `ties` integer, required
      - `dimension_aggregations` DimensionAggregation[], required — Aggregated results per dimension
        - `dimension` 'root_cause_accuracy' | 'evidence_recall' | 'investigation_efficiency', required — The three dimensions used to compare sessions.
        - `run_set_a_wins` integer, required — Number of comparisons won by run set A
        - `run_set_b_wins` integer, required — Number of comparisons won by run set B
        - `ties` integer, required — Number of tied comparisons
        - `total_comparisons` integer, required — Total number of comparisons
        - `synthesized_insight` string — AI-synthesized explanation of trends for this dimension
        - `run_set_a_win_rate` number, required — Percentage of comparisons won by run set A.
        - `run_set_b_win_rate` number, required — Percentage of comparisons won by run set B.
        - `winner` 'run_set_a' | 'run_set_b' | 'tie', required — Determine winner based on win counts.
      - `overall_winner` 'run_set_a' | 'run_set_b' | 'tie', required
      - `wins_by_run_set` object, required — Total dimension wins across all comparisons per run set
      - `synthesized_summary` string — AI-synthesized summary of trends across all session comparisons
      - `total_session_comparisons` integer, required
    - `dimension_aggregations` DimensionAggregation[], required — Cross-incident aggregated results per dimension
      - `dimension` 'root_cause_accuracy' | 'evidence_recall' | 'investigation_efficiency', required — The three dimensions used to compare sessions.
      - `run_set_a_wins` integer, required — Number of comparisons won by run set A
      - `run_set_b_wins` integer, required — Number of comparisons won by run set B
      - `ties` integer, required — Number of tied comparisons
      - `total_comparisons` integer, required — Total number of comparisons
      - `synthesized_insight` string — AI-synthesized explanation of trends for this dimension
      - `run_set_a_win_rate` number, required — Percentage of comparisons won by run set A.
      - `run_set_b_win_rate` number, required — Percentage of comparisons won by run set B.
      - `winner` 'run_set_a' | 'run_set_b' | 'tie', required — Determine winner based on win counts.
    - `overall_winner` 'run_set_a' | 'run_set_b' | 'tie', required
    - `wins_by_run_set` object, required — Total incident-level wins per run set
    - `executive_summary` string — AI-generated executive summary of the comparison
    - `total_incidents` integer, required
    - `total_session_comparisons` integer, required
  - `run_set_a` RunSetInfo — Basic information about a run set.
    - `id` string, required
    - `name` string, nullable
    - `description` string, nullable
    - `image_url` string, nullable
    - `runs_per_incident` integer, required
    - `session_count` integer
    - `incident_count` integer
    - `created_at` string, nullable
    - `completed_at` string, nullable
  - `run_set_b` RunSetInfo — Basic information about a run set.
    - `id` string, required
    - `name` string, nullable
    - `description` string, nullable
    - `image_url` string, nullable
    - `runs_per_incident` integer, required
    - `session_count` integer
    - `incident_count` integer
    - `created_at` string, nullable
    - `completed_at` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/traversal/apis/fastapi.md) · [All operations](https://skmtc.net/traversal/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/traversal/fastapi/revisions/2134ebffd1ef/schema)
