Reply To: Different sequencing for different participants

PennController for IBEX Forums Support Different sequencing for different participants Reply To: Different sequencing for different participants

#6988
Jeremy
Keymaster

The counter is unfortunately not a solution: if you do not increment it as soon as a participant starts your study then you run the risk of running too many early participants in the same condition (for example, with rapid signups, it could be that the counter only increases after 40 participants have started). Even if you manage to increment the counter instantly, you end up with a number of participants who did not complete your study (maybe they decide to stop, or they encounter a fatal error, etc.)

As you can imagine, this is not specific to how Ibex handles the counter. You could imagine more sophisticated algorithms (eg. initially increment with each click on the link, and switch to conditional assignment once you start receiving submissions) but in the end you will always have multiple participants taking your study in parallel at the same time, and you will never be certain that a given participant will complete your study

This is why I suggested you handle this manually. The other reason why you don’t want to use the internal counter is that it is already used to subset your table to rows that share the same value in the Group/List column, so you would have a confounding factor here. Moreover, what you suggest (switching to the other sequence once the counter reaches 30) practically means that not all participants start at the same time, ie. one group of participants starts before the other one. If you’re ok with that, I don’t really see a problem with running 30 participants first, and another 30 participants after that

If your recruiting solution gives you that option, you could generate two links that differ in the value of a specific parameter (eg. “seqOrder”: https://farm.pcibex.net/p/mySlug/?seqOrder=0 vs https://farm.pcibex.net/p/mySlug/?seqOrder=1) with your participants only allowed to click one of the two. Then you can do:

if (GetURLParameter("seqOrder")==0)
  Sequence("intro","consent","subexp1practice",rshuffle("subexp1items","subexp1fillers"),"break","subexp2practice",rshuffle("subexp2items","subexp2fillers"),"send","ending")
else
  Sequence("intro","consent","subexp2practice",rshuffle("subexp2items","subexp2fillers"),"break","subexp1practice",rshuffle("subexp1items","subexp1fillers"),"send","ending")

Jeremy