Returning to the Experiment repeatedly on different days

URL of experiment:

Description of the problem: Allowing participants to return to the experiment every 2 days for 2 weeks and answer some questions. Also need to ensure this would still work when participants are randomly allocated to one of two conditions.

I am creating an RCT in PsychoPY which will later be uploaded to Pavlovia. Participants will be recruited from Prolific.

As part of the experiment, I want participants to return every 2 days for 2 weeks and answer some questions (the questions will be repeated in these sessions: each session is the same as the preceding sessions). I also need to randomise participants between two conditions. One group will answer one set of questions every 2 days for 2 weeks, and a second control group will answer a different set of questions every 2 days for 2 weeks.

My idea which seems quite convoluted is this: Start with all consent demographics etc., before using The prolific ID’s of participants to randomly assign participants to one of two conditions (an intervention and a control). Depending on which condition they get assigned to, they do one of two tasks and after completing these tasks get a link to second Pavlovia experiment, where they repeat the task previously completed before getting another link to a third experiment in Pavlovia. This goes on until they have completed 7 different experiments (either 7 repeats of the control, or 7 repeats of the intervention task). They then get given a URL to take them back to prolific to end the experiment. Ignore the fact that repeat experiments in Pavlovia cost tokens (using an institution license).

See the attached image for a visual representation of my idea.

I know there must be a better way of doing this. Is it possible to create an experiment that will allow me to do this in PsychoPy? Or would something like Gorilla or Qualtrics be better suited?

As Pavlovia experiments run in PsychoJS, a JavaScript library, you can use all the functions of base JavaScript, including the ones for getting the date and time:

To change the questions according to what day it is, I would probably put the routines with the different procedures into their own loops, and use a :code: Code component to set loopName.nReps to be 1 if we’re on the right day to use those questions and 0 if not.

Hi Ollie,

Good to see you here. This seems like an excellent use case for the new “shelf” functionality. If you send the Prolific user ID to Pavlovia, it could check the shelf to see which group has been assigned for that ID and if the ID isn’t there, assign one and save it back to the shelf for future reference (and assignment of equal numbers).

I’d be happy to look into this when I’d back, so for the moments I’d recommend focusing on getting the rest of your experiment working, with a group variable assigned manually at the start. Then add the shelf code to change how it is assigned.

Best wishes,


PS Here more information about the shelf.