Occasionally quotas require that they are constructed from responses to multiple questions. This can be achieved by creating a crosslist quota, a quota that is defined by combining the options from two or more lists or questions. For example, suppose a researcher wants to ensure the respondents are representative of the census data, based on age nested (crossed) by gender. The best way to do this would be to create a crosslist quota utilizing age and gender questions as the crosslist inputs. The resulting options of this quota would then be all possible (accepted) combinations of gender and age ranges. Configured this way, census information can then be used to set quota maximums for each age and gender grouping.
For information about the syntax and theory behind this programming concept, see Crosslists.
For information on creating quotas, see Quota creation and quota tags.
Order of operations
The order in which two or more lists are crossed is not necessarily important, but there are a few things to keep in mind when crossing two or more lists.
When using crosslists for quotas, the order in which the lists are crossed will determine how they appear in quota tables and graphs. For example, when using lists LISTA and LISTB to create the crossed list LISTAB, if we use crosslists: LISTA, LISTB
then LISTA's elements will make up the row elements in the quota table, with LISTB's elements making up the columns. Reversing the order - crosslists: LISTB, LISTA
- will result in LISTB's elements making up the row elements and LISTA's making up the column elements.
If three lists are crossed, say crosslists: LISTA, LISTB, LISTC
, then LISTA's elements will still make up the row elements of the quota table while LISTB and LISTC's element will make up the columns. In this scenario though, the columns will be listed in order such that the first several columns will be LISTB element 1 combined with each element of LISTC, then LISTB element 2 combined with each element of LISTC, and so forth, until each combination is shown. The list elements will be displayed in numerical order by their ID number.
Caution: Crossing more than three lists is not generally advised as it could result in overly large data structures. Such needs may be better managed with a different approach.
We will go into further detail on how the order in which lists are crossed can affect quotas later in this article.
Comparing with standard quotas
Quotas created from crossed lists are displayed differently than other quotas, both in the bar graphs displayed via the Quota tiles and the tables displayed under the Quota Manager applet. For the purposes of this article, we will use the following lists to create our crosslist examples: AGE_LIST, INC_LIST, and GENDER.
1. What is your gender? type: radio 1. Male 2. Female set list: GENDER 1. Male {if $Q1 == 1} 2. Female {if $Q1 == 2} 2. What is your annual household income (before taxes)? type: text datatype: whole prefix: $ size: 10 set list: INC_LIST 1. Less than $25,000 {if ($Q2 < 25000 )} 2. $25,000 - $49,999 {if ($Q2 >= 25000 ) and ($Q2 <= 49999 )} 3. $50,000 - $74,999 {if ($Q2 >= 50000 ) and ($Q2 <= 74999 )} 4. $75,000 - $99,999 {if ($Q2 >= 75000 ) and ($Q2 <= 99999 )} 5. $100,000 - $149,999 {if ($Q2 >= 100000) and ($Q2 <= 149999)} 6. $150,000 - $199,999 {if ($Q2 >= 150000) and ($Q2 <= 199999)} 7. $200,000 - $249,999 {if ($Q2 >= 200000) and ($Q2 <= 249999)} 8. Over $250,000 {if ($Q2 >= 250000)} setlist: AGES series: 18..74 75. 75 or older 3. What is your age? type: pulldown prompt: >> optsfrom: AGES setlist: AGE_LIST 18. 18 - 24 {if ($Q3 >= 18 and $Q3 <= 24)} 25. 25 - 34 {if ($Q3 >= 25 and $Q3 <= 34)} 35. 35 - 44 {if ($Q3 >= 35 and $Q3 <= 44)} 45. 45 - 54 {if ($Q3 >= 45 and $Q3 <= 54)} 55. 55 - 64 {if ($Q3 >= 55 and $Q3 <= 64)} 65. 65 and above {if $Q3 >= 65} AGEQUOTA. QUOTA | Age Ranges type: quotas optsfrom: AGE_LIST set list: AGEINCLIST crosslists: AGE_LIST,INC_LIST AGEINC. QUOTA | Age-Income type: quotas optsfrom: AGEINCLIST
For more on Quota tiles and the Quota Manager applet, see Reviewing and setting quotas.
Effects on quota tables
Since standard quotas only utilize one list/set of options, the list elements become the rows for the table. This is called the Quota Group. The columns will break down the number of respondents for each category (for example, age groups) that are In Progress (status P) and Completes (status C). When calculating the Total Counts column for each Quota Group, the Quota Tile takes into account respondents in progress in addition to those that have completed the survey. Thus, the In Progress and Completes columns show the breakdown that yields the figure in the Total Counts column. The Quota column is the actual target number set, and the % Completion column displays the percentage that the Total Counts column represents of the Quota column.
All buckets start off without coloring. When certain percentage milestones are reached, they change colors. The colors and their corresponding percentage ranges are:
Range | Color |
---|---|
50% and under | No color |
50% to 79.99% | Green |
80% to 89.99% | Yellow |
90% to 99.99% | Orange |
100% or above | Red |
When crosslists are used as the options input for a quotas type variable, the system generates a cross-tabulated grid in the Quota Manager applet. This conveys the information more appropriately, and makes it easier to see progress against each bucket or pairing. Since one list must act as the rows and the other as the columns, results are displayed as a fraction with the number of completes to the category's max capacity (if specified). If no maximum is set, a double dash is substituted instead ("--").
In the above crossed list quota table, the quota QAGE_GENDER uses options from the crosslist AGEINCLIST (see code example above). In a crosslist, the first list's options make up the row elements, and the second list's options make up the column elements. Since AGEINCLIST is defined by crossing the lists AGE_LIST and INC_LIST (in that order), the age ranges from AGE_LIST will make up the row elements of our table with the income ranges of INC_LIST making up our column elements.
If we look at the results for respondents who are '35 - 44' with an income of '$75,000 - $99,999', we see "53/100," meaning there are currently 53 completes out of a quota of 100 respondents. Since the survey has already reached over 50% of the quota, the cell is highlighted green. On the other hand, looking at '35- 44' with an income of 'Over $250,000', the cell shows "40/–" which indicates a quota was not set for this combination.
To input or edit a quota capacity in a given cell, click on that cell, and it will become an editable text field. Enter the desired capacity, then press Tab or Enter, or click the cursor outside of the active cell, and the capacity will be saved. If the cell selected has an existing capacity, once the cell is clicked upon, the quota capacity will be highlighted. Those with no capacity listed will just be blank after clicked upon.
If the cell was selected in error, click outside the box and the capacity will stay the same.
Tip! To make crosslist quota tiles display like "normal" Quota tiles, add crosslist tile: n
to the crosslist quota's code. The resulting tile will then treat each crossed quota group as its own row as shown below.
Determining list order
The combinations of the crosslist are displayed in a specific order. The first element of the first list in the crosslist will be displayed with all possible combinations from the second, listed in numerical order by the element IDs, and so on. This pattern will continue until all elements of A have been paired with all elements of B. This is demonstrated below:
Code | Output (Options) |
---|---|
set list: GENDER 1. Male 2. Female setlist: CONCEPT 1. Concept A 2. Concept B 3. Concept C set list: GEN_CON crosslists: GENDER, CONCEPT |
1_1. Male - Concept A 1_2. Male - Concept B 1_3. Male - Concept C 2_1. Female - Concept A 2_2. Female - Concept B 2_3. Female - Concept C |
Although the order in which two lists are crossed to create a crosslist quota will yield the same combinations, the resulting tables and graphs are affected by the order. Since the first list of elements will make up the row elements, and the elements from the other list(s) will make up the column elements, Survey Programmers (SPs) may want to consider how the number of elements in a list will affect the resulting table's appearance.
To demonstrate how the order affects the resulting graphs and tables, we will continue to use our crosslist quota AGEINC, but also introduce the crosslist quota INCAGE which reverses our crosslist order. INCAGE will be defined by the crosslist INCOMEAGELIST which is defined by crossing INC_LIST and AGE_LIST in that order.
In the two Quota Manager tables below, QAGEINC and QINCAGE are built from the same two lists, INC_LIST and AGE_LIST, but the lists are crossed in a different order. As mentioned above, the list first mentioned in the crosslist will act as the rows of the table. The combinations of the two crosslists will remain the same, but the display will change. The Total N at the bottom of each column is the total number of respondents across all rows for that column. For example, in the first image below, N 70 is the sum of all respondents in the first income group, across all age groups.
Example of two ways to display the same crossed quota buckets |
---|
Crossing "Age" first, "Income" second:
|
Crossing "Income" first, "Age" second:
|
Since the two lists contain a different number of elements (there are six age groups vs. eight income groups), but the combinations are the same, users may want to cross the lists so that the list with the greater number of elements is listed first. This will then create a table with less columns, which may make the quota table easier to view.
Crosslist quotas with 'desc' decorators
Crosslists carry forward and combine each pair of a list option's desc
decorator for reports and the Quota Manager. For quotas, the crosslist will show the desired label in the rows and columns instead of the programmed option text. In the example below, Q4 will display the description "Male" and "Gen Z" instead of the text "I am a male" and "Under 25."
Code | Quota Output |
---|---|
setlist: GEN 1. I am a male {desc: Male} 2. I am a female {desc: Female} setlist: AGE 1. Under 25 {desc: Gen Z} 2. 26 - 41 {desc: Millennials} 3. 42 - 57 {desc: Gen X} 4. 58 and older {desc: Boomers} setlist: AGEGEN cross lists: GEN, AGE 4. Select one! type: radio quotas: y optsfrom: AGEGEN |
|
Crosslist quotas with panels
Oftentimes, surveys will require quotas to be nested/crossed by panel so clients can view from which source certain data points are streaming from, as well as cap certain panel sources. If panel
is used in a crosslist and then utilized within a quota, that quota will display a restricted view of the quota options. Panel Field Managers (PFMs) will only be able to view options for the panel they are a part of.
PC Quota View
|
What PFM can't see compared to PC
|
PFM Quota View
|
In the example above, there are three panels on the project, Panels A, B, and C. QCRQ is a quota utilizing a question crossed by panel
. PC users will be able to view all quotas. PFMs can only view the data collected for their panel when viewing cross quotas, so for a PFM on Panel A, notice they are only able to view the information coming from Panel A.
An example of what the code would look like for QCROQ:
setlist: CROQLIST crosslists: panel, CROLIST CROQ. crossed quota type: quotas optsfrom: CROQLIST
Tip! Because panel
is a system variable, it does not need a leading 'Q' or '$' in a crosslist. In this situation, it is being referenced as a derived list rather than pulling its current value for logical evaluation. If panel
was instead being referenced in condition logic, such as anyChecked($panel,99)
, then the '$' would be required.
Crosslist quotas from three lists
When creating a quota from a list that crosses three lists, the first list will comprise the rows, with the combinations of lists two and three creating the columns. Using the example previously stated, our lists INC_LIST, GENDER, and AGE_LIST are combined to create the quota QINCGENAGE:
Code | Quota Output |
---|---|
set list: AGEINCLIST crosslists: INC_LIST, GENDER, AGE_LIST INCGENAGE. QUOTA | Income-Gender-Age type: quotas optsfrom: AGEINCLIST |
|
Note the order of the lists as they pertain to the rows and columns. In this scenario, the columns will appear with each option from the 2nd list (GENDER) iterating through each option in the 3rd list (AGE_LIST). In this case, "Male" will combine with each age group, followed by "Female" combined with each age group. This combination uses 12 columns and 8 rows (the options/buckets from INC_LIST). If GENDER has instead been the first list in the crosslist order, we would instead have only 2 rows and 48 columns, making this table more difficult to view all at once.
Because there can be a large number of combinations generated from crossing three lists, the resulting tables can be quite large. As such, SPs should apply the same considerations of list order to a three list crosslist quota as they would with a two list crosslist quota.
As mentioned at the beginning of this article, crossing more than three lists is not advised.
Comments
0 comments
Please sign in to leave a comment.