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. This has been integrated fully into Open SDG, summarised here.

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. Make sure to also setup the progress_calculation_options in each indicator's configuration (using the file or form) so that the progress measurement is as accurate as possible. You can see a full breakdown of all the settings that need to be input on the progress_calculations_options page.

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. Specific examples are described in the exceptions to Statistics Canada's progress measurement methodology.

The progress column should be added to the ignored_disaggregations in the site configuration 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.

Base direction and target settings for all SDG indicators are summarised in Statistics Canada's progress measurement methodology. It is recommended that targets and directions are taken from the standardised list of targets for each indicator as described in the UN SDG metadata and summarised in this table. Note that the direction is always required for the progress calculation. If it is not specified, it defaults to “negative”. So when there is a numerical target, as per the table, a direction should also be specified (else the default “negative” is used). Where some targets in the table have exceptions or are country-dependent, countries should customise as best relevant. If an alternative target is used, for transparency, it is recommended to explain this in your national metadata on the relevant indicator page.

Including progress methodology summary information

If you have used the automated progress measurement functionality, it is strongly recommended to provide information on your platform that details the methodology. This ensures transparency so users can read about how the progress displaying on the platform has been calculated.

We have created a summary page on readthedocs which should be linked to within the FAQ section of your platform. In your _pages folder in your site repository, add the following to your faq.md file:

Add this wording under the contents section:

- [How has progress been calculated on the website?](#how-has-progress-been-calculated-on-the-website)

Then add this wording under the questions section:

## How has progress been calculated on the website?
The Global Indicator Framework (GIF) lays the foundation for countries to measure and report their progress towards the 17 SDGs. The GIF divides the 17 SDGs across 169 targets and 234 unique indicators, all of which were agreed upon and are measured consistently by all United Nations Member States. Across the GIF, indicators may have defined quantitative targets (e.g., GIF 1.2 targets a 50% reduction of the poverty rate according to national definitions), aspirational targets (e.g., GIF target 16.5 *Substantially reduce corruption and bribery in all their forms*), or no target at all.

To complement the GIF and their own set of National indicators, Statistics Canada developed a robust and simple method of measuring progress which can be reported using visualizations that allow data users to easily see areas of progress or weakness. This method has been integrated into Open SDG for all it’s organisational users to make use of, including this platform. Even in the absence of specific quantitative targets, an estimate of progress can inform whether undesired trends are being observed by reporting progress deterioration. In essence, this measure of progress provides a simplified illustration of a country’s progress towards achieving the SDGs, assuming that the current trends are maintained.

For a full breakdown of the methodology and supplementary information, [see the Progress Methodology Summary Page here](https://open-sdg.readthedocs.io/en/latest/progress-methodology/).

There is also the option to include a methodology page on your platform and we have created a template for you to include within your _pages folder in your site repository. You can access the template here , where you can copy all the code on the page, paste it into a new .md file in your own _pages folder on your site repository, and include on your platform's menu by following these instructions. Make sure to name the file like the others in your _pages folder with the ending '.md' - e.g. 'methodology.md'. Please note that if there are any updates to the methodology information that we provide, you will have to amend this yourself within your own platform, otherwise it may not be uptodate as it is on our summary page.

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. When configured, the progress calculation components file gets automatically output to the data repository at the end of each staging deployment. As an Open SDG user, you can access this summary page, and if your data repository is public, then the public can also access. Overall, this provides a layer of transparency to users as they can validate how the progress calculation and status was determined. Internally, this output file may be useful for analyzing/generating reports on SDG progress since it contains all the progress-related inputs and outputs.

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.