Have an idea?

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

Randomize blocks

I have 4 blocks of 8 questions... I want respondents to see only one block of questions chosen randomly.

I created one set of the 4 blocks, is there a way to show respondents just one of the blocks randomly?
asked Nov 14, 2018 by kaitlan

2 Answers

+1 vote
If respondents are only meant to randomly see one block, I would think this could be done with a series of skips on the question preceding the four blocks, one skip for each block.

First skip:
SysRand(1, 5) = 1

Second skip:
SysRand(1, 4) = 1

Third skip:
SysRand(1, 3) = 1

Then the final skip can be set to always run.
answered Nov 14, 2018 by Zachary Platinum Sawtooth Software, Inc. (143,625 points)
If you use randomization (like in the above code), you may find that the four blocks don't end up with a very even distribution due to random chance.  If you want the four blocks to fill up more evenly, you can use "Even Distribution Quota":

hello, i dont understand the answer of Zachary.
Why you used "SysRand(1, 5) = 1" - but there are only 4 groups.

I have the same problem, that i want to have 4 groups, i made:
sysrand (1,4)=1
sysrand (1,3)=2
sysrand (1,2)=3
sysrand (1,1)=4

But now i want that in each group are 50 respondents. i tried it with quota control. but didnt work...

thank for helping me.
SysRand has an inclusive first parameter and an exclusive second parameter, so "SysRand(1, 5)" can produce 1, 2, 3, or 4, but not 5.  With this in mind, you can see how "SysRand(1, 2)" and "SysRand(1, 1)" would never return 3 or 4.  I could write out the statistics if need be, but my scripts above will result in each skip having an equal chance of being ran.

Regardless, I think you can use a quota control for what you're going for.  You'll want to add one quota question with four quota cells.  Set each cell to always qualify, then set the quota question to randomize all quota cells.
0 votes
The easier way to do this is to use lists. Create a parent list ("List1") with items:
Block 1
Block 2
Block 3
Block 4
(The labels are irrelevant, only the number of items matters.)

Then create a second constructed list ("List2"):

Create your four blocks, and specify in the block settings that you want to "Use Constructed List = List2" to determine the block order. It will look at your new constructed list and ask the questions in whichever block # is the first item # on the list. When it gets to the end of that block, it will automatically skip to the next question after the last block.

answered Nov 14, 2018 by Aaron Hill Gold Sawtooth Software, Inc. (10,995 points)