Using When or Try logic

If you have single choice questions, always use "when" logic (never "try" logic).

You need to be sure that there is at least one "when" expression that is "true" or you have included an "else" statement so that you are 100% sure that one answer will be available to fill in. 

So either apply a filter to the question, that includes all the "when" logical expressions that you test against so that the question will not be "asked", and hence not filled in, or you have a "none of these" option that you fill in with the "else" clause.

If you fail to use when/else and/or none of your "when" statements are "true", by design, all options are ticked. Even though this is a single choice question, the system doesn't know what to fill in. The system is designed so that all options are ticked, rather than no one. This is because in most cases, such programming error, then leads to the least chance of "data loss", since such questions are typically used to filter other questions and then it is better to ask more questions, rather than fewer.


You have an age question with the following used the following answer control logic:

"1 try \D2_Age.c=18:24 2 try \D2_Age.c=25:34"

What is wrong?

Mistake 1; "try" and not "else".

Mistake 2; there are people of all ages 18 to at least 99 years old, so anyone older than 34, fall outside of these "try" statements (when you have quotas they will be added to both quotas (all options are ticked)).

So either you should have a filter on this "\D2_Age.c=18:34" or you should have included a 3 option in your quota_question, "outside of age groups", and use the following answer control logic:

"1 when \D2_Age.c=18:24 2 when \D2_Age.c=25:34 else 3"

Create an extra filter for people that are older than 34.

Please note, when you are using "sys_rage e" (expose) you will not see this issue, as a group of radio buttons, by design in your browser, only allows one of then top be set, so typically you will just see that the last one is checked, but when the system executes this on the server, it never shows the question, all answers are recorded.