# Stage Comparison

## Overview

The Stage Comparison Plugin compares annotations created in two different workflow stages and identifies differences between them. This is especially useful for QA workflows, gold standard validation, reviewer vs labeler analysis, and auditing annotation consistency across stages.

<table data-card-size="large" data-view="cards"><thead><tr><th align="center"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td align="center">Stage Comparison</td><td data-object-fit="contain"><a href="https://angohub-docs-assets.s3.eu-central-1.amazonaws.com/plugin-icons-banners/stage-comparison.png">https://angohub-docs-assets.s3.eu-central-1.amazonaws.com/plugin-icons-banners/stage-comparison.png</a></td></tr></tbody></table>

## Plugin Functionality

The Stage Comparison Plugin compares annotations created in two different workflow stages and generates a detailed reports to highlight changes between them. It helps teams evaluate labeling quality, measure review impact, and audit annotation consistency across stages.

* Compares annotations between a selected evaluation and stages to identify differences.
* Detects added, removed, and modified annotations across supported tools, classifications and relations.
* Highlights geometry-level and attribute-level changes.
* Generates annotation and annotator level metrics in a structured report for analysis and monitoring.
* Supports object-level matching using a configurable attribute to track changes to the same object across stages.

  <figure><img src="/files/uBr64BMic7kRmwJd62h2" alt=""><figcaption></figcaption></figure>

Running the Stage Comparison plugin on your project generates multiple CSV files:

**Comparison File**

This file contains a table where each row represents an object and shows the comparison results between two workflow stages.

**Aggregate File**

Each row corresponds to an asset. This table aggregates data from the Comparison File and summarizes the comparison result statistics.

**Metric File**

This file provides overall metrics for the comparison.

The CSV files contains following columns:

{% tabs %}
{% tab title="Comparison File" %}

* Batch
* External ID
* ***Assignee***
  * Evaluation Stage Assignee
  * Gold Stage Assignee
* Page
* Schema ID
* Object ID
* Tool Type
* ***Answer***
  * Evaluation Stage Answer
  * Gold Stage Answer
* ***Description***
  * Evaluation Stage Description
  * Gold Stage Description
* Comparison
  {% endtab %}

{% tab title="Aggregate File" %}

* Batch
* External ID
* Evaluation Stage Assignee
* Gold Stage Assignee
* Comparison Type-1
* Comparison Type-2
* ...
* Comparison Type-N
  {% endtab %}

{% tab title="Metric File" %}
**Tools | Classifications | Relations**

* Comparison
* Count
* Percentage

**Overall**

* Comparison
* Count
* Percentage
  {% endtab %}
  {% endtabs %}

### Comparison Categories <a href="#supported-data-types" id="supported-data-types"></a>

#### Classifications

<table><thead><tr><th width="256.88671875">Comparison</th><th>Description</th></tr></thead><tbody><tr><td>Missing</td><td>The answer in the Gold stage is available, but the answer in the Evaluation stage is not</td></tr><tr><td>Unqualified</td><td>The answer in the Evaluation stage is available, but the answer in the Gold stage is not</td></tr><tr><td>Match</td><td>The answer in the Gold stage is exactly equal to the answer in the Evaluation stage</td></tr><tr><td>Wrong*</td><td>The answer in the Gold stage is different from the answer in the Evaluation stage</td></tr><tr><td>Wrong-Missing Answer*</td><td>The answer exists in the Gold stage, but one or more expected answers are missing in the Evaluation stage.</td></tr><tr><td>Wrong-Unqualified Answer*</td><td>The Evaluation stage contains one or more additional answers that are not present in the Gold stage.</td></tr></tbody></table>

{% hint style="info" %}
The **"Wrong"** category is applicable only to Radio, Single-Select Dropdown, Single-Select Tree, and Text classifications.&#x20;
{% endhint %}

{% hint style="info" %}
The **"Wrong-Missing Answer"** and **"Wrong-Unqualified Answer"** categories are applicable only to Checkbox, Multi-Select Dropdown, and Multi-Select Tree classifications.
{% endhint %}

#### Tools <a href="#supported-data-types" id="supported-data-types"></a>

<table><thead><tr><th width="334.15234375">Comparison</th><th>Description</th></tr></thead><tbody><tr><td>Missing</td><td>The tool exists in the Gold stage, but no corresponding tool exists in the Evaluation stage.</td></tr><tr><td>Unqualified</td><td>The tool exists in the Evaluation stage, but no corresponding tool exists in the Gold stage.</td></tr><tr><td>Match</td><td>The tool class, coordinates, and description are exactly equal between the Gold and Evaluation stages.</td></tr><tr><td>Wrong-Class</td><td>The tool exists in both stages, but the assigned classes are different.</td></tr><tr><td>Wrong-Coordinates</td><td>The tool exists in both stages, but the coordinates are different.</td></tr><tr><td>Wrong-Description</td><td>The tool exists in both stages, but the descriptions are different.</td></tr><tr><td>Wrong-[Class+Coordinates+Description]</td><td>Multiple mismatches exist simultaneously for the same tool.</td></tr></tbody></table>

#### Relations <a href="#supported-data-types" id="supported-data-types"></a>

<table><thead><tr><th width="233.23046875">Comparison</th><th>Description</th></tr></thead><tbody><tr><td>Missing</td><td>The relation exists in the Gold stage, but no corresponding relation exists in the Evaluation stage.</td></tr><tr><td>Unqualified</td><td>The relation exists in the Evaluation stage, but no corresponding relation exists in the Gold stage.</td></tr><tr><td>Match</td><td>The relation class and connected entities exactly match between the Gold and Evaluation stages.</td></tr><tr><td>Wrong-Class</td><td>The relation exists in both stages, but the relation classes are different.</td></tr><tr><td>Wrong-Description</td><td>The relation exists in both stages, but the descriptions or attributes are different.</td></tr><tr><td>Wrong-Class+Description</td><td>Multiple mismatches exist simultaneously for the same relation.</td></tr></tbody></table>

### Supported Data Types <a href="#supported-data-types" id="supported-data-types"></a>

* Compatible with all data types available in AngoHub.

### Supported Annotation Tools <a href="#supported-annotation-tools" id="supported-annotation-tools"></a>

* Classifications - All
* Tools
  * Bounding Box
  * Rotated Bounding Box
  * Polygon
  * Segmentation
  * Entity
  * Polyline
  * Point
  * PDF
  * Nested Classifications
* Relations
  * Single
  * Group

## Plugin Configuration <a href="#plugin-configuration" id="plugin-configuration"></a>

From the **Stage Filter** field, pick the stages containing the tasks you'd like to get the export of. Similarly, from the **Batch Filter** field, you may select one or more batches the tasks of which will be exported. By default, all tasks are exported from all batches.

If you wish to receive an email when the export is complete, toggle **Send Email** on.

You may vary a number of settings related to your export from the **Config JSON** field. Each option is detailed below:

```json
{
  "gold_stage": null,
  "evaluation_stage": null,
  "start_date": "2020-12-31",
  "end_date": null,
  "ignored_schema_ids": [],
  "merge_output": false,
  "additional_attribute_name": null,
  "include_key_frames_only": true,
  "logging_frequency": 0
}
```

* **"gold\_stage":** The stage used as the gold standard reference for comparison.
  * Example:
    * <kbd>"gold\_stage": "Review"</kbd>

* **"evaluation\_stage":** The stage whose annotations are evaluated against the gold standard.
  * Example:
    * <kbd>"evaluation\_stage": "Label"</kbd>

* **"start\_date":** Start date for filtering assets included in the comparison (YYYY-MM-DD).
  * Example:
    * <kbd>"start\_date": "2020-12-31"</kbd>&#x20;

* **"end\_date":** End date for filtering assets included in the comparison (YYYY-MM-DD).
  * Example:
    * <kbd>"end\_date": "2021-12-31"</kbd>

* **"ignored\_schema\_ids":** List of schema IDs to exclude from the comparison.
  * Example:
    * <kbd>"ignored\_schema\_ids": \["12345", "12346"]</kbd>

* **"merge\_output":** Whether to merge comparison results into a single consolidated output.
  * Example:
    * <kbd>"merge\_output": true</kbd>
    * <kbd>"merge\_output": false</kbd>

* **"additional\_attribute\_name":** Attribute name used for object-level matching across stages.
  * Example:
    * <kbd>"additional\_attribute\_name": "Object ID"</kbd>

* **"include\_key\_frames\_only":** Specifies whether only key frames should be included in the metrics calculation. (For video assets only)
  * Example:
    * <kbd>"include\_key\_frames\_only": true</kbd>
    * <kbd>"include\_key\_frames\_only": false</kbd>

* **"logging\_frequency":** Defines how frequently progress logs are displayed; setting this value to 0 disables logging entirely, while any positive integer enables logging at the specified interval. For more information on how to view plugin logs, [see here](/plugins/introduction-to-plugins/monitoring-plugin-progress.md).
  * Example:
    * <kbd>"logging\_frequency": 0</kbd>
    * <kbd>"logging\_frequency": 100</kbd>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.imerit.net/plugins/first-party-ango-plugins/stage-comparison.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
