Progress
A progress status for each indicator can be automatically generated by analyzing indicator data. Indicator progress is calculated following Statistic Canada's progress measurement methodology.
Setup¶
The automated progress measurement functionality runs on Open SDG versions 2.4.0 or later.
To setup your site to display progress statuses, follow these steps:
1. In the site repo, go to _data/site_config.yml and find these lines:
progress_status:
status_heading: ''
status_help: ''
status_types: []
Replace the lines above with the following:
progress_status:
status_heading: status.progress_status
status_help: ''
status_types:
- value: not_available
label: status.progress_not_available
alt: status.progress_not_available
- value: deterioration
label: status.deterioration
image: assets/img/progress/red-gauge.png
alt: status.deterioration
- value: limited_progress
label: status.limited_progress
image: assets/img/progress/orange-gauge.png
alt: status.limited_progress
- value: moderate_progress
label: status.moderate_progress
image: assets/img/progress/yellow-gauge.png
alt: status.moderate_progress
- value: substantial_progress
label: status.substantial_progress
image: assets/img/progress/green-gauge.png
alt: status.substantial_progress
- value: target_achieved
label: status.target_achieved
image: assets/img/progress/target-achieved-gauge.png
alt: status.target_achieved
2. In the same site_config.yml file, also add "Progress" as an ignored disaggregation.
ignored_disaggregations:
- Progress
This is needed for the progress column functionality which allows data conversions and transformations prior to the progress calculation.
3. In the data repo, turn on the automated progress calculation by adding auto_progress_calculation: true to the indicator config file(s) of the indicator(s) for which you want to evaluate the progress. Take care to also setup the progress_calculation_options for each indicator so that the progress measurement is as accurate as possible.
Progress column¶
A data column named Progress can be used to run the progress calculations with different values than appear in the Value column. During the progress calculation, all values in the Progress column will override all values in the Value column. However, the values in the Value column will still appear on the indicator page. This can be useful when additional operations must be applied to the raw values before running the progress calculation without affecting the data displayed on the indicator page.
The progress column should be added to the ignored_disaggregations in the site configurations to prevent the progress column from appearing as a disaggregation drop-down menu.
ignored_disaggregations:
- Progress
Indicator-config progress settings¶
Input parameters such as the base year, the target, the target year, the desired direction of progress, and any limit to the indicator's allowed range may be specified using the progress_calculation_options in the indicator config file. These options also allow you to select which time series (specified by series name, unit, and/or disaggregation field) to use for the indicator's automated progress calculation.
Manually specifying the progress status¶
Instead of calculating the progress according to Statistics Canada's progress measurement methodology, the progress status can be manually specified in the metadata. To do so, the progress calculation must be turned off and the progress status can be specified with the progress_status field.
auto_progress_calculation: false
progress_status: substantial_progress
Any progress status defined in the site_config.yml file in the site repo can be specified.
Adding custom progress statuses¶
You can tweak the settings under progress_status > status_types in _data/site_config.yml of your site repo to edit the text labels and/or icons used to display the calculated progress level on the indicator and goal pages. The progress statuses that are available out-of-the-box are:
- target_achieved
- substantial_progress
- moderate_progress
- limited_progress
- deterioration
- not_available
It is possible to add a custom progress category by adding the value, label, image, and alt text for a new status types in _data/site_config.yml of your site repo.
status_types:
- value: custom_status
label: My custom status label
img: Link to image file for my custom status
alt: Alt text for my custom status
Then, "My custom status label" alongside the selected image can be shown on the indicator and goal pages by setting auto_progress_calculation: false and progress_status: custom_status in the indicator config file.
The label and alt text may be translation keys.
Progress calculation components output¶
Optionally, for the sake of clarity and transparency, a yaml file containing the settings and values used to calculate the progress for each series and indicator may be saved to your data repository during the data build. The output file is named indicator_calculation_components.yml.
To enable this, you must edit the "Deploy to staging" workflow in your data repository at /.github/workflows/deploy-to-staging.yml. In between the Build data and the Place public files steps in the workflow, add the following steps:
- name: Check if there are any changes to files
id: verify_diff
run: |
if [[ `git status -s` ]]; then
echo "DIFF=true" >> "$GITHUB_OUTPUT"
else
echo "DIFF=false" >> "$GITHUB_OUTPUT"
fi
- name: Commit files
if: steps.verify_diff.outputs.DIFF == 'true'
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add .
git commit -m "Add new progress measure updates"
- name: Push changes
if: steps.verify_diff.outputs.DIFF == 'true'
uses: ad-m/github-push-action@master
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: ${{ github.ref }}
If there is no Place public files step in your deploy to staging workflow, then the new steps should be added in between the Build data and the Deploy to GitHub Pages steps.