So I am looking to calculate the distance travelled by field staff during their data collection everyday, ideally without making them trigger anything on the form (map question, click to start, etc), in the context of their performance monitoring. I have checked geotrace and geoshape use cases, but they don't seem to map to this requirement. Any help in implementing this?
Both of these options can automatically capture the data collector's location in the background while they're filling out the form, without them needing to take any manual action.
That said, in both cases, the data collector will be informed that their location is being tracked while they complete the form (for privacy purposes).
With this setup, you’ll end up with geo-coordinates for each form submission by a data collector throughout the day. You can then use this data to find the distance they've traveled in a day (or over any time period as per your requirement).
I think there might be a subtle difference between what the audit log does an what @Saad might be looking for (if my interpretation is correct).
My understanding of the audit log is that it captures location when questions are answered (or when events are logged, more correctly) rather than at a given interval throughout the time the form is open - I would be very happy if I'm wrong, because I would probably use this function to simplify some mapping requirements.
So although it could give an approximate distance, if the enumerator travelled a circuitous route between questions / events, this would not be captured - so for example visiting a location but not specifically recording anything or interacting with the form would be missed.
I usually get enumerators to run a GPS track with another app and have a question to attach a file at the end of each form. My use case is different (it is not for performance management), but background trace has been discussed many times and unless it has been quietly introduced / changed, the existing audit functions don't quite match the granularity of a trace. My enumerators might answer some questions part way along a 'transect' or 'route', but are more likely to complete the majority of the form at the end, so the Audit Log would not necessarily capture the route (and therefore true distance) - which in my case is important.
I realise this is pedantic, and possibly in many cases using the different event points would be sufficient for performance management, but I dont think it provides an accurate trace of movement and therefore distance travelled.
So my response is aimed at clarity rather than criticism of your helpful reply But I'm glad I don't have to work for @Saad and be tracked all day - all my coffee breaks might be revealed! Sorry, any coffee break that I may or may not take, could potentially be logged.
I think we both might be interpreting @Saad 's requirement a little differently (though to be honest, I'm still not fully sure which one he actually meant).
Here’s how I understood it:
The data collector visits some location,
Starts a new form there,
Completes it and submits it to the ODK Central server,
Then maybe takes a coffee break or heads somewhere else,
The next location only gets recorded when they start a new form at the location where they are supposed to be at for next form.
In this setup, their coffee breaks or other off-track movements shouldn't be logged - unless, of course, they decide to fill a new form while chilling at the cafe (which I doubt ). So, using either start-geopoint or a location audit should give us the start location for each submission. That data can then be analyzed to estimate the distance covered between submissions across a time period.
Now, your interpretation (which is also valid!) sounds more like this:
The data collector visits a location,
Starts a form,
Doesn’t end it immediately,
Instead moves around - maybe trying to record multiple location data within the same submission.
That's quite an interesting take too. I haven't personally worked with location audits yet, but now I'm curious - if someone saves a form as a draft, takes a coffee break, and resumes it later at a different place (where they are truly expected to collect their next set of data)... would the audit log still generate fuzzy movement data?
Indeed - that was my point to try to differentiate between interpretations.
I think that ODK audit logs DON'T log location between events, so could (in my scenario) lead to under recording (which for @Saad's team might make them appear to be under performing and that might cost them kudos or money).
Some of my forms use repeats to collect related information (the 'instead moves around' part) and I can't guarantee that an enumerator will actually fill in a repeat for 'no-data' (although in an ideal world, of course, a negative can still be useful!). A separate GPS log helps me see that the enumerator at least visited the location (and potentially that it's not a straight line between the repeat locations).
In your interpretation I agree that it would work but enumerators would have to be careful not to start a form at a cafe, then go to where they were supposed to be to complete it... that would be busted territory
This probably demonstrates the need for clear questions and enough background information to help provide a solution. This is my self-defence for my very long and overly detailed posts...
Quite an interesting discussion going on. I really didn't think my simple question would spark such a productive debate
For now, my intention is to test the idea of location tracking (even soft is OK, which does not record coffee breaks). I got this idea by looking at the different geo-tracing features of ODK, which tend to cover some area, etc. Until I test it fully, I don't think it is wise to attach it as KPI to performance management (don't worry @seewhy, I'll go with you as a field officer myself if we do a project like this together Also, coffee breaks are time variable. I am more interested in distance variable for now). Even with performance management attached to it, the circular movement makes a very valid point/exception. So we may think of giving credit to someone travelling long distance, rather than penalizing someone who does not seem to be moving a lot. This is a separate debate though.
I need to have a look at how start-geopoint and audit logs are working (as mentioned by @MinimalPotato. However, if these are giving me the geo-location points of only when a form is filled, I do already have a location question right at the end of the form. So won't it be the same thing? I mean, a painful way is that I can pick up geo coords from all submissions by a person and compute the locations somehow. But this would require extra offline work. Would start-geopoint and audit provide some better thing and save my time?
Ideally, I need the trace to work even when the form filling is not being done, because the form filling coords are already coming to me via location question inside the form. So 'ideally', i want to see how can I go beyond it.
Hope I clear my ideation of the thing. But the good brainstorming shows that we can have several offshoot discussions from this feature.
Phew, well I'm glad that I won't get sacked yet. So is it better to take lots of short coffee breaks or one very long one in your KPIs? Asking for a friend
I would probably use QGIS - if you have a set of points in a layer (e.g. the end location in your form), you could use the 'points to path' processing algorithm with a time element for order.... and group by enumerator. And a cunning thing if you have images / media attachments, is that they are time-coded (filename is unix epoch time) so can be used as the order (and even reverse-engineered to provide a time-stamp for your instance if you don't have an alternative in place).
QuODK plugin for QGIS is a relatively painless way of importing 'geolocated' submissions from Central - both as a dataset and incrementally, but I haven't considered capturing audit logs. Yet.
But I'm sure other methods exist, probably less painful.
I'm glad also that going round in circles can be a valid point/exception for KPIs. So another friend tells me...