Version Notice: This article covers features in our r9/IS Pro platform. If you're looking for information on this topic related to r8, see Crosslist quotas.
Crosslists are lists built from combining two or most lists, which in turn create list entries for every permutation of options from the origin lists. These can then be used to create crosslist quotas. In the Quotas applet, crosslist quotas are displayed differently from non-crosslist quotas. Instead of listing the quota groups vertically, crosslist quotas use the individual lists as rows and columns to form a grid of quota groups.
Example
Consider the quota QAGECUST in the following SPL that uses the crosslist AGECUSTOPTS. In this example, the CUST list and AGE list are crossed to form the AGECUSTOPTS list. This list is then used at the QAGECUST quota.
1. Have you made a purchase at our store in the last 12 months? type: radio 1. Yes 2. No 2. What is your age? type: integer range: 0-99 setlist: CUST 1. Customer { if anyChecked($Q1,1) } 2. Non-customer { if anyChecked($Q1,2) } setlist: AGE 1. 18-34 { if $Q2 >= 18 and $Q2 <= 34 } 2. 35-54 { if $Q2 >= 35 and $Q2 <= 54 } 3. 55+ { if $Q2 >= 55 } setlist: AGECUSTOPTS crosslists: AGE, CUST AGECUST. Age x Customer type type: quotas optsfrom: AGECUSTOPTS
This quota is displayed as follows in the Quotas applet. Note that the first list in the crosslist, AGE, is used for the rows of the grid, and the second list, CUST, is used for the columns.
Because of the increased information density of the grid, each cell for a crosslist quota displays the number of completes and the quota cap as a fraction. A double dash ("--") is displayed for quotas that are uncapped.
List order considerations
The first list entered in the crosslist's SPL is used for the crosslist quota's rows. If one list has significantly more options than the other, it may be preferable to use that list for the rows. See the table below for a comparison.
Caution! Make sure that the row/column arrangement is decided before fielding the survey. Changing the order of the crosslist will change the data structure of the quota, which may corrupt pre-existing data.
Age first, Colors second | Colors first, Age second |
setlist: AGECLROPTS crosslists: QAGE, QCOLOR |
setlist: CLRAGEOPTS crosslists: QCOLOR, QAGE |
Setting crosslist quota caps
Quota caps in crosslist quotas can be edited using the same method as standard quotas. Click on a cell in the grid, and enter the desired value. Then, press Tab or Enter, or click the cursor outside of the active cell to save the quota cap.
Changing the display of a crosslist quota
Add the crosslist tile: n
tag to a crosslist quota widget to force it to be displayed like a standard quota in the Quotas applet. The quota groups will be listed vertically instead of in a grid format.
Code | Quota display |
AGECUST. Age x Customer type type: quotas optsfrom: AGECUSTOPTS crosslist tile: n |
Crosslist quotas with 'desc' decorators
Lists that have desc
decorators will retain those desc
decorators when used in a crosslist. These descriptions are also used in the Quotas applet for crosslist quotas. In the example below, the desc
decorators in the PURCH and AGE lists are shown in the Q5 display in the Quotas applet. For example, the leftmost column says "Gen Z" instead of "1997 - 2012".
Code | Quota display |
setlist: PURCH 1. Yes, purchased in the past year { desc: Purchaser } 2. No purchase in the past year { desc: Non-purchaser } setlist: AGE 1. 1997 - 2012 { desc: Gen Z } 2. 1981 - 1996 { desc: Millennials } 3. 1965 - 1980 { desc: Gen X } 4. 1946 - 1964 { desc: Boomers } setlist: PURCH_AGE crosslists: PURCH, AGE 5. Purchaser by age type: quotas optsfrom: PURCH_AGE |
Crosslist quotas with panels
Crosslists may use the panel
system variable to cross the panel source with other survey data. If a crosslist quota uses panel
, users with the Panel Field Manager role will only be able to see the quota groups for their panel, same as the Panel Quota itself. Panel Coordinators will be able to see all panels.
Below is an example where panel
is crossed with QCUST, a variable tracking customer status.
setlist: PANELCUST crosslists: panel_quota,QCUST PANELCUST. Panel x Customer type type: quotas optsfrom: PANELCUST
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.
The QPANELCUST quota would be displayed as follows depending on the user's permissions and which organization they are part of. In the table below, the Panel Coordinator can see the Quota Groups for both Panel A and Panel B. However, the Panel Field Manager for each respective panel cannot see the other's panel.
Panel Coordinator's view | |
Panel A Field Manager's view | Panel B Field Manager's view |
Crosslist quotas using three lists
When a crosslist has three or more lists, the crosslist quota will use the first list for the rows, while the remaining combinations of lists are shown in the columns.
In the example below, the COLORS list is used for the rows, while the combinations of AGE and CUST_TYPE are used for the columns.
Code | Quota display |
setlist: COLORS 1. Red 2. Orange 3. Yellow 4. Green 5. Blue 6. Purple setlist: AGE 1. 18-34 2. 35-54 3. 55+ setlist: CUST_TYPE 1. Customer 2. Non-customer setlist: CLR_AGE_CUST_OPTS crosslists: COLORS, AGES, CUST_TYPE AGECUSTCLR. Color x Age x Customer type type: quotas optsfrom: CLR_AGE_CUST_OPTS |
If you were to add a fourth list to the crosslist, additional columns would be added to account for the additional combinations of list items.
Because crossing multiple lists can quickly increase the size of the quota, crossing more than three lists is not advised.
Comments
0 comments
Please sign in to leave a comment.