Have an idea?

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

Skip-Logic when randomizing blocks or pages

I have the following problem:

Q1 is a multi-select question with A1,2,3.

The follow-up questions are the following sets or blocks:
Q2a & Q3a & Q4a -> Should only be accessed when choosing Q1 A1
Q2b & Q3b & Q4b-> Should only be accessed when choosing Q1 A2
Q2c & Q3c & Q4c-> Should only be accessed when choosing Q1 A3

No I want to randomize it and limit it to only one "path". E.g. when sb. chooses Q1 A1 and A2 either the "a-path" or the "b-path" should follow.

How can I do that because it is not possible to implement a skip logic when randomizing pages or blocks.
asked Jun 7 by jrskp (180 points)

1 Answer

0 votes
You could add a dummy text question on a page before each randomized block.  Add a preskip if it doesn't meet the criteria for that block to then skip to the next dummy question using the same type of logic.
answered Jun 7 by Jay Rutherford Gold (42,930 points)
Unfortunately, this is not working..."Skip Logic - Skipping to a question that is not in the same randomized block as the question being skipped from is not allowed. Change the Skip To question to a question contained in the same block or outside the set range."
Now, since Q1 is multiple response and they could qualify for multiple then you only want one path.  I'm assuming you want try to keep the paths as evenly asked as possible.  To do this you will want to add a quota question (let's call it BlockQuota) after Q1 and set it up as a least fill quota by counts.  Create 3 quota cells in that quota question, Block1 with logic of Q1_1=1, Block2 with logic of Q1_2=1 and Block3 with logic of Q1_3=1.

So you have 3 blocks, Q2a,Q3a,Q4a is block 1, Q2b,Q3b,Q4b is block 2, Q2c,Q3c,Q4c is block 3.  On the page before Q2a add a text question, we'll call it Block1Skip.  On the page before Q2b add Block2Skip and on the page before Q2c add Block3Skip.

On Block1Skip add a preskip with logic of 'if BlockQuota<>1 skipto Block2Skip'.  On Block2Skip add a preskip with logic of 'if BlockQuota<>2 skipto Block3Skip'.  
On Block3Skip add a preskip with logic of 'if BlockQuota<>1 skipto Q5 (skip to the question that is after the blocks)'.  

This is the basic logic to control if those blocks get asked.  The least fill quota question will assign to the quota cell they qualify for that has the lowest count, thus keeping them even and giving you the ability to see/track which block they went through.
Looking back, you don't need those questions in a randomized block because you only want one series to be asked, never 2 or 3.  I was thinking you had Q2a, Q3a and Q4a being randomized, then the same for the next two sets.  If that is not true and they are asked in that order q2, q3, q4 then you don't need the text questions I mentioned, you can just put the preskip logic as I explained on Q2 of each sequence.