Interview duration

Good morning survey team,

I have a doubt, in the attached image it indicates: “duration: one minute”, I understand that it is the duration of the interview … how is it possible that it is a minute if the interview has many questions answered.

Thanks for your directions


Check the paradata for that interview.

Have you looked at the paradata?
What did it show?

There is an example which can be used to record visits. In the designer under the

  1. Public Questionnaires
  • Standard survey modules

You can use this module and include and endtime for each visit in the roster, the interviewer will then complete the start and end time for each visit. This will ensure that you have the start and end time of each visit in the dataset, that way you will be able to compute the duration without going to the paradata as Sergiy suggest as this may be a little more cumbersome to do.

Hi edwinstcather

Thanks fpy your anwser.

Edwin’s advice is a workaround. It will help @eherencia to calculate the duration of interviews (if interviewers are cooperating and following the protocol), but it will not help us to locate and fix the problem with the code that automatically calculates the duration of the interview (if there is indeed any problem with it).

Dear Sergiy, in my case I have tried to approximate the total application duration by adding a sum of the response durations in each question, excluding extreme values that could correspond to interruptions in the interview or exceptions in the response sequence. To obtain the response time for each question, I have ordered, according to the response sequence established in the protocol, and calculated the time difference between the “answerSet” events of each question and the previous question. Here I add the code in R that I have used:


paradata %>% 
  filter(event == "AnswerSet", role == 1) %>% 
  mutate(date =  as.POSIXct(as_datetime(fast_strptime(as.character(timestamp), format = "%Y-%m-%dT%H:%M:%S", tz = "UTC"), tz = "UTC")))
  arrange(interview__id, date) %>% 
  mutate(no = row_number(),
         duration = difftime(dplyr::lead(date, n = 1, default = date, order_by = no), date, units = "secs"))

I think an algorithm could be used to make a better approximation of the duration. I would like to know the algorithm used by Survey Solutions so I can comment and contribute.

I honestly can’t comprehend the R-code that you’ve posted, but if it is doing what is described in the quote above, then it is doing

(Q2-Q1)+(Q3-Q2)+(Q4-Q3)+.....+(Qn-Qn-1) which is simply (Qn-Q1)

Survey Solutions knows when the user has the application on the screen. So that time is counted, but it doesn’t mean that the interview is in progress, the tablet can be just lying on the table abandoned. It subtracts the time spells when you e.g. switch to a different application. But you may opt to decide that e.g. using a calculator is still part of interview. So it is all an approximation anyways.