Have an idea?

Visit Sawtooth Software Feedback to share your ideas on how we can improve our products.

Skip Logic in Multi-Select Grid

My skip logic is not working.

I have a multi-select grid question. The row list is a constructed list, where the number of rows (i.e., items) depends on what respondents selected in a prior question. The column list has predefined items. The maximum number of rows is 10, the minimum is 1.
I want to set up a skip logic in a way that displays the following question if the respondent selects Q1_r1_c3 (or Q1_r2_c3). Again, the number of rows will be different for every respondent. I'm only interested in the third item in the grid.
It doesn't matter if the respondent selects c3 once, twice or three times (depending on the number of rows obviously). Just once is enough to display the following question. To do this, I selected post-skip, then a skip logic  series: Q1_r1_c3=O Or Q1_r2_c3=0 Or Q1_r3_c3=0 Or [same pattern: r4-r9] Or Q1_r10_q3=0.
I don't get an error but the skip logic doesn't work at all. Even if just one item in column 3 is selected, the program skips the following question.
What am I doing wrong?
asked Oct 26, 2020 by anonymous
There are two things I would note here.

First, variable names are based off the predefined list rather than the constructed list.  Q1_r1_c3 represents the first row of the predefined list, regardless of what position it appears in the constructed list (or whether it appears in the constructed list at all).  So even if your constructed list has a max length of ten, our logic will need to go higher than that if the predefined list has more items than ten.

A variable records zero not only when the checkbox is unchecked, but also when the checkbox did not appear because of the constructed list.  So your skip logic will fire any time an item is not included in your constructed list.

If I'm understanding your request correctly, I think you can resolve this by having your skip check for 1 rather than 0:

Q1_r1_c3 = 1 or Q1_r2_c3 = 1 or Q1_r3_c3 = 1 or ... Q1_r10_c3 = 1

If that is not sufficient, though, the next step would be to add the Sawtooth Script function "ListHasParentMember" to the logic.
Yeah, changing it to Q1_r1_c3 = 1 won't work because I DON'T want them to skip the next question if the condition is met. If all c3-boxes remain unchecked, then the following question must be skipped. If only one of the c3-boxes is checked, then the following question MUST be displayed. With Q1_r1_c3 or Q1_r2_c3 etc, the following question is displaying regardless.

How would the "ListHasParentMember" work?
If you want to negate the logic of the skip, you should be able to surround the skip logic with "Not(...)".  Alternatively, a skip with this logic could skip respondents to the next question then a second skip with no logic could skip respondents to another question, right?
It's not working. I inserted the not () in the skip settings but maybe it needs to go somewhere else. I guess I just need a more elaborate answer since I'm a Sawtooth beginner and there are lots of things that are new to me. I'll reach out to the technical support. Thanks though.
There is a function called "NumChecked", using that you can calculate the number of check boxes selected in column 3 of Q1 question.
For your case you can use it as NumChecked(Q1_c3) and write the condition as required

Your solution to the original question

Please only use this to answer the original question. Otherwise please use comments.
Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:

To avoid this verification in future, please log in or register.