Labeling queue

Understand labeling and task queues and view reservations.

When you send a batch to a project, Labelbox will enter those data rows into the project's labeling queue. When a batch of data rows enters the queue of the Initial labeling task, Labelbox automatically distributes the data rows among each active labeler.

Labelbox reserves several data rows for that labeler — meaning no other team member can label an asset that is reserved by a teammate. The reservation system ensures no contention occurs and results in duplicate labeling. Additionally, this approach allows Labelbox to pre-load assets for a faster labeling experience.

View queued data rows

To view your assets queued for labeling, go to the data row tab in your project and click on the To label filter in the left-side panel. In this tab, you can easily explore your queued data to see what remains in the labeling queue. You can visualize the queued data using the gallery view.

View the queued data rows.

View the queued data rows.

To easily view the active reservations per team member, navigate to Project > Settings > Queue.

Set priority for queued data rows

You can set the priority of the data rows queued in your labeling project. To do so:

  1. Use Annotate to open your project and then select your project.

  2. When the project overview appears, select the Data Rows tab to display a list of data rows queued for your project. The current priority for each row is displayed in the Priority column.

  1. Select the row (or rows) you want to change. When you do this, the Selection menu displays the number of selected data rows.

  2. From the Selection menu, choose Change priority, which displays the Change data priority dialog.

  3. Set the Data row priority field to the desired priority value and select the Confirm button.

Priorities occur in the background. When you confirm new priorities, a notification banner acknowledges the changes and includes a link to the notification center, where you can follow progress.

The Data row priority field accepts 32-bit integer values, which means you can set priority to any integer value between -2,147,483,648 to 2,147,483,647. (For practical purposes, we recommend against using large priority values.)

The Change data row priority dialog considers lower values to be more important than higher values. That is, a priority value of 1 is considered higher priority than a value of 10. This means that negative values are considered more important than positive values. (In practice, you're free to interpret the values in any way you see fit.)

You can also control data row priorities by:

  • Setting the priority when you create a batch to be sent to a project.
  • Using the SDK to set or update the priority for individual data rows.

Set priority at batch creation

While setting up a batch to label, you can set the priority of data rows from 1 through 5. Note that a lower value of priority means it will get labeled earlier.

The above image is from the batch creation modal, where the priority for all data rows is selected to the default value of 5.

Update priority via the Python SDK

Even after data rows have been added to a project, the priority can be modified. The priority here can take all integer values. Currently, the modification of priority is supported via the SDK. See Project for instructions.

How reservations work

Once a labeler starts labeling, Labelbox reserves three assets for the labeler.

As labelers work through their reservations, the queue replenishes reservations. This ensures the labeler has sufficient work available and minimizes avoiding unintended downtime due to latency spikes or data queue changes.

Reservations expire after 24 hours of idle time. Once a reservation expires, the associated data rows become available to other labelers. To claim an expired data row reservation, open the project and begin labeling the data row.

Expired reservations are displayed in the project settings queue until another labeler claims the data row. Once the reservation expires, the data row can be claimed, even though the reservation still appears in the original project settings queue. Clearing expired reservations does not change the availability of the data row. The data row must be claimed before the queue is updated.

The next section shows how to clear reservations.

Clear reservations

You can manually clear out reservations for a user by navigating to Project > Settings > Queue. Find the user in the queue for whom you wish to clear the reservations, and select Clear reservations.


Clearing reservations during active labeling

Any work performed and not yet submitted by the labeler will be lost if you clear the reservations (unless the same asset is taken by the same labeler at a later point in time, which Labelbox cannot guarantee will occur).

Real-time labeling

When you enable real-time labeling, it allows your team to label continuously. This can be helpful if you have labeling time constraints or if you need to boost your labeling team’s efficiency by enabling a continuous flow in the labeling queue.

You can enable real-time labeling in Annotate > select a project > Settings > Automation.

When all assets in the queue have been labeled, the labeler will see a button that says Wait for next asset. When a labeler clicks on Wait for next asset, Labelbox will display a real-time screen that will automatically display the next task that enters the queue.


Best practices

  • To avoid lost work, Labelbox recommends that labelers consult their administrator if they anticipate being away from their computer for over 24 hours. Any unsubmitted work done by the original labeler will be lost if you clear the reservations.
  • The timer will stop counting review and label times if our system detects 5 minutes of inactivity. When we detect user activity again, we restart the timer. This is something Labelbox does intentionally to record only active screen time on the application.
  • All labeling work should be limited to one browser tab, and no mobile devices should be used. Duplicate labels may be unintentionally created when a user has multiple tabs open and is actively labeling.