Designing for Data Quality
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. 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.
Test your exports. These data should look like the raw data from the beginning. If they do not, revisit the configuration of your application.
Consistent Naming
Have descriptive and consistent naming for your Question IDs and case properties. They are used in data exports and when doing case configuration.
Descriptive: Use something like date_of_birth not dob. CommCare allows for long names if you want to be descriptive. Another person should be able to looks at your names and understand the data.
Consistent:
Be consistent with casing (i.e. always use lower case)
Use the same name for the same question in different forms and the same case property name in different forms
User underscores instead of spaces (as spaces are not allowed)
To test your Question IDs, choose "export form contents" under Tools to view all questions in your form.
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.
What data should you NOT change in CommCare?
Using CommCare's application builder it is very easy to make changes and updates to an application after it is deployed. However, before making certain types of changes you should be aware that there can be unexpected and potentially confusing implications both for the application design, as well as for subsequent data analysis. This page is mean to highlight some of those potential issues.
In general we recommend against changing Question IDs, Choice Values, or Case Properties unless there is a compelling reason. If the motivation is that you want to be able to view the column header in a specific way we recommend just changing the name of the column in the Form Export configuration. You can read more below
Changing Question IDs
Changing Choice Values
Changing Case Type & Case Property names
Changing case properties can have particularly complex consequences. Do NOT change the case type after data collection has started.
Saved and Incomplete Forms