Single and multiple response questions allow respondents to choose from a list of possible answers. The list of answer options can either be static or dynamic. A static response list is a pre-defined list of options that never changes. A dynamic response list allows you to display answers based on data gathered during live interviews or data that exists before an interview starts. You can further customise the dynamic list by specifying one or multiple conditions depending on the context of your questionnaire. Below are a few examples of how dynamic answers can be customised:
- The list of options can be filtered to remove invalid or superfluous answer options. In other words, the list can be made more relevant to the respondent.
- The list can be ordered randomly, alphabetically or by answer code.
- You can select answer options from one or different sources (by adding literals or selecting from different rosters) to display in the same question.
Customising answer options this way helps you speed up data collection and improve data quality.
This post explains how dynamic answers work and shows some useful ways in which you can use this feature when designing your questionnaire.
Where are your target answer options located?
Before we get into the details of how dynamic answers work, you need to understand how data is stored within the surveybe database.
Surveybe stores data in tables.
- Every questionnaire has at least one table known as the questionnaire table. Every question that is not on a roster is part of the questionnaire table.
- When you start adding rosters to your questionnaire, you need to create and assign a roster table for each of the roster.
- Data that exists before the interview starts can be stored in a reference table.
You can then use an SQL statement to select all or a subset of answer options from these tables to display in a dynamic single or a multiple response question. You can also add literal answer options like ‘other specify’, ‘refused to answer’, ‘not applicable’, ‘none of the above’ and so on to the dynamic list.
Selecting all answer options from a table
As mentioned, surveybe allows you to retrieve answer options from the questionnaire table, roster table or reference table. This can be done with the help of an SQL statement which allows you to select the response ID and the corresponding response value from your table.
The standard simple syntax to dynamically populate a list of all answer option from a table looks like this: SELECT column1 AS ID, column2 AS Value FROM table. Column1 refers to the response ID and column2 refers to the response value.
If you have a long list of response options that already exist in a spreadsheet format, you can import that list as a reference table (via a CSV file) and use the above syntax to select the options. This means you don’t have to manually add each response value via a static response list in surveybe and you can save yourself some time. You can find an extract of a reference table on the right hand side. It shows the response ID and the response value column. This can be uploaded into surveybe and be used to pull data.
In the example below, we are selecting all data from a roster table in surveybe during a live interview.
In the roster, we are capturing the names of all household members who live in the household (refer to Q1 on the roster). We have then pulled the names and corresponding identifier of each household member in a follow up question (refer to Q2 outside the roster).
The roster table may contain data that has been entered during a live interview or data pre-populated from an existing survey. Any changes made to answers in the target question on the roster will reflect in the dynamic answer type question.
If you want to customise the answer options, you will need to use a WHERE condition in the SQL statement. For example, you may want to only select household members who are over a certain age and/or of a certain gender.
Customising answer options
If you want to select a subset of answer options, you can add a WHERE clause in your SQL statement to extract only those options that fulfil a specific condition like this: SELECT column1 AS ID, column2 AS Value FROM Table WHERE condition. You can make the condition as sophisticated as you like by using ‘and’ and ‘or’ to construct compound conditions.
The most common use of using dynamic answers is to filter answer options based on an answer given to a previous question. For example, let’s say you want to record the region, district and ward a particular household is located in. The use of Dynamic Answers allows you to display a list of only those districts that are found in the region that was selected during the interview. This condition therefore needs to be specified in the WHERE clause. Similarly, the list of wards can also be filtered based on the district that was selected. You can then also order the list alphabetically so that it’s easier for interviewer to find a certain value.
There are other, more sophisticated, designs that you can include into your questionnaire. In the example below, we are using a roster to capture a list of crops cultivated by the household (refer to question 1 in the roster below). We are also recording the condition in which each crop was harvested in (Refer to question 2 in the roster below). Here, we’ve used dynamic answers to filter the list of conditions based on the crop that is selected in question 1.
As you can see in the screenshot below, different list of options appear for the two crops that we’ve highlighted on our roster. The full list of crops and the conditions in which each crop can be harvested in are being held in a reference table and an SQL statement has been used to pull those values into the roster question. During the live interview, as the interviewer selects the name of the crop in question 1, the list of conditions in question 2 will update. If one of the crops is consequently updated, the dynamic list will refresh.
Displaying answer options that are based on different tables is also possible by using dynamic answers. In the following example, we are capturing the name of all teachers who work in a school on a first level roster and the grades they teach on a sub-roster.
By making use of dynamic answers, you can link separate rosters and extract data that you require in follow up questions. Here, we want to display the name of all teachers who teach standard 1.
Since in our simple example Ben Parker is the only teacher who fits the condition we’ve imposed, he is the only one who appears in the dropdown list as shown in the above screenshot.
How else can dynamic answers be used?
There are a lot of other examples of how you can customise answer options. Please note that you can also translate answer options provided in a dynamic list into alternative languages.
If you need personalised advice to help you use this feature, or there’s something you want to do but you can’t figure out how to achieve the result you want, please email firstname.lastname@example.org