Add interview status changes to action log

Use case: Survey managers want to know about how data collection is progressing at all points of time–not only how many interviews have been completed, but also how many interviews have not been started and how many interviews have been started but not completed. Existing data provide part of the picture. The assignments info–whether gotten from the API or assignment__actions–provides a picture of both finished and unfinished work. The interview data provides info on interview status for interviews sent to the server. The action logs provide information of some actions taken on assignments and interviews before interviews are sent–but not all. The logs say when interviews are created, and from which assignment. They do not say, however, when interviews change status–for example, go from started to completed–or which interviews are sent/received during syncs. In the example below, was this interview completed or not? When I see a sync action later, was the interview (if completed) sent or not? Hard to make a proper accounting of current state of data collection without this information. (Note: fully willing to accept stale information–that is, info as of last sync date)

Implementation idea: Add the following details to the action logs:

  • Events associated with status change: interview marked complete, interview restarted, rejected interview opened for editing
  • Details on which assignments sent/received and which interviews sent/received during each sync event

Alternatively (additionally?): sync the dashboard details to the server during each sync event, and allow users to fetch this from a dedicated API endpoint. The return could be a nested JSON: list of assignments (i.e., contents of create new tab) and their attributes; list of started interviews (i.e., started tab) and their attributes; list of rejected interviews and their attributes. No need for completed ones, since they can be found in exported data on the server.

Work-arounds: Some parts of this request have no clear work-around. I do not see how to know which interviews (assignments) were sent during each sync. Others have messy work-arounds. For example, I might be able to understand when interviews were completed on the tablet by “merging” the action logs and interview__actions and by (potentially) correcting the time terms of each data set.

This is done already and visible in each interviewer’s profile.
I am not sure about the interpretation though. You wrote:

Since the interviewer have a possibility to discard interviews, be prepared that the progress bar may be moving backwards in these circumstances.

Thanks, Sergiy. On the first quote, I realize this information is available in the interviewer’s profile, but there’s no easy way to aggregate this information. To my knowledge, there’s no way to rebuild this info, nor any way to get this info directly via an API endpoint.

On the second quote/point, that’s fine.