App Design, with Data In Mind

Overview

One of the best ways to ensure high data quality in your CommCare applications is by both #1 spending time up front thinking about the data that you want to collect and #2 designing applications that include data quality controls in them.

To put it another way:

 

Below are some tips for ways to design your application to control for data quality. Please check out the https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2143946283 section as well.

What data do you want to collect?

To start, make sure you go into your application building with a clear list of key indicators that you want to collect. Make sure that  the “key indicators” worksheet is reflected in the app worksheet. In other words make sure that there are questions or hidden values which will generate the data required for the indicator.

  • Figure out your indicators. In case helpful, you can download this key indicators worksheet to guide you through thinking about what you want to do with your data and which data you will need easily accessible in the exports. As part of this, you should also create demo data in Excel to map out exactly how you want yoru data to appear.

  • Build a mock-up dashboard off the demo data. You can use the https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2143957984 here.

  • Create your app. Build an app shell with the questions which generate the data that you need in the exports.

  • Export Data from the App. These data should look like the raw data from the beginning. If they do not, revisit the configuration of your application.

Putting data quality controls in place

Case Management

You can use https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2143956655  to save anything you want to be able to edit to the case. 

Advantages:

  • User can quickly correct errors from the mobile

  • Case export will always show the most recent version of a given case property

Disadvantages:

  • Erroneous form submissions will still be present in form exports

  • It may not be feasible to design an application that allows updating/correction of all fields

  • If an erroneous answer impacted display conditions or other case management logic, then this approach may not undo everything.

Edit Form

An app can contain "edit" forms that load in the previous values of case properties, and allow users to update them. This then updates the value of the case property, so that the case details/export contain the most recent values. Details on the workflow can be found here .

Automatically Close Cases

Create rules on CommCareHQ to automatically close cases that are no longer relevant. Read more here: .

Before You Deploy the App

The steps below outline how you can take these two key points into account during app building.