Timer Related

These are SPECIAL statements that keep track of times of interviews, allows pauses, automatically fill an answer if one is not given within a timeframe or forces an interviewer into a survey after a specified length of time.

Valid Subtypes

  • Fill_Next_Question_If_Idle
  • Pause
  • QuitScreen_Timeout
  • Seconds_Since_Start
  • Stop_Watch

FILL_NEXT_QUESTION_IF_IDLE

Shortform: SPC,FILLNEXT

This command causes Survent to provide an answer for the next question it sees if an answer is not supplied in a certain number of seconds. This will fill any data-entry question type (FIELD, NUMERIC, VARIABLE and TEXT question). The maximum response length for a !SPECIAL,FILL_NEXT_QUESTION_IF_IDLE is 76 characters.

The syntax for the SPECIAL,FILL_NEXT_QUESTION_IF_IDLE is:

!SPECIAL,FILL_NEXT_QUESTION_IF_IDLE,<# of seconds>,<label:response>

For example, on the initial phone status screen, if the interviewer gets to that screen and goes away, you can force an answer which will cause them to exit automatically out of the interview, so the supervisor and reports don’t think they are still in the interview.

EXAMPLE:

{ NOANSWER:
!SPECIAL,FILL_NEXT_QUESTION,15,“No Answer” }

You could use this before a VARIABLE type question and it would be filled in after 15 seconds with “No Answer” if not already responded to.

The SPECIAL,FILL_NEXT_QUESTION_IF_IDLE feature also allows you to submit grids after # seconds and allows you to fill in multiple questions with responses when submitted.

The syntax for the SPECIAL,FILL_NEXT_QUESTION_IF_IDLE question type for a grid is:

!SPECIAL,FILL_NEXT_QUESTION_IF_IDLE,<# seconds to wait>, <label1:response1>,...<labeln:responsen>

This is set in the template file “submit_timers.tmpl” in $cfmc/websurv/tmpl/WC_default directory.

There is also a feature to display a timer on the screen while waiting for the SPECIAL,FILL_NEXT_QUESTION_IF_IDLE to activate which you can invoke by uncommenting the code at the bottom of submit_timers.tmpl.  It uses the DisplayTimer.js  javascript.

EXAMPLE:
 
 {!SPECIAL,FILL_NEXT_QUESTION_IF_IDLE,10,Q3:2,Q4:99 }

The above example says, when you execute the next GRID, if the page is not submitted within 10 seconds, auto-fill a “2” for Q3 and a “99” for Q4 and submit the page.

PAUSE

The SPECIAL, PAUSE causes a pause of a specified number of seconds; the maximum is 60 seconds and the number can include decimal places (i.e., 1.5 for one and a half seconds). No data location or width can be specified on the question label line.

The syntax for the SPECIAL,PAUSE statement is:

!SPECIAL,PAUSE,<# of seconds>

EXAMPLE:

{ QWAITFOR10:
!SPECIAL,PAUSE,10 }

This says to pause at the question called QWAITFOR10 for 10 seconds.

NOTE: You can use the DISPLAY,TIMED_WAIT question/subtype to display a screen and pause for some number of seconds. (See Display Statements for more information).

QUITSCREEN_TIMEOUT

Shortform: SPC,QUITSCREENTIMEOUT

This command sets the Force_Into_Interview time to the number of seconds specified. This is the time after which an interview will automatically be restarted (and a message sent to the Supervisor) after the “Return to interview” prompt. This lets you control on a study-by-study or interviewer-by-interviewer basis the amount of “rest time” between interview starts, or force the time high if the interviewer is going on a break.

NOTE: SPECIAL,QUITSCREEN_TIMEOUT does not update quotas unless you specify “now” in the !QUOTA statement.

The syntax for SPECIAL, QUITSCREEN_TIMEOUT is:

!SPECIAL,QUITSCREEN_TIMEOUT,seconds

A setting of zero will turn off the automatic starting of interviews when the FORCE_INTO_INTERVIEW=## option is in use by the supervisor. A negative setting turns off the ‘slacking off’ message to the supervisor, but otherwise uses that number.

Set this in the supervisor using the FORCE_INTO_INTERVIEW command in SURVSUPR.

SECONDS_SINCE_START

Shortform: SPC,SECONDS

This command enters time (in seconds) since the beginning of the interview. The default width is 9.

EXAMPLE:

{ TIME_TO_NOW:
!SPECIAL,SECONDS_SINCE_START }

This example would enter the time since the beginning of the interview. SPECIAL,SECONDS_SINCE_START is often used to time all or part of an interview. If using for this purpose, remember to account for any time spent suspended. Also see SPECIAL,STOPWATCH below, which accounts for suspend time and get partial times without calculations.

STOP_WATCH

Shortform: SPC,STOPWATCH

The SPECIAL,STOPWATCH command accumulates interview time.  It works as a timer that you can start and stop.

The syntax for the SPECIAL,STOPWATCH question type is:

!SPECIAL,STOP_WATCH,<suboption>

Valid Suboptions

  • START – Start or restart the timer and record the current value of the timer.
    • Shortform: SPC,STOPWATCH,START
    • This is the default.
  • STOP – Record the value of the timer and stop it.
    • Shortform: SPC,STOPWATCH,STOP
  • RECORD_TIME_SINCE_START_STOPWATCH – Record the value of the timer, but do not stop it.
    • Shortform: SPC,STOPWATCH,RECORDSINCESTART
  • RECORD_TIME_SINCE_LAST_STOPWATCH – Record the time since the last SPECIAL,STOP_WATCH (any sub-option) was executed.
    • Shortform: SPC,STOPWATCH,RECORDSINCELAST
    • This option is used to record times between certain intervals, such as the time since the main questionnaire started, or the time since the questionnaire started and was completed, etc.
  • START_MILLISECOND_TIMER – Record the value of the timer in milliseconds.
    • Shortform: SPC,STOPWATCH,STARTMS
  • READ_MILLISECOND_TIMER – Read the value of the timer in milliseconds from the time it was started using a SPECIAL,STOP_WATCH,START_MILLISECOND_TIMER command.
    • Shortform: SPC,STOPWATCH,READMS

EXAMPLE:

{ START_TIME:
!SPECIAL,STOPWATCH,START } Starts timer

“Screener questions are here”

{ SCREEN_TIME: .3
!SPECIAL,STOPWATCH,RECORD_TIME_SINCE_LAST_STOPWATCH } Time since start timer (Screener time)

“Main questionnaire questions”

{ MAINTIME: .3
!SPECIAL,STOPWATCH,RECORD_TIME_SINCE_LAST_STOPWATCH } Time since screen “main” time

{ TOTALTIME: .3
!SPECIAL,STOPWATCH,STOP } Total time

The time accumulates in seconds. If a data location is not specified on the question label line, the time is only stored internally (and, when suspended, in the Suspend file). The time is stored as an integer (whole number), zero-filled. If the field specified is not large enough, it is filled with asterisks.

The typical scenario would be to start the timer at the point that you want to start counting, and record it with a SPECIAL,STOPWATCH,RECORD_TIME_SINCE_START_STOPWATCH at critical points in the questionnaire (i.e., when suspended). Stop it at the end of the interview, and record total time with SPECIAL,STOPWATCH,STOP assigning a data location.

This subtype gives you complete control over what parts of the interview are timed.

You don’t have to turn off (stop) the timer during suspends; it knows not to count time when suspended.