Designing the solution architecture

Before you start creating a project, think about whether you should divide it into several smaller projects. It's called 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.
  • You can assign a skill to a performer in one project and filter performers by this skill in another project.

Benefits of decomposition

After you decompose your project:

  • Tasks get easier and faster to perform.
  • Tasks require less skills.
  • This makes it easier to set up hotkeys in the task interface, which also speeds up the work of performers.
  • Task instructions get shorter, clearer, and more performer-friendly.
  • You can make tasks cheaper for the reasons above.
  • The task performance quality gets 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. You can also divide a task's main part into several projects sometimes.

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 main 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 items”, enable non-automatic acceptance of tasks 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 non-automatic acceptance option, you 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 the main task. 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 do this, you need performers who are competent in this field.

  • If a performer is to provide a general solution by multiple criteria.

    For example, 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 one performer.
  • Field tasks: If you need to verify various data about the same organization, it makes no 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.


You can see an example of decomposition in Collecting relevant data. It provides a solution consisting of four projects:

We also recommend watching a video tutorial for requesters. It explains how to decompose projects and provides a test task consisting of three projects: filtering data, completing the task, and reviewing responses.