Welcome to the Fatal Injury and Violence Analytics challenge!
CDC’s National Center for Injury Prevention and Control (NCIPC) works to understand how injury and violence impact society, and what can be done to prevent it. In the previous challenges (1, 2, 3) we implemented a base Python/Dash solution for the fatal injury and violence data analytics and visualization dashboard.
In this challenge, you will further build upon the code base provided in the challenge forum to enhance an existing feature and implement a new feature for the tab ‘table view’.
A. Existing Functionality
Allow calculations to be performed without the need to specify a value for each variable.
Currently, the table view shows the largest increase and decrease in the number of deaths stratified by ‘age’, ‘race’, ‘gender’, and ‘ethnicity’. The calculations require at least one choice to be chosen for each of these variables; for example, either ‘male’ or ‘female’ must be chosen for the ‘gender’ variable. We would like the option to allow for gender = all, age = all, ethnicity = all, and race = all as a part of the calculations. This allows the table view to show highest increases and decreases without choosing each specific variable.
B. New Functionality
Allow a user to view different performance metrics besides ‘relative % increase/decrease’.
Essentially, we want to update the table view to support three different methods of comparison:
- relative percent increase/decrease (already implemented);
- historical limits method or HLM (in scope for this challenge);
- CUSUM method (in scope for this challenge).
While relative percent increase/decrease is easy to calculate and understand, there are more sophisticated options to assessing whether the base year is higher or lower compared to comparison years.
Examples include historical limits method (where the performance metric is number of standard deviations above or below average deaths from comparison years) and CUSUM method.
Challengers are encouraged to come up with multiple and creative solutions to assessing what combinations of variables lead to the highest increase or decrease in deaths in a statistically and computationally valid way.
The added functionality should not replace the relative % increase/decrease but will be added as option(s) in the tabular view (please see screenshot with red box).
The new functionality should be optimized to ensure efficient calculation to reduce lag time. For functionality that has limitations (for example, historical limits method requires multiple comparison years), provide appropriate error messages/notifications if the minimum parameters are not met for the added function.
Please note that we have added a checkpoint phase that is due on 01.16.2021 05:14 EST. Submitting to the checkpoint is optional, but for members that submit before the deadline, we will award 3 extra prizes of $200, subject to the following conditions:
- the checkpoint submission must demonstrate a working implementation of either the HLM or the CUSUM method;
- the final submission must implement the remaining requirements enough to pass review with a score of >=80;
To summarize, in addition to the 1st and 2nd place prizes shown on the challenge page, we will award up to 3 members a separate checkpoint prize of $200 each.
This challenge will be scored according to the standard code without unit-tests challenge scorecard. The major requirements are the described functionality outlined above. When scoring minor requirements, reviewers should deduct points for issues that prevent the application from working as described above.
Please submit an updated code base that can easily be merged with the original code base. Don’t forget to update the documentation as needed. You may include any comments to reviewers, which may help with the review, as a separate document outside the main code base.