For categorical single
select and
multi-select
questions, Survey Solutions allows you to filter the answer options so
that not all the answer options for the question will be displayed to
the interviewer. Filtering answer options can help improve data quality
so that an interviewer cannot select answer options that are either
impossible or highly unlikely. For example, for a question where the
interviewer has to select the household member’s father, you can filter
the answer options so that anyone that is younger than the household
member will not be displayed.
Using filtered answer options
You can define a filter to describe the conditions under which answer
options will be displayed to the interviewer via the Filter field.
Linked questions can also include a filter. In food consumption modules,
questionnaire designers can limit answer options to those that make
sense for each food item (e.g., weight units for solids, volume units
for liquids). In demographic modules, you can filter a linked question
that lists potential owners of the household’s dwelling to the set of
age relevant household members.
The Filter field contains a condition that is evaluated against each
potential answer option. When the condition is true for a particular
answer option, that answer option is displayed. When the condition is
false (or yields an exception), that option is not displayed in
Interviewer. In other words, the feature functions like an enabling
condition for answer options, enabling only those answer options that
satisfy the filter condition.
Syntax
There are also two system generated
variables that
are only available in the Filter field. For non-linked questions, the
keyword
@optioncode
provides a way to refer to the answer options for the current question.
For linked questions, the keyword
@current, used
as a variable prefix, allows you to differentiate between the value of a
variable for current roster row and that for all other rows in the
current roster.
Example
A question asks the interviewer to select the member in the household is the respondent’s mother. For this, you would want to filter the household members according to the following criteria:
- Do not show the current person
- Only show household members that are female
- Only show household members that are at least 10 years older than the household member currently being interviewed
This question is a single select linked to the household roster. For this example, assume that the variable for the gender of the household member is gender and for age is age. You would write the filter for the answer options to look like this:
/* Filtered answer options feature */
// Show only females
gender==2 &&
// Cannot select his/herself as mother
@current.@rowcode!=@rowcode &&
// And person's age is 10 years older than current person's age
age >= (@current.age + 10)
To see an example of this code in the public questionnaire, see this question.