Modular Survey Design and Data Processing Tools

Hi all,

Firstly I would like to thank everyone working on ODK, it's such a fantastic collection of tools! I thought I would share something we have been working on. It's been a lot of work, so apologies for the long post!!!


I work on the Rural Household Multi-Indicator Survey (RHoMIS). This is a short modular survey designed for rapid farm characterisation, with a focus on smallholder farmers in Low and Middle Income Countries.

We realised that building a modular survey, meant that we could build standardised analysis code and generate really rapid results for organisations. We developed a series of survey modules (in ODK) and analysis code (in R) that corresponded to each module. For years we merged the ODK modules manually, and conducted the analysis manually (downloading data from ONA and running R-scripts locally) . After almost 7 years of refining the survey and analysis code, we decided to try automate a lot of the work we do, and make it freely available.

Our Tool

We have designed an "end-to-end" tool, which allows users to:

  1. design surveys: Users can select from an existing bank of modules (translated into 9 languages). They can view the contents of each module, estimated duration of survey. The form can be localised (e.g. locally units for crop yields or land area). All of this is done using a drag and drop interface, so no ODK experience required.

  2. manage projects: We have created a light system that can be used to monitor projects, monitor submissions, access QR codes to configure devices... We know this mimics a lot of the functionality of ODK central, but we wanted to restrict users abilities, so they could not upload completely custom forms to ODK central.

  3. process data: Finally, we have a server which pulls data from ODK central, runs some analysis code, and stores results and "cleaned" data in a database. Crucially, the code which is used to process the data is available online as an R-package. This means users can conduct more bespoke analyses locally, using the same tools.

The main point is, this tool is essentially an extension to ODK which restricts users to only use particular modules, with the goal of facilitating comparability across surveys and allowing for automated data processing.

Useful Features

Whilst developing this system, we have worked on a number of features which we think could be useful for this group:

  • A survey design tool, which allows users to select modules, downloads xlsx forms, push forms to ODK central, create new drafts...
  • QR code generator
  • R-code to interact with the ODK central API
  • R-code to generate synthetic responses based off-of the contents of an XLS form

Going Forward

Our tool is still in development, and there are lots of things we would like to make better! We are trying to find people who might find use for our tools, or who want to contribute (either ideas or code)!

If anyone is interested in a demo, or wants to chat more, let me know! All of our code can be found here (let me know if you have any questions about it!).

Thanks again for all the help I've received so far from everyone in this community!



Thank you very much for this post. We tend to use some of the similar functionalities in our organisation. I will have a deeper look and revert back. May be we can collaborate in our development efforts.
Best Regards

It will be great if we can see some screenshots, that makes things much easier to understand.

Thanks a lot


Hi @Syed_Muhammad_Qadeer

I'm so sorry for the late response, it's been a very busy month! It would be great if there was room for collaboration. Please bear in mind that this is still in development, but here is some prototype documentation on our tool. In it there are some screen casts which show some of the main functionanities! Maybe this would be more helpful.

Excited to hear your thoughts!!!

Apologies again for the late response!!!

Best wishes,


1 Like