App running at http://qc.covidtracking.com/
Slack channel: #data-entry-qa
Consistency checks for CovidTracking data
To verify internal and external consistency of reported COVID counts tracked by the team.
This repo contains automated checks against the working spreadsheet and against the published api.
-
Set environment
install python3.8.1 or later python3 -m venv qc-env source qc-env/bin/activate
-
Install requirements
pip install -r requirements.txt
You can either run this repo as a client or as a Flask app that sends requests to a Pyro4 RPC server.
python run_quality_cli.py [-w, --working] [-d, --daily] [-x, --history]
-
Install requirements
pip install -r requirements.txt
-
Open a terminal and run
python flaskapp.py
-
Open a separate terminal and run
python run_quality_service.py
-
Open http://localhost:5000 and you should see the client running
A user chooses to check either the working dev Google sheet, current api, or history api. Each state's data (such as positives, deaths, negatives, totals, pending tests, and others coming soon) are run independently against a series of checks. ./app/check_dataset.py
contains the list of applicable checks for each dataset and controls data and object passing to the ./app/checks.py
file, which implements the checking logic.
Quality check results are served via a Pyro proxy that can send requests to the ./app/check_dataset
for checking execution. We then sit a Flask app on the front end so that users can interact wtih the proxy.
A list of current checks along with implemention assumptions / judgement calls is maintained in a spreadsheet in this repo (./resources/Quality\ Control\ Checks.xlsx
)
Current status:
- The team is working on deploying the app to a public facing node
- There is still work to be done adding checks to the service. See the #data-entry-qa channel to get up to speed and check the COVID19Tracking issues page for open issues.