The IntelliSurvey platform supports several ways to create sets of elements to use in the survey platform: inline lists, setlists, derived lists, and spreadsheets. These are roughly analogous to the ways that sets might be presented as part of a survey document or questionnaire: displayed as part of the question (inline list), located in an appendix at the end of the document (setlists), referencing a previous question's options (derived list), or included as an attached Excel file (spreadsheets).
Part of a Survey Programmer's (SPs) task when programming a survey is to choose the best way to present a set of elements – and it may or may not be the same way the elements were presented in the questionnaire. Some of the benefits and limitations of the various methods of using sets are outlined below. We strongly encourage SPs to explore the platform, talk with experienced Project Managers (PMs) or Support agents, and review each other's code in order to improve their knowledge and skills.
List-related terminology
- Set - What we commonly think of as a "list" is a set of elements used by a survey program. Sets could include items such as brands, products, retailers, or reasons to consider switching to a new product.
- Element - Elements are the items in the set. For a soft drink brand set, an element might be "Diet Coke".
- Option - Options are also items in a set; more specifically, they are the answer choices in a question or table. When referring to a question, the word "option" is interchangeable with the word "element." When referring to a table, elements refer to the various questions (often the rows) and options refer to the answer choices (often the columns).
- Subset - A subset is a restricted group of a set's elements. In our soft drink example, a subset might only include the major brands.
- Attribute - Elements often have attributes. Attributes can be used to indicate associated images, weights for a selection variable, conditions for display, explanatory text, or inclusion in a subset. These attributes are defined by element decorators, which are modifying functions that are contained within a set of curly brackets and can be listed individually after each element in a list, or placed next to a listcall.
-
Listcall - Frequently, questions and other variables will reference "standalone lists" (setlists) or spreadsheets. In these cases, a listcall tag such as
optsfrom
,rowsfrom
, orcolsfrom
is used to reference the list and call in those elements to be used.
Inline lists
An inline list is a set embedded in the question, as in the examples below.
1. What is your favorite diet cola? type: radio 1. Diet Coke 2. Diet Pepsi 3. Diet RC Cola 97. Other {autoother: y; size: 10} 2. How often do you do the following? type: radio table 1. Never 2. Seldom 3. Often 4. Daily rows: 1. Go for a walk 2. Read a book 3. Watch TV 4. Cook a meal
Usage
An inline list is generally the best method to employ when a set of elements will only be used once because it's simpler to program and review. Also, it (usually) aligns more closely with the survey document, and it's more informative in IntelliBuilder (IB).
Inline lists can also be referenced by other questions, which makes them fairly versatile. For example, a quota based on the answer(s) selected at Q1 above would reference optsfrom: Q1
and a ranking question using all the rows in T2 (table 2) would reference optsfrom: T2.rows
. This latter example is what is known as a derived list, since it uses a list of elements from a previous question (see below for more information).
For more information, see: Creating lists and Referencing lists.
Strengths | Weaknesses | Comments/Caveats |
---|---|---|
Content is located directly adjacent to the question. Less typing required during programming. |
Advanced functionalities are limited (e.g., attributes). Possibilities for overlapping lists throughout the survey. |
Ranking questions can be defined via When listing elements inline for a table, the |
Setlists
A setlist is a set of elements defined within the survey source, but separate from the question itself, as shown below.
set list: DIET_SODAS 1. Diet Coke 2. Diet Pepsi 3. Diet RC Cola 97. Other 1. What is your favorite diet cola? type: radio opts from: DIET_SODAS
Usage
Setlists are handy when a set of elements will be referenced from several different questions, or when adding attributes to the elements (e.g., alternative text for piping, weights, image tags). Setlists are helpful when the set of elements is smaller. For larger sets, or sets with many attributes, a spreadsheet is usually a better choice. Spreadsheets are discussed later in this article.
For more information, see: Creating lists, Referencing lists, Creating survey elements with IntelliBuilder.
Strengths | Weaknesses | Comments/Caveats |
---|---|---|
Easy to reference when sets are reused. Powerful functions are accessible (e.g., attributes). Setlists are not required to go before the questions or tables in which they are referenced and can be placed anywhere in the survey. |
Set is disassociated from where it is invoked (when reviewing the code, scrolling is required). In IB, all setlists are displayed at the bottom of the page, which makes review more difficult. Sets with many elements can be hard to manage and visualize. |
Closely inspect a set of elements before applying a setlist and assuming the list is an exact match (e.g., it might look like Q3 uses the same list as Q8, but there could be subtle differences). When in doubt, always check with client or researcher. As these lists are meant to be reused over several questions, lists should be named in a way that is comprehensible and descriptive (e.g., "BRANDLIST" rather than "Q29_OPTS"). Sensible names can reduce the likelihood that a list will be reused in the wrong context.
|
Tip! SPs may use heredoc within listcalls to include more complicated logic strings to define how list elements are used for a question or variable. When used in a code editor, it's easier to spot mistakes in the code this way.
For example:
KIDSTOASK. Children to query type: checkbox selectby: weight maxgroups: 5 optsfrom: <<EOOF CHILDREN -[23] {if $Q7R[7R] >= [NUM]} {weight: 6-substr([id],1,1)} EOOF
Derived lists
A derived list is a set of elements that is initially listed inline with a question, then referenced in other questions. It operates similarly to a setlist
in that it can be used repeatedly and called upon via listcalls such as optsfrom
, rowsfrom
, and colsfrom
. Derived lists are not restricted to be used in the same way that they were originally – in other words, question options can be later used as table rows or columns and vice versa; items that were ranked in a rank question can be options in a question or table, etc. Like a setlist
, when a derived list is used, all options are pulled into the referencing question or table (unless otherwise specified).
Derived lists are referred to by their originating QID (QX for question widgets and TX for table widgets) and how they were originally used. For example, suppose we have a question Q4, a table T5, and a ranking question Q6. We could then use derived lists as follows:
- The derived list of options from Q4 would be referenced as "Q4.options".
- The derived list of row elements from T5 would be referenced as "T5.rows".
- The derived list of options from T5 would be referenced as "T5.options".
- The derived list of column elements from T5 would be referenced as "T5.columns".
- The derived list of options from Q6 (a ranking question) would be referenced as "Q6.options" or "Q6.items."
- The derived list of ranks from Q6 (e.g., First, Second, Third) would be referenced as "Q6.ranks."
Derived lists are then pulled into the question via listcalls like any other setlist. Examples of using derived lists include:
1. Which of the following items do you typically buy when shopping? type: checkbox 1. Apples 2. Milk 3. Lunch meat 4. Bread 5. Chocolate 2. Which of the following items do you enjoy most? type: radio optsfrom: Q1.options 3. How frequently do you buy these items? type: radio table 1. Never 2. Rarely 3. Occasionally 4. Frequently rowsfrom: Q1.options 4. How would you rate the following brands? type: radio table optsfrom: series[1..5] rows: 1. Brand 1 2. Brand 2 3. Brand 3 5. Which brand have you bought most often? type: radio optsfrom: T4.rows
Note: optsfrom: Q1.options
is not the same as optsfrom: Q1
– the former pulls in all options from Q1, whereas the latter pulls in only the options selected in Q1. This latter method is known as question label shorthand.
Usage
Derived lists can be used in any of the same situations in which setlists are used and also support usage of decorators such as explain
, text
, desc
, and more. Furthermore, listcalls that reference derived lists will also allow for inclusion/exclusion syntax and condition decorators.
For additional information, see Derived lists.
Strengths | Weaknesses | Comments/Caveats |
---|---|---|
Easy to track where the original list came from since its in the "list" name (e.g., Q1.options came from Q1). Derived lists minimize touching the code to help reduce manual error. Like setlists, any element decorators and option data can be passed forward in each usage. Original "lists" (where the derived list was pulled from) won't be displayed at the bottom of the page like setlists are in IB. |
If the originating QID is altered, all its references must be updated as well.
|
As shown above, derived lists do not need to be used in the same capacity as they were originally used. Options from a table can be used as row elements in a follow up table or options/items in a ranking question, and vice versa. Just make sure the derived list reference includes the original usage -- .options, .rows, etc.
|
'series' as a tag or as list input
When a list of numbers or letters is required to use as a set of options, listing them out individually can be both time consuming and create unnecessary lines of codes. SPs can instead do this in a more compact manner via the series
tag or function. This can be applied both inline or applied in a setlist
as shown below. Note that when specifying alphabetic sequences, capitalization is used to indicate whether to capitalize the displayed options or not.
'series' the tag | 'series' the function |
---|---|
# 'series' tag inline 1. Here's a question with inline series. type: radio series: 1..5 # 'series' in a list setlist: SERIESLIST series: 1..5 # reverse order 2. Here's a question with reverse ordered options. type: radio series: 5..1 |
# 'series' function inline 1. Here's a question with inline series (+ optsfrom). type: radio optsfrom: series [1..5] # 'series' in a list setlist: SERIESLIST optsfrom: series[1..5] # reverse order 2. Here's a question with reverse ordered options. type: radio optsfrom: series[5..1] *Note that the space between 'series' and the square brackets is not required. |
Benefits:
|
Benefits:
|
Usage
The series
tag and series
function (list) are the preferred methodology for creating sequential numeric/alphabetic lists as they greatly reduce the amount of code needed to implement and potentially edit. In the past, sheets were the preferred method for altering the text for a series
, but this is now accomplished with the series
function.
For additional information, see series as a list and series as a tag.
Strengths | Weaknesses | Comments/Caveats |
---|---|---|
Useful for creating options in scale rating questions and tables. Both Alphabetical input is allowed as well, and likewise can be in reverse order. Lower case or upper case alphabetic options can be used (e.g., 'a..j' or 'A..J'). Disjointed sets are allowed – e.g., Creates compact code rather than listing out options individually. |
No known weaknesses. |
Using
|
Spreadsheets
A spreadsheet (or sheet) is a separate document hosted within your survey UI (user interface) and referenced by the survey code, as in the example below:
1. What is your favorite diet cola? type: radio opts from: surveyid.diet_soda_sheet |
Usage
Spreadsheets are generally the best method when sets contain long lists of elements or have many attributes. Sheets are designed to accommodate the formatting of rows and columns, making the organization, visualization, and management of multiple attributes much easier. Spreadsheets are an excellent way to share lists with clients, and savvy clients can update the documents themselves (for example, by marking which brands are available in specific countries), saving PMs time and risk.
For additional information, see: Spreadsheets, Survey spreadsheets
Strengths | Weaknesses | Comments/Caveats |
---|---|---|
Handles many elements/attributes easily. Powerful functions are accessible. Ability to use decorators such as Ability to export a summary of all lists with a table of contents. Batch upload and download is possible. Best method for sharing lists with clients. |
Set is disassociated from where it is invoked. Some clients might not understand that sheets link to an area outside the survey source, which can be awkward. The survey questionnaire exported as a Word document does not include any items stored in sheets. Implementation differs from setlists (possible learning curve). Autoother parameters cannot be utilized as column headers for sheets and must be defined in the survey source instead. |
Spreadsheet columns containing the word "condition" will be checked for syntax errors during upload, to help reduce errors. To randomize/alter the order of a spreadsheet's elements, use the definesheet: sheetname order: [*] |
Final considerations
When you create your survey, try to choose the best method for organizing your survey elements considering the strengths and weaknesses presented in this article. Sometimes it's hard to envision how lists will evolve and grow. If a survey list is becoming complicated and long, we suggest you pause, take a step back, and ask for guidance from an IntelliSurvey Support agent.
Additionally, consider all the parties involved in the overall market research project. Now, consider how you may need to organize your data in lists, source code, or sheets to help facilitate a few example tasks like below.
- Will the clients need to review the survey in testing?
- Will the client have to review brand assignments or path assignments in a soft launch data review?
- Will the client outsource the final data analysis to a third party?
- Will translators need to review the survey document and all the lists of items for translations?
Do your best to program in a way that is organized, efficient, transparent, and comprehensible for all the partners involved.
Comments
0 comments
Please sign in to leave a comment.