25 Unique Identifiers for ODK ecosystem online surveys
When running an online and anonymous survey with ODK Ecosystem tools, it is provide your participants with a way to invoke their right to be removed from the study or to access their own data.
People rarely think about this aspect of anonymous surveys, but it’s very important.
ODK creates a unique identifier (UUID) for each submission in the background. Your form can call this UUID into memory using a calculation type question. You can then use a second calculation type question to select a substring of UUID as your participant ID.
On the screen you’d say something like “Write this identifier down and keep it safe. If you want to be removed from the study, please email x@myuniversity.ac.uk, providing this identifier : ${id}”. Obviously this would break anonymity but it would be initiated by the participant so not an ethical issue.
25.1 Form design
File can be downloaded here
On Enketo, this looks like this
You wouldn’t want to give people the full-length version of UUID as it is very long. In the example I select the last 8 characters of the UUID with
substr(${uuid}, string-length(${uuid}) - 8, string-length(${uuid}))
I’d say you’d want between 6 and 8 characters (unless you anticipate hundreds of thousands of submissions) as this balances people’s ability to write something down accurately against the collision probabilities.
The collision probability describes the chances that any two randomly generated ID numbers of n length would be identical.
Number of Characters | Possible Combinations | Collision Probability |
---|---|---|
2 | 256 | 0.004 |
3 | 4096 | 0.0002 |
4 | 65,536 | 1.5e-05 |
5 | 1,048,576 | 9.5e-07 |
6 | 16,777,216 | 6.0e-08 |
7 | 268,435,456 | 3.7e-09 |
8 | 4,294,967,296 | 2.3e-10 |
9 | 68,719,476,736 | 1.5e-11 |
10 | 1,099,511,627,776 | 1e-12 |