Selecting eligible workers
By default, all tasks (HITs) posted to Amazon Mechanical Turk (Mechanical Turk) are available to all active workers in the Mechanical Turk marketplace. You can restrict the audience that's eligible for your HITs by adding qualification requirements. Qualification requirements can be used to both restrict the audience to workers that meet certain criteria, or exclude those that have certain attributes. These requirements operate on attributes that are assigned to workers as qualifications. Qualifications can be assigned by the Mechanical Turk system or requesters, and are visible to workers in their account.
Qualifications and qualification types
Qualification types are system- or requester-defined descriptions of an attribute
that can be associated with a worker. One example is the system-generated
qualification type NumberHITsApproved
, which measures the number of
HITs a worker has submitted and had approved. Another would be a requester-defined
qualification type that tracks how accurate a worker has been on previous tasks that
the requester has posted.
When a qualification type is assigned to a worker, it is applied as a
qualification for that worker. In the case of the
system-generated NumberHITsApproved
qualification type, a qualification
is automatically created for a worker as the work they submit is approved. For
custom qualification types, a requester can assign the qualification to a worker
using the AssociateQualificationWithWorker
operation and
optionally providing an integer value to associate with it.
Qualification requirements
A requirement is defined when calling either CreateHIT
or
CreateHITType
. Either operation accepts an array of one or more
QualificationRequirement
data structures to specify
the qualifications workers must have to be eligible for your HIT.
The QualificationRequirement
data structure comprises four
attributes: QualificationTypeId
, Comparator
, value (either
IntegerValues
or LocaleValues
), and
ActionsGuarded
. The QualificationTypeId
specifies the
qualification type that should be applied and can be either the ID of an Mechanical Turk system
qualification type, or one you create in your account. The Comparator
and value are then used to evaluate if the worker has the required qualification
attributes to be eligible for the HIT. Finally, the ActionsGuarded
indicates the level of visibility that a HIT has to workers that aren't eligible to
accept it.
The Comparator
attribute specifies how the qualification type is
evaluated and is typically used with a value. The following table illustrates the
values that can be used for Comparator
and the required value
attribute, if any. The existence Comparators
don't require a value
attribute since they are only used to evaluate if the qualification type has been
assigned, not the value that has been associated with it.
Type | Values | Required value attribute | Example |
---|---|---|---|
Existence |
Exists
|
None | Only include workers that have been assigned the qualification type, regardless of value. |
|
DoesNotExist
|
None | Exclude workers that have been assigned the qualification type. |
Numeric | LessThan |
IntegerValues
|
Only include workers that have been assigned the qualification type where the assigned value is less than 50. |
|
LessThanOrEqualTo
|
IntegerValues
|
Only include workers that have been assigned the qualification type where the assigned value is less than or equal to 50. |
| GreaterThan |
IntegerValues
|
Only include Workers that have been assigned the Qualification Type where the assigned value is greater than 50. |
|
GreaterThanOrEqualTo |
IntegerValues
|
Only include workers that have been assigned the qualification type where the assigned value is greater than or equal to 50. |
Equivalence |
EqualTo
|
IntegerValues or LocaleValues
|
Only include workers located in Spain. |
|
NotEqualTo
|
IntegerValues or LocaleValues
|
Only include workers who have been assigned the qualification type where the assigned value is not 42. |
Set |
In
|
IntegerValues or LocaleValues
|
Only include workers who have been assigned the qualification type where the assigned value is 1, 2, 3 or 8. |
|
NotIn
|
IntegerValues or LocaleValues
|
Only include workers who are not located in the US States of Florida and Georgia. |
The ActionsGuarded
attribute indicates the level of visibility that
your HIT has to workers who aren't eligible for it. This defaults to
Accept
, which indicates that ineligible workers can't accept it,
but they can see it in the Mechanical Turk marketplace and preview the task if they wish so
that they can request a qualification to work on the HIT if they wish to. If you
want to prevent them from previewing it, you can set the ActionsGuarded
to PreviewAndAccept
; they can then see it in their list of available
tasks and request any custom qualifications. Finally,
DiscoverPreviewAndAccept
hides the HIT from ineligible workers.
The CreateHIT
and CreateHITType
operations accept an
array of qualification requirements which can include one or more qualification
requirement data structures so you cano apply multiple requirements to workers to be
eligible for your task. Because workers must meet all of the
requirements, be careful to ensure that the requirements do not conflict. For
example, if you had a qualification requirement that specified workers must be
located in the US and a second requirement that they be located in canada, it would
be impossible for any worker to meet both criteria. If your goal is to include
workers in either the US or Canada, you would need replace the two requirements with
a single requirement using the In
Comparator
to restrict workers to those in an array containing both the
US and Canada.
System qualification types
The most commonly used qualification types are those provided by Mechanical Turk. These include the following:
-
A HITs approved qualification for the number of HITs that workers have successfully completed in the past, which can be used to identify workers with more or less experience.
-
An Approval Percentage qualification to specify workers that you have approved at a specified rate on previous tasks.
-
A Locale qualification to select workers in specific countries or US states.
-
A Masters qualification that is awarded to workers that have demonstrated superior performance over a period of time across thousands of HITs.
-
An Adult qualification that selects workers who have indicated they are over 18 years of age and are willing to work on potentially offensive content.
Each of these qualification types has an associated
QualificationTypeId
which can be found in the documentation for
QualificationRequirement
.
Using the HITs Approved qualification type
The NumberHITsApproved
qualification type restricts tasks to
workers with more or less experience based on their past work on Mechanical Turk. For
example, if you only wanted to use workers who were relatively new to the
platform and had successfully submitted fewer than 500 HITs, you would use the
following value for QualificationRequirements
.
QualificationRequirements: [ { QualificationTypeId: '00000000000000000040', Comparator: 'LessThan', IntegerValues: [500] } ]
If, instead, you wanted more experienced workers who had successfully completed 100 HITs, you would use the following.
QualificationRequirements: [ { QualificationTypeId: '00000000000000000040', Comparator: ' GreaterThanOrEqualTo', IntegerValues: [100] } ]
Using the Masters qualification type
The Masters qualification type is a Mechanical Turk–managed qualification type
that is assigned to workers when they have demonstrated superior performance
over a period of time across thousands of HITs. There is no value associated
with it, so you can simply use the Exists
comparator to apply it to
your tasks.
Note that there is an additional fee for using the Masters qualification on
your task as described in Mechanical Turk
Pricing
QualificationRequirements: [ { QualificationTypeId: '2F1QJWKUDD8XADTFD2Q0G6UTO95ALH', Comparator: 'Exists' } ]
Using the Percentage Approved type
The PercentAssignmentsApproved
qualification type restricts tasks
based on how often you have approved or rejected past work a worker has done for
you. For example, to only accept workers that have an approval rate of greater
than or equal to 95%, the following qualification requirement would be included
in your CreateHIT
calls.
QualificationRequirements: [ { QualificationTypeId: '000000000000000000L0', Comparator: 'GreaterThanOrEqualTo', IntegerValues: [95] } ]
Note that a worker's approval rate is statistically meaningless for small numbers of assignments, since a single rejection can reduce the approval rate by many percentage points. To ensure that a new worker's approval rate is unaffected by these statistically meaningless changes, if a worker has submitted fewer than 100 assignments for you, the worker's approval rate is 100%.
Using the Locale qualification type
Locale is a Mechanical Turk qualification type that specifies the workers that are
eligible for your task based on where they are located. To use Locale, you must
specify one or more LocaleValues
using a JSON data structure that
includes a Country
attribute and can optionally include a
Subdivision
attribute. The Country
attribute
should specify the two-character country code of the country. The
Subdivision
attribute is only supported when the
Country
is "US" and should specify the two-character
state code for the US state. The following example would restrict workers to
those in the US state of Minnesota.
QualificationRequirements: [ { QualificationTypeId: '00000000000000000071', Comparator: 'EqualTo', LocaleValues: [ { Country: "US", Subdivision: "MN" } ] } ]
To select multiple locations, you should use the In
comparator
and a list of locales as shown in the following example, which restricts the
task to workers in the US and Canada.
QualificationRequirements: [ { QualificationTypeId: '00000000000000000071', Comparator: 'In', LocaleValues: [ { Country: "US" }, { Country: "CA" } ] } ]
Use caution when using multiple Locale qualification requirements in the same HIT. If the requirements above were split into two requirements, one for the US and one for CA, no norkers could accept the task. However, using two Locale requirements is a good way to restrict workers to the US but exclude selected states. The following would include all workers in the US with the exception of workers in Florida and Georgia.
QualificationRequirements: [ { QualificationTypeId: '00000000000000000071', Comparator: 'Equals, LocaleValues: [ { Country: "US" } ] }, { QualificationTypeId: '00000000000000000071', Comparator: 'NotIn, LocaleValues: [ { Country: "US", Subdivision: 'FL'}, { Country: "US", Subdivision: 'GA'} ] } ]
Objectionable content
Some tasks, such as image moderation, involve handling content that some
workers might find objectionable, typically because it involves imagery that
contains violence or nudity. If there is the potential that some of your HITs
may contain objectionable content, you should make use of the Adult
qualification type. This restricts the task to workers who have confirmed they
are over 18 years of age and are willing to view potentially objectionable
content. The qualification requirement should also specify an
ActionsGuarded
value of PreviewAndAccept
or
DiscoverPreviewAndAccept
.
QualificationRequirements: [ { QualificationTypeId: '00000000000000000060', Comparator: 'Equals', IntegerValues: [1], ActionsGuarded: 'PreviewAndAccept' } ]
In addition, you should include "(WARNING: This HIT may contain adult content. Worker discretion is advised.)" in the title of your HIT.
Custom qualification type
Requester-defined qualification types can also be created to handle a range of needs in managing who can work on your tasks. Information on how to create and use custom qualification types can be found in Working with custom qualification types.