How to take time stamp for every section and how to merge audit CSV with main dataset report?

1. What is the problem? Be very detailed.
I am trying to capture time for the start and end time in my ODK form only in few section.

2. What app or server are you using and on what device and operating system? Include version numbers.
I am using ODK Central and ODK Collect for this which is present on server and play store respectively

3. What you have you tried to fix the problem?
I tried to use the audit function in the survey sheet however I am not sure how to merge this CSV file with the main dataset. If there is any other solution then tell me. I also tried this kobo collect solution in ODK, but this is giving me start and end time same for all of the different solutions.

4. What steps can we take to reproduce the problem?
I am attaching my ODK form with this post here.

5. Anything else we should know or have? If you have a test form or screenshots or logs, attach below.
If there is an excel function that can help me or if there is any other branch which I can merge and then I can get analytics to feel free to tell me that as well. I also try this as well.
Time Difference NS v1.7.xls (32.5 KB)


Hi Narendra,

If you do not want to use the audit data that indeed require a bit of processing to be interpreted, you can have a look at lightweight timestamping in the ODK documentation. I use the audit log when I want to understand more in details how a specific form has been filled out (focused/triggered search), but for generating descriptive statistics about the form or a specific section duration, I always use lightweight timestamps (even in complement to the start and the end metadata as they may not be accurate: a form may be opened 3 days before the first question is recorded or finalised 3 days after the last question has been recorded)

You do not have to modify your XLS form much, as described in the doc you just need to link the now() calculation to a specific question in the form (e.g. first question or last question of a specific section)

  • either by adding a trigger (to record whenever the question is answered/edited)
  • or by conditioning your calculation (to record the first time the question is answered).

If you do not do that, it seems that the output of now() may represent different values depending on when it is evaluated, see ODK documentation.