# Labeling Queue

The labeling queue is the list of [tasks](https://docs.imerit.net/core-concepts/tasks) that are distributed to labelers, in order.

If your project's workflow has multiple labeling stages, each stage will have its own queue.

## Using the Labeling Queue

From the dashboard, click on the *Start Labeling* button on the top-right:

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FtXb2aPesOCXvPgtr7tkq%2Fimage.png?alt=media&#x26;token=a70d2520-ef1e-488d-836e-a4f706a4fd53" alt=""><figcaption></figcaption></figure>

You will be shown the first labeling task that is available to you from one of the labeling queues. If your project has more than one labeling queue, the queue will be picked at random. Once you label it and click on *Submit*, you will be shown the next, and so on.

{% hint style="info" %}
You may choose to label a certain task without following queue order by going to the *Task* tab and clicking on any task, or by clicking on a circle under the *Labels* column in the *Assets* tab.

Doing so does not invoke the labeling queue, and the *Submit* button will not be available to you. Instead, you will see the *Save* button, indicated by a floppy disk icon. This is because labeling and saving the asset will not move you forward one task. Essentially, you will only edit that one particular task.
{% endhint %}

### Properties of the Labeling Queue

* The task at the top of the queue is the task that will be shown next to labelers in the stage.
* Each project has one labeling queue for each *Label* stage in your [workflow](https://docs.imerit.net/core-concepts/workflow). When labelers open a new task, they pick from the top of the queue the first task that is unassigned or assigned to them.
* All tasks in a *Label* stage are automatically part of a labeling queue.
* Tasks get added to the bottom of the queue as they are created. Thus, the queue is ordered by task creation time, first in first out.
* Tasks that have been assigned to user X (for example, X is currently labeling them) will be unavailable to Y. Y will be given the next task in the queue that is unassigned or assigned to them.

Whenever users press on the *Start Labeling* button on the top-right corner of the dashboard, they are shown the first task in the labeling queue. When they complete labeling and press on *Submit*, they pick another task from the top of the queue, and so on.

{% hint style="info" %}
If the project has multiple labeling queues as a result of having more than one *Label*-type stage, clicking on *Start Labeling* will choose one of the labeling queues at random.

If you wish to label in a particular queue, click on the downward-facing chevron next to the *Start Labeling* button a pick a particular queue you'd like to work on.
{% endhint %}

## Reordering the Labeling Queue

<details>

<summary>For projects created on or before Ango Hub 4.6, expand this. Otherwise, keep reading below.</summary>

You may reorder the labeling (and review) queues to prioritize certain batches.

For example, say you have `Batch_1`, `Batch_2`, and `Batch_3` in your project. While normally tasks are presented randomly from any batch, you may reorder tasks in such a way that tasks from Batch 1 are presented first, then when they are done, tasks from Batch 2, and so on.

{% hint style="info" %}
Reordering reorders tasks simultaneously in all stages. Currently there is no way to reorder tasks in a single stage without using the `priority` SDK function.
{% endhint %}

To reorder all queues, navigate to the *Workflow* tab, then click on the arrow next to *Sync Queues.* Lastly, click on *Re-order & Sync:*

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FPNppJuyK8HbvuKABmEfx%2Fimage.png?alt=media&#x26;token=59387604-42d2-412b-89eb-c0b5ab03777f" alt=""><figcaption></figcaption></figure>

A popup will appear. Select the batches you'd like to prioritize, in order, then click on *OK.*

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FYczwJB3bcp64lNYERpZY%2Fimage.png?alt=media&#x26;token=52f812c0-02be-47eb-b4b8-a4712da09802" alt=""><figcaption><p>In this example, labelers and reviewers will be shown tasks from the batch named <code>1_4</code> first, then <code>4_1</code>, and so on.</p></figcaption></figure>

Now, when picking labeling or reviewing tasks from any queue, tasks from the batch you selected first will be shown, followed by the next, and so on.

{% hint style="info" %}
If there are tasks which were already assigned to a user but not completed, belonging to a non-priority batch, those tasks will be shown first.

In short, this is the prioritization algorithm:

1. Assigned tasks from prioritized batches, in order of priority
2. Assigned tasks from non-prioritized batches
3. Non-assigned tasks from prioritized batches, in order of priority
4. Non-assigned tasks from non-prioritized batches
   {% endhint %}

</details>

Please refer to the [Priority](https://docs.imerit.net/core-concepts/priority) docs page.
