Target and quotas

a detailed description of target and quotas parameters available in the feasibility request

📘

Tips and tricks

The target object is not mandatory, some feasibility requirements might have the no target defined

The quotas object is not mandatory, some feasibility requirements might have the no quotas defined

Both Target and Quotas share the same library of questions and answers

Target Structure

PropertyDescriptionTypeRequired
QuestionsThe list of questions used to qualify for this quota.

The details corresponding to each “id” is available by calling method: GET /supplier/v1/locales/{locale}/questions

{locale} will represent the country default language corresponding to the country of field defined in the “countryCode” value of the request. The country default can be determined by calling methode: GET /supplier/v1/locales

In my example survey, the country code is “CA” for Canada, and I can expect to receive question ids limited to the “en-CA” locale which is listed as the default country code.
The “operator” will be either “AND” or “OR” to signal that the respondent must have each answer (“AND”) from the “answers” list or if they need to have only on answer in the list (“OR”) to qualify for the cell
Object with “id”, “operator”, and “answers” propertiesNo
AnswersThe possible answers for each question can be returned by method: GET /supplier/v1/locales/{locale}/questions/{questionId}/answers

Object can contain an “id”, or it will contain “rangeStart” / ”rangeEnd” pair to signal a range value.

The age range quotas won’t specify an “id” answer code, but will instead contain something like “rangeStart”:18,” rangeEnd”:35 to represent the quota cell for 18-35 year old respondents for the age range quota.
Objects with “id” or “rangeStart” or “rangeEnd” propertiesNo
"target":[  
      {  
         "questions":[  
            {  
               "id":-1,
               "answers":[  
                  {  
                     "id":-1,
                     "rangeStart":"1",
                     "rangeEnd":"65"
                  }
               ],
               "operator":"OR"
            }
         ]
      },
      {  
         "questions":[  
            {  
               "id":12203,
               "answers":[  
                  {  
                     "id":65236
                  },
                  {  
                     "id":65237
                  }
               ]
            }
         ]

Quota Structure

PropertyDescriptionTypeRequired
QuotaidA unique identifier per quota cell in the “quotas” listGUIDYes
tableNameThe “tableName” value to be used to group the list of quotas as being related. A respondent will have to qualify for at least one cell per table to complete the survey. Each cell in the table may or may not have the same questions, but each cell will have a unique combination or questions and/or answersTextYes
quotaNameA unique text identifier per quota cell in the “quotas” listTextNo
interviewTypeAn interviewType value of “completes” means the target for the quotas is completes for the survey, where “prescreen” will mean the target is for completes or screen outs for the survey

*For now only "completes" value will be available.
Text of “completes” or “prescreens”No
questionsThe list of questions used to qualify for this quota.

The details corresponding to each “id” is available by calling method: GET /supplier/v1/locales/{locale}/questions

{locale} will represent the country default language corresponding to the country of field defined in the “countryCode” value of the request. The country default can be determined by calling methode: GET /supplier/v1/locales

In my example survey, the country code is “CA” for Canada, and I can expect to receive question ids limited to the “en-CA” locale which is listed as the default country code.
The “operator” will be either “AND” or “OR” to signal that the respondent must have each answer (“AND”) from the “answers” list or if they need to have only on answer in the list (“OR”) to qualify for the cell
Object with “id”, “operator”, and “answers” propertiesYes
AnswersThe possible answers for each question can be returned by method: GET /supplier/v1/locales/{locale}/questions/{questionId}/answers

Object can contain an “id”, or it will contain “rangeStart” / ”rangeEnd” pair to signal a range value.

The age range quotas won’t specify an “id” answer code, but will instead contain something like “rangeStart”:18,” rangeEnd”:35 to represent the quota cell for 18-35 year old respondents for the age range quota.
Objects with “id” or “rangeStart” or “rangeEnd” propertiesYes
PercentageA whole number representing the percentage of the survey’s “numberOfCompletes” that this quota needs. This is how you identify the count for the quota.NumberYes
"quotaTables":[  
      {  
         "tableName":"Table:agerange: x ",
         "quotas":[  
            {  
               "quotaId":"7c4f3cde-de4a-4b78-a2f7-1ac04fd55947",
               "quotaName":"agerange_1-E1",
               "interviewType":"completes",
               "questions":[  
                  {  
                     "answers":[  
                        {  
                           "id":-1,
                           "rangeStart":"18",
                           "rangeEnd":"24"
                        }
                     ],
                     "id":-1,
                     "operator":"OR"
                  }
               ],
               "percentage":14.0
            },
            {  
               "quotaId":"8a559028-6365-4557-a036-44e564e37988",
               "quotaName":"agerange_2-E1",
               "interviewType":"completes",
               "questions":[  
                  {  
                     "answers":[  
                        {  
                           "id":-1,
                           "rangeStart":"25",
                           "rangeEnd":"34"
                        }
                     ],
                     "id":-1,
                     "operator":"OR"
                  }
               ],
               "percentage":22.0
            },
            {  
               "quotaId":"857dfa0f-612f-45ac-8bbb-df04deecdd4d",
               "quotaName":"agerange_3-E1",
               "interviewType":"completes",
               "questions":[  
                  {  
                     "answers":[  
                        {  
                           "id":-1,
                           "rangeStart":"35",
                           "rangeEnd":"44"
                        }
                     ],
                     "id":-1,
                     "operator":"OR"
                  }
               ],
               "percentage":20.0
            },
            {  
               "quotaId":"f0e4004a-0bb5-4317-bd5d-ac02a8da4cdd",
               "quotaName":"agerange_4-E1",
               "interviewType":"completes",
               "questions":[  
                  {  
                     "answers":[  
                        {  
                           "id":-1,
                           "rangeStart":"45",
                           "rangeEnd":"54"
                        }
                     ],
                     "id":-1,
                     "operator":"OR"
                  }
               ],
               "percentage":22.0
            },
            {  
               "quotaId":"99fb3f7e-dfae-4a23-9a00-637d34dca0a1",
               "quotaName":"agerange_5-E1",
               "interviewType":"completes",
               "questions":[  
                  {  
                     "answers":[  
                        {  
                           "id":-1,
                           "rangeStart":"55",
                           "rangeEnd":"65"
                        }
                     ],
                     "id":-1,
                     "operator":"OR"
                  }
               ],
               "percentage":22.0
            }
         ]
      },
      {  
         "tableName":"Table:Gender S1 - NA: x ",
         "quotas":[  
            {  
               "quotaId":"b90c7c7c-de3a-4434-8d4b-03f26ae9e8c6",
               "quotaName":"resp_genderfemale-E1",
               "interviewType":"completes",
               "questions":[  
                  {  
                     "answers":[  
                        {  
                           "id":65236
                        }
                     ],
                     "id":12203,
                     "operator":"OR"
                  }
               ],
               "percentage":51.0,
               "completes":null,
               "maxCompletes":null
            },
            {  
               "quotaId":"8a31b6b2-fc1c-4125-9f12-417f32d11397",
               "quotaName":"resp_gendermale-E1",
               "interviewType":"completes",
               "questions":[  
                  {  
                     "answers":[  
                        {  
                           "id":65237
                        }
                     ],
                     "id":12203,
                     "operator":"OR"
                  }
               ],
               "percentage":49.0
            }
         ]
      }
   ],