Have an idea?

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

Possibility to define participants as disqualified if they completed survey in less time than expected


does anybody knows how to o define participants as disqualified if they completed survey in less than 4 minutes for example ? How to define logic, that reads out time spended for the survey and screenouts those participants.

Thanks in advance

Kind Regards
asked Nov 25, 2014 by anonymous

1 Answer

0 votes
One option you can use is to create a "survey time" variable and use SetValue to update this variable as the survey travels from page to page. You would have to update the "survey time" variable on each page if you want this rule strictly applied. Or you do have the option to update it only on certain pages. That would be a decision you would need to make.

There are three methods I can see that would be helpful in some way in updating the "survey time" variable ...

1/ Using the system variable sys_ElapsedTime - Total amount of seconds respondent spent in the survey (sys_EndTime - sys_StartTime).

2/ Using the PageTime function. PageTime(StartPage, EndPage) returns a value (in seconds) between StartPage and EndPage.  EndPage is optional.  If no EndPage is supplied, PageTime returns the total time spent on StartPage. This would be useful if you are only looking at certain pages, not the whole survey.

3/ Adding all the page times together using the system variables sys_pagetime_#. This would also be useful if you are only looking at certain pages, not the whole survey. This is a good option if you are not looking at a range of pages like the PageTime function would (e.g. pages 1-5 / 10 / 15-16 / 20).

Once you have decided which method best suits you with time capture, you can save the time to a "survey time" variable using SetValue and then base you skips off the "survey time" variable (e.g. skip to disqualified outro  if SurveyTime>240).
answered Nov 25, 2014 by Paul Moon Platinum (78,075 points)

I am trying to do the same thing and I was wondering whether you can share a small example here. I am beginners in this and it'd be very helpful if you could provide an example that suits  to the 1st  method you mentioned above.  

System variables like sys_ElapsedTime and sys_pagetime_# become available when exporting your data. So these can't be used in live surveying to disqualify a respondent. They are used more for analysis purposes.

I have set some time stamps throughout my surveys before using something like this example ...

Define T1/T2/T3 as variables in your pass in fields as whole numbers.

Insert this in the Q1 footer - [%SetValue(T1,SystemTime())%]

Insert this in the Q5 footer - [%SetValue(T2,SystemTime())%]

Insert this in the Q9 footer - [%SetValue(T3,SystemTime())%]

You can use these in skips like skip to Term1 if T2-T1>100 or T3-T1>200 for example.

You can also create a TotalTime variable (just as you did for T1/T2/T3) and set it's value as such ...


and then use in skips like TotalTime>500 then terminate.

So this is just one method for terminating based on time.

Note the SystemTime is recorded when the page is loaded, not when it is submitted.

There are many other ways to do this using other SSI Script functions.

And another consideration it to filter out the surveys where the sys_ElapsedTime has exceeded a certain value. This way you don't need to worry about disqualifying but the question is how many will fit your criteria.
Thanks Paul.  This was very useful.  One last clarification question is that the time recorded is in milliseconds? ie 1000 = 1 minute?
No, the system time is recorded in seconds. It returns a number representing the current time (number of non-leap seconds since January 1, 1970).

Date fields are horrible to deal with when applying arithmetic, so this technique comes in handy.

These are not milli-seconds.
Thanks, Paul.  My condition was: if T3-T1<10 then skip to the end of the page (disqualify).  I tested the time when this condition does not hold (when the next page appears rather than it skips to the end of the page). I was confused that this would happen only if T3-T1 is 24 seconds, not 15 or above. As I set the time difference being 10, I'd have expected this to be closer to 10, but not 24 seconds. That's why I was not sure whether I measure was in seconds.  The page also seemed to load fairly quickly. I am not looking for a precise elapsed time, but at least to get an idea about the set time in skip logic.
The timer starts the moment a page loads, not when you submit it. So you need to take that into account when placing your time stamps.

If I wanted to place a time stamp at Q4 (and include the time spent at Q4), I would place the time stamp at Q5 instead.

Display and test your time stamps on a few pages so you understand how they work. When I was testing these initially, the times didn't add up, then I realised their behaviour.
Thanks Paul.  Will do.