Decomposition of the task

Before you start creating a project, consider dividing it into several smaller projects. This is called decomposition.

For example, in the Business information (example with decomposition) section, the task can be divided into four projects:

Benefits of decomposition

We recommend that you think through the architecture of a solution consisting of several projects in advance, since projects can be linked:
  • The result from one project can be the input for another project.
  • You can assign a skill to performers in one project and filter performers by this skill in another project.

After you decompose your project:

  • Tasks become easier and faster to perform.
  • Tasks require fewer skills.
  • It is easier to set up shortcuts in the task interface, which also speeds up the work of performers.
  • Task instructions will be shorter, clearer, and more performer-friendly.
  • You can make tasks cheaper for the reasons above.
  • The quality of results is higher and easier to control.
  • It may be easier to design a few simple tasks than a single large task. You'll have less difficulty creating the interface and writing instructions.

When should I use decomposition?

Usually, you can make a separate project with tasks to prepare data and check performers' responses. Sometimes you can also divide the main part of a task into several projects.

Preparing data within a separate project

  • Do you have data to be used as the basis for completing your task?

    You can entrust the collection of data for analysis to performers as part of a separate project.

  • Do I need to filter my data?

    Let's say you want to create a task titled “Select road signs in an image”, but you aren't sure that all images contain road signs. Create a separate project with a task titled “Are there road signs in an image?” to filter out unnecessary images.

    A data filtering task is usually cheap and can help you save on the most important task and simplify the task instructions and interface.

Reviewing responses in a separate project

  • You can set up a separate project where other performers check responses in submitted assignments. For example, if you want to create a project titled “Find similar products”, enable assignment review in this project and create a separate project with the “Are these items similar?” task to review responses, reject incorrect responses, and avoid paying for them.

    Attention. In the assignments review, specify the review period after which the tasks are accepted automatically. You need to make sure that this timeframe allows enough time to complete the project for checking responses and then reject tasks in the main task project.
  • If the responses cannot be combined automatically, you can set up a separate project where you ask performers to choose the most appropriate response. An example is if the responses are images of similar items and you only need one image like that.

Tip. Assign a skill to performers who completed tasks in the main project. For checking responses, you can assign the review task only to performers who don't have this skill.

Decomposing tasks

The easier the task, the better the results. If your task contains more than one question, it may be worth dividing it into several projects. Here are some examples of when decomposition is necessary:

  • If some questions in the task need additional filtering.

    For example, if you show a performer a photo of a cat and ask them to answer questions like “What color is the cat?” and “Is the cat asleep?”, it's better to divide this task into two projects. To answer the second question, you'll need an additional data filtering stage, since the cat's eyes should be visible in the photo.

  • If different performer skills are required to answer different questions of the task.

    Let's say that, in addition to the questions from the previous step, you want to find out the cat's breed. To answer this question, you need performers who have sufficient knowledge in this area.

  • If a performer must provide a general answer based on multiple criteria.

    For example, the task is to review multiple parameters of an ad and decide which category of buyers will be interested in it. It's better to ask specific questions about the ad and make a decision based on combinations of answers yourself. This way the results will be more accurate.

Some tasks consist of several questions, but they don't need any decomposition. For example:
  • Surveys: It's important that all questions are answered by the same performer.
  • Field tasks: If you need to verify various data about the same organization, it doesn't make sense to ask one performer to check whether the organization is open and another one to take a look at its business hours on the door.


I have a complex task. How do I break it down to get high-quality results?

If your task contains many objects of different types, you should break it down. For example, you can ask users to select numbers in the first project, doorways and windows in the second project, walls in the third project, and plumbing in the fourth project.

The simpler the task, the cheaper it is and the better the quality of the final result. Set the cost of labeling a single class of objects in photos at about $0.01.

Use the Object selection in an image template. You can open this template in the editor and add a drop-down list for labeling the selected object. See how to do this in the editor description (Dropdown list tab).

How do I make a voice recording of a text in a single audio file, but use about 1000 people to record it?

You need to break down your task for Toloka. If you have a 30-minute task intended for one person and containing all the phrases, the best approach is to divide it into individual phrases, which you can give to different performers. The template for voice recording tasks doesn't require that the user installs a separate voice recorder app.

Refer to our step-by-step guide for creating a voice recording task.

In the input data, you can pass the phrase for the performer to record ("enable navigation"), and the speech speed (normal speed). This is the data you need to save in the TSV file. See the Guide to learn about creating a TSV file and its structure.

The preview contains 4 tasks per suite by default. You can specify the number of tasks for your project when you upload the task file. Learn more about the preview.

For example, if you want one person to say the same phrase 10 times, create 10 tasks in a suite. The cost is specified per task suite. To define how many people should say a particular phrase, use the overlap in the pool. By the way, don't forget to set up filters in your pool. This way you can select only the performers who speak a certain language and use mobile devices: client = mobile Toloka.

You can delegate review of the voice recordings to other performers by creating a separate project. Find brief instructions on how to do this here.