From 2604e0ba012919ff1717701cd13d6a0f85641bb2 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Wed, 18 Oct 2023 08:30:00 +1300 Subject: [PATCH 01/22] docs/cost: Restructure mapping documentation, add sustainability page --- docs/cost/common.md | 19 + docs/cost/ids/core.md | 267 +++++++++++ docs/cost/ids/index.md | 10 + docs/cost/ids/sustainability.md | 97 ++++ docs/cost/index.md | 434 +----------------- docs/cost/ocds.md | 150 ++++++ mapping/reactive-process-level-contract.csv | 6 +- .../reactive-process-level-implementation.csv | 8 +- .../reactive-process-level-procurement.csv | 6 +- mapping/reactive-project-level-completion.csv | 14 +- ...oject-level-identification-preparation.csv | 14 +- 11 files changed, 575 insertions(+), 450 deletions(-) create mode 100644 docs/cost/common.md create mode 100644 docs/cost/ids/core.md create mode 100644 docs/cost/ids/index.md create mode 100644 docs/cost/ids/sustainability.md create mode 100644 docs/cost/ocds.md diff --git a/docs/cost/common.md b/docs/cost/common.md new file mode 100644 index 00000000..c50c54a4 --- /dev/null +++ b/docs/cost/common.md @@ -0,0 +1,19 @@ +# Common operations + +To avoid repetition in the mapping, we refer and link to the following common operations. + +## Add a project document + +Add a `Document` object to the `documents` array and set its fields as follows: + +* Set its `.id` incrementally +* Set its `.url` to a direct link to the document +* Set its `.title` to the title of the document + +## Add a contracting process document + +Add a `Document` object to the `contractingProcesses.summary.documents` array and set its fields as follows: + +* Set its `.id` incrementally +* Set its `.url` to a direct link to the document +* Set its `.title` to the title of the document diff --git a/docs/cost/ids/core.md b/docs/cost/ids/core.md new file mode 100644 index 00000000..0155d7b9 --- /dev/null +++ b/docs/cost/ids/core.md @@ -0,0 +1,267 @@ +# Core standard + + + +## Project level + +## Identification + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,2 +:file: ../../../build/current_lang/project-level-identification.csv +``` + +## Preparation + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,2 +:file: ../../../build/current_lang/project-level-preparation.csv +``` + +## Project completion + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,2 +:file: ../../../build/current_lang/project-level-completion.csv +``` + +## Reactive disclosures + +## Identification and preparation + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,2 +:file: ../../../build/current_lang/reactive-project-level-identification-preparation.csv +``` + +## Completion + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,2 +:file: ../../../build/current_lang/reactive-project-level-completion.csv +``` + +## Implementation progress reports + +In addition to the documents listed in the mapping table, you can use OC4IDS to publish structured data on planned and actual physical and financial progress. + +Choose from the following options, depending on the data you collect and the data needed by your use cases. + +**Actual progress over time** + +* Add a `Metric` object to the `metrics` array and: + * For financial progress, set its `id` to 'financialProgress' and set its title to 'Financial progress', or the equivalent in the language of your publication. + * For physical progress, set its `id` to 'physicalProgress' and set its title to 'Physical progress', or the equivalent in the language of your publication. +* For each progress update, add an `Observation` object to the `Metric` object's `.observations` array and: + * Set its `.id` incrementally + * Set its `.measure` to the financial progress of the project. For example, for a project that is 75% complete, set `.measure` to `75` + * Set its `.unit.name` to 'percent', set its `unit.id` to 'P1' and set its `unit.scheme` to 'UNCEFACT' + * Set its `period.startDate` and `period.endDate` to the date on which the financial progress was measured + +*Example:* + +```json +{ + "metrics": [ + { + "id": "physicalProgress", + "title": "Physical progress", + "observations": [ + { + "id": "1", + "measure": "4.04", + "unit": { + "name": "percent", + "id": "P1", + "scheme": "UNCEFACT" + }, + "period": { + "startDate": "2017-03-31T23:59:59Z", + "endDate": "2017-03-31T23:59:59Z" + } + }, + { + "id": "2", + "measure": "7.98", + "unit": { + "name": "percent", + "id": "P1", + "scheme": "UNCEFACT" + }, + "period": { + "startDate": "2017-04-30T23:59:59Z", + "endDate": "2017-04-30T23:59:59Z" + } + }, + { + "id": "3", + "measure": "8.38", + "unit": { + "name": "percent", + "id": "P1", + "scheme": "UNCEFACT" + }, + "period": { + "startDate": "2017-05-31T23:59:59Z", + "endDate": "2017-05-31T23:59:59Z" + } + } + ] + } + ] +} +``` + +**A single progress figure** + +If your implementation does not store a change history, you can publish a single `Observation` object for each `Metric` and update the `Observation` object's `.measure` each time there is a progress update. + +*Example:* + +```json +{ + "metrics": [ + { + "id": "financialProgress", + "title": "Financial progress", + "observations": [ + { + "id": "1", + "measure": "4.04", + "unit": { + "name": "percent", + "id": "P1", + "scheme": "UNCEFACT" + }, + "period": { + "startDate": "2017-03-31T23:59:59Z", + "endDate": "2017-03-31T23:59:59Z" + } + } + ] + } + ] +} +``` + +**Planned progress over time** + +You can use the `forecasts` array to publish progress forecasts for different points in time. + +* Add a `Metric` object to the `forecasts` array and: + * For financial progress, set its `id` to 'financialProgress' and set its title to 'Financial progress', or the equivalent in the language of your publication. + * For physical progress, set its `id` to 'physicalProgress' and set its title to 'Physical progress', or the equivalent in the language of your publication. +* For each forecast, add an `Observation` object to the `Metric` object's `.observations` array and: + * Set its `.id` incrementally + * Set its `.measure` to the forecast progress of the project. For example, to forecast when the project is expected to be complete, set `.measure` to `100`. + * Set its `.unit.name` to 'percent', set its `unit.id` to 'P1' and set its `unit.scheme` to 'UNCEFACT' + * Set its `period.startDate` and `period.endDate` to the date on which you expect the progress to be achieved + +*Example:* + +```json +{ + "forecasts": [ + { + "id": "physicalProgress", + "title": "Physical progress", + "observations": [ + { + "id": "1", + "measure": "4.04", + "unit": { + "name": "percent", + "id": "P1", + "scheme": "UNCEFACT" + }, + "period": { + "startDate": "2017-03-31T23:59:59Z", + "endDate": "2017-03-31T23:59:59Z" + } + }, + { + "id": "2", + "measure": "7.98", + "unit": { + "name": "percent", + "id": "P1", + "scheme": "UNCEFACT" + }, + "period": { + "startDate": "2017-04-30T23:59:59Z", + "endDate": "2017-04-30T23:59:59Z" + } + }, + { + "id": "3", + "measure": "8.38", + "unit": { + "name": "percent", + "id": "P1", + "scheme": "UNCEFACT" + }, + "period": { + "startDate": "2017-05-31T23:59:59Z", + "endDate": "2017-05-31T23:59:59Z" + } + } + ] + } + ] +} +``` + +## Process level + +The mappings in this section relate to the `contractingProcesses` section of the OC4IDS schema, unless otherwise specified. + +## Procurement + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,2 +:file: ../../../build/current_lang/process-level-procurement.csv +``` + +## Implementation + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,2 +:file: ../../../build/current_lang/process-level-implementation.csv +``` + +## Reactive disclosures + +## Procurement + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,2 +:file: ../../../build/current_lang/reactive-process-level-procurement.csv +``` + +## Contract + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,2 +:file: ../../../build/current_lang/reactive-process-level-contract.csv +``` + +## Implementation + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,2 +:file: ../../../build/current_lang/reactive-process-level-implementation.csv +``` diff --git a/docs/cost/ids/index.md b/docs/cost/ids/index.md new file mode 100644 index 00000000..cafdec13 --- /dev/null +++ b/docs/cost/ids/index.md @@ -0,0 +1,10 @@ +# CoST IDS to OC4IDS Mapping + +```{toctree} +:maxdepth: 1 +:hidden: + +core +sustainability + +``` diff --git a/docs/cost/ids/sustainability.md b/docs/cost/ids/sustainability.md new file mode 100644 index 00000000..9aa1d658 --- /dev/null +++ b/docs/cost/ids/sustainability.md @@ -0,0 +1,97 @@ +# Sustainability modules + + + +This page documents a mapping from the elements in the CoST IDS sustainability modules to OC4IDS fields and codes. + +## Economic and fiscal + +`````{grid} 2 + +````{grid-item-card} Procurement strategy +:columns: 4 +CoST IDS element +^^^ +Disclose the procurement strategy risk assessment. This tends to be part of the decision-making strategy and likely includes discussions regarding capabilities, the delivery model and the rationale for the risk allocation decision. (E.g. [Document]). + +```` + + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +**Project Level:** Publish in documents, with `.documentType` set to 'procurementStrategyRiskAssessment' and include a short description and/or a link to a document providing details. + +```json +{ + "documents": [ + { + "id": "1", + "documentType": "procurementStrategyRiskAssessment", + "url": "http://example.com/documents/procurementStrategyRiskAssessment.pdf" + } + ] +} +``` + +```` + +````` + +`````{grid} 2 + +````{grid-item-card} Life cycle cost +:columns: 4 +CoST IDS element +^^^ +Disclose the life cycle cost of the project, which is the cost of an asset throughout its life cycle while fulfilling the performance requirements (ISO 15686-5:2017) (E.g. [value]). This tends to be part of the appraisal documents. In this case, manual work will be required to extract the life cycle cost. + +```` + + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +**Project Level:** Add a `CostMeasurement` object to the `costMeasurements` array. Set `.date` to the date the analysis was prepared. If the cost measurement was performed as part of the project appraisal, set `.stage` to ‘preConstruction’. Otherwise, choose an appropriate code from the stage codelist. Map to the cost measurement’s `.lifeCycleCost.cost`. + +```json +{ + "costMeasurements": [ + { + "id": "1", + "stage": "preConstruction", + "date": "2014-05-01T00:00:00Z", + "lifeCycleCost": { + "cost": { + "amount": 10000000, + "currency": "usd" + } + } + } + ] +} + +``` + +```` + +````` + +## Environmental and climate + +## Climate finance + +## Social + +## Institutional diff --git a/docs/cost/index.md b/docs/cost/index.md index d59fa857..1381cf72 100644 --- a/docs/cost/index.md +++ b/docs/cost/index.md @@ -34,8 +34,8 @@ The [Open Contracting for Infrastructure Data Standard (OC4IDS)](../projects/ind The following tables document two mappings: -* The [**CoST IDS to OC4IDS**](#cost-ids-to-oc4ids-mapping) mapping describes how to represent each element of the CoST IDS as structured data using OC4IDS. Use this mapping if you already collect data according to the CoST IDS and you want to publish your data using OC4IDS, or if you want to make sure that your OC4IDS publication conforms to the CoST IDS. -* The [**OCDS to OC4IDS**](#ocds-to-oc4ids-mapping) mapping describes how to use OCDS data to populate the sections of an OC4IDS file which relate to the CoST IDS. Use this mapping if you have access to OCDS data on infrastructure contracting processes and you want to create a summary by project in OC4IDS format, or if you want to check which CoST IDS elements your OCDS data covers. +* The [**CoST IDS to OC4IDS**](ids/index.md) mapping describes how to represent each element of the CoST IDS as structured data using OC4IDS. Use this mapping if you already collect data according to the CoST IDS and you want to publish your data using OC4IDS, or if you want to make sure that your OC4IDS publication conforms to the CoST IDS. +* The [**OCDS to OC4IDS**](ocds.md) mapping describes how to use OCDS data to populate the sections of an OC4IDS file which relate to the CoST IDS. Use this mapping if you have access to OCDS data on infrastructure contracting processes and you want to create a summary by project in OC4IDS format, or if you want to check which CoST IDS elements your OCDS data covers. The organization of the mapping tables reflects the structure of the CoST IDS, which is described in [Getting Started](../projects/index). @@ -43,429 +43,11 @@ The mapping tables use `/` notation to reference fields in OCDS data, e.g. `/ten The CoST IDS also sets out a number of disclosure requirements under the heading of 'information for disclosure upon request', also known as 'reactive disclosure'. You can disclose these elements proactively using OC4IDS. Separate tables are provided for reactive disclosures in each mapping. -## Common operations +```{toctree} +:maxdepth: 1 +:hidden: -To avoid repetition in the mapping, we refer and link to the following common operations. - -### Add a project document - -Add a `Document` object to the `documents` array and set its fields as follows: - -* Set its `.id` incrementally -* Set its `.url` to a direct link to the document -* Set its `.title` to the title of the document - -### Add a contracting process document - -Add a `Document` object to the `contractingProcesses.summary.documents` array and set its fields as follows: - -* Set its `.id` incrementally -* Set its `.url` to a direct link to the document -* Set its `.title` to the title of the document - -## CoST IDS to OC4IDS Mapping - -### Project level - -#### Identification - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,2 -:file: ../../build/current_lang/project-level-identification.csv -``` - -#### Preparation - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,2 -:file: ../../build/current_lang/project-level-preparation.csv -``` - -#### Project completion - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,2 -:file: ../../build/current_lang/project-level-completion.csv -``` - -#### Reactive disclosures - -##### Identification and preparation - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,2 -:file: ../../build/current_lang/reactive-project-level-identification-preparation.csv -``` - -##### Completion - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,2 -:file: ../../build/current_lang/reactive-project-level-completion.csv -``` - -###### Implementation progress reports - -In addition to the documents listed in the mapping table, you can use OC4IDS to publish structured data on planned and actual physical and financial progress. - -Choose from the following options, depending on the data you collect and the data needed by your use cases. - -**Actual progress over time** - -* Add a `Metric` object to the `metrics` array and: - * For financial progress, set its `id` to 'financialProgress' and set its title to 'Financial progress', or the equivalent in the language of your publication. - * For physical progress, set its `id` to 'physicalProgress' and set its title to 'Physical progress', or the equivalent in the language of your publication. -* For each progress update, add an `Observation` object to the `Metric` object's `.observations` array and: - * Set its `.id` incrementally - * Set its `.measure` to the financial progress of the project. For example, for a project that is 75% complete, set `.measure` to `75` - * Set its `.unit.name` to 'percent', set its `unit.id` to 'P1' and set its `unit.scheme` to 'UNCEFACT' - * Set its `period.startDate` and `period.endDate` to the date on which the financial progress was measured - -*Example:* - -```json -{ - "metrics": [ - { - "id": "physicalProgress", - "title": "Physical progress", - "observations": [ - { - "id": "1", - "measure": "4.04", - "unit": { - "name": "percent", - "id": "P1", - "scheme": "UNCEFACT" - }, - "period": { - "startDate": "2017-03-31T23:59:59Z", - "endDate": "2017-03-31T23:59:59Z" - } - }, - { - "id": "2", - "measure": "7.98", - "unit": { - "name": "percent", - "id": "P1", - "scheme": "UNCEFACT" - }, - "period": { - "startDate": "2017-04-30T23:59:59Z", - "endDate": "2017-04-30T23:59:59Z" - } - }, - { - "id": "3", - "measure": "8.38", - "unit": { - "name": "percent", - "id": "P1", - "scheme": "UNCEFACT" - }, - "period": { - "startDate": "2017-05-31T23:59:59Z", - "endDate": "2017-05-31T23:59:59Z" - } - } - ] - } - ] -} -``` - -**A single progress figure** - -If your implementation does not store a change history, you can publish a single `Observation` object for each `Metric` and update the `Observation` object's `.measure` each time there is a progress update. - -*Example:* - -```json -{ - "metrics": [ - { - "id": "financialProgress", - "title": "Financial progress", - "observations": [ - { - "id": "1", - "measure": "4.04", - "unit": { - "name": "percent", - "id": "P1", - "scheme": "UNCEFACT" - }, - "period": { - "startDate": "2017-03-31T23:59:59Z", - "endDate": "2017-03-31T23:59:59Z" - } - } - ] - } - ] -} -``` - -**Planned progress over time** - -You can use the `forecasts` array to publish progress forecasts for different points in time. - -* Add a `Metric` object to the `forecasts` array and: - * For financial progress, set its `id` to 'financialProgress' and set its title to 'Financial progress', or the equivalent in the language of your publication. - * For physical progress, set its `id` to 'physicalProgress' and set its title to 'Physical progress', or the equivalent in the language of your publication. -* For each forecast, add an `Observation` object to the `Metric` object's `.observations` array and: - * Set its `.id` incrementally - * Set its `.measure` to the forecast progress of the project. For example, to forecast when the project is expected to be complete, set `.measure` to `100`. - * Set its `.unit.name` to 'percent', set its `unit.id` to 'P1' and set its `unit.scheme` to 'UNCEFACT' - * Set its `period.startDate` and `period.endDate` to the date on which you expect the progress to be achieved - -*Example:* - -```json -{ - "forecasts": [ - { - "id": "physicalProgress", - "title": "Physical progress", - "observations": [ - { - "id": "1", - "measure": "4.04", - "unit": { - "name": "percent", - "id": "P1", - "scheme": "UNCEFACT" - }, - "period": { - "startDate": "2017-03-31T23:59:59Z", - "endDate": "2017-03-31T23:59:59Z" - } - }, - { - "id": "2", - "measure": "7.98", - "unit": { - "name": "percent", - "id": "P1", - "scheme": "UNCEFACT" - }, - "period": { - "startDate": "2017-04-30T23:59:59Z", - "endDate": "2017-04-30T23:59:59Z" - } - }, - { - "id": "3", - "measure": "8.38", - "unit": { - "name": "percent", - "id": "P1", - "scheme": "UNCEFACT" - }, - "period": { - "startDate": "2017-05-31T23:59:59Z", - "endDate": "2017-05-31T23:59:59Z" - } - } - ] - } - ] -} -``` - -### Process level - -The mappings in this section relate to the `contractingProcesses` section of the OC4IDS schema, unless otherwise specified. - -#### Procurement - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,2 -:file: ../../build/current_lang/process-level-procurement.csv -``` - -#### Implementation - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,2 -:file: ../../build/current_lang/process-level-implementation.csv -``` - -#### Reactive disclosures - -##### Procurement - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,2 -:file: ../../build/current_lang/reactive-process-level-procurement.csv -``` - -##### Contract - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,2 -:file: ../../build/current_lang/reactive-process-level-contract.csv -``` - -##### Implementation - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,2 -:file: ../../build/current_lang/reactive-process-level-implementation.csv -``` - -## OCDS to OC4IDS Mapping - -### Guidance - -#### Command-line tool and reference implementation - -OC4IDS Kit's [convert-from-ocds](https://oc4idskit.readthedocs.io/en/latest/cli.html#convert-from-ocds) command is a command-line tool and reference implementation for converting OCDS data to OC4IDS format. - -`convert-from-ocds` covers most mappings in the following categories: - -* project-level identification -* project-level preparation -* process-level procurement - -However, `convert-from-ocds` does not cover all mappings, nor does it perform currency conversions. Mappings that `convert-from-ocds` does not cover are shown in *italics*. - -#### Mapping codelists - -Mappings that depend on the specific classification or codelist used in the OCDS data are not documented in detail, as they can differ by publisher. For example, mapping to the OC4IDS projectSector codelist. - -#### Alternative mappings - -Some mappings offer alternatives in case the primary mapping isn't available. For example, for OCDS data in which `planning.project.title` isn't available, you can set the project `title` based on the `tender.title`. - -In order to provide analysts with additional context, some alternative mappings copy additional fields which don't appear in OC4IDS schema. You ought to remove these fields if you plan to publish your OC4IDS data. - -#### OCDS extensions - -Some mappings use fields from [OCDS extensions](https://standard.open-contracting.org/latest/en/guidance/map/extensions/#extensions). In these cases, the names of extensions are noted in parentheses; where possible, alternative mappings are provided that use only fields from the core OCDS schema. - -#### Handling conflicts and duplicates - -Implementations of the mapping ought to give consideration to: - -* OCDS data that contains fields that differ between contracting processes but map to a single field in OC4IDS: for example, where `planning.project.title` differs for two contracting processes that relate to the same project, but OC4IDS has a single `title` field at the project level. -* OCDS data that contains multiple `Organization` objects with the same `.role` that map to a single field in OC4IDS: for example, where a contracting process has two `Organization`s with the 'procuringEntity' role, but OC4IDS has a single `.summary.tender.procuringEntity` field at the contract level. -* Checking for duplicates when copying objects from OCDS. For example, checking whether an `Organization` object has already been copied before copying it again. -* Handling identifier conflicts when copying objects from OCDS. For example, where two contracting processes both contain a ``Document`` with the same `.id`. - -Read the `convert-from-ocds` [transformation notes](https://oc4idskit.readthedocs.io/en/latest/cli.html#transformation-notes) to learn about how OC4IDS Kit handles the above scenarios. - -#### Handling multiple currencies - -Some mappings involve converting values in OCDS, which can be in different currencies, to a base currency. - -Implementations which include multiple currencies ought to give consideration to [value dating](https://en.wikipedia.org/wiki/Value_date). One approach is to use the compiled release's `date`. - -### Mapping - -#### Project level - -##### Identification - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,3 -:file: ../../build/current_lang/project-level-identification.csv -``` - -##### Preparation - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,3 -:file: ../../build/current_lang/project-level-preparation.csv -``` - -##### Project completion - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,3 -:file: ../../build/current_lang/project-level-completion.csv -``` - -##### Reactive disclosures - -###### Identification and preparation - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,3 -:file: ../../build/current_lang/reactive-project-level-identification-preparation.csv -``` - -###### Completion - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,3 -:file: ../../build/current_lang/reactive-project-level-completion.csv -``` - -#### Process level - -The mappings in this section relate to the `contractingProcesses` section of the OC4IDS schema, unless otherwise specified. - -##### Procurement - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,3 -:file: ../../build/current_lang/process-level-procurement.csv -``` - -##### Implementation - -Disclosures in the implementation section of the CoST IDS relate to changes to a contract's value, duration or scope that were made after the contract was awarded. - -If OCDS data is available, these changes can be determined by comparing the most recent OCDS release to a compiled release created from all prior releases (to better understand these concepts, refer to the [OCDS documentation](https://standard.open-contracting.org/1.1/en/getting_started/releases_and_records/)). The specific fields to monitor for changes between releases are described in the mapping table below. - -In some cases, OCDS data might include an explanation of changes in the relevant `amendments` block. In other cases, the reason might need to be manually entered. - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,3 -:file: ../../build/current_lang/process-level-implementation.csv -``` - -##### Reactive disclosures - -###### Procurement - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,3 -:file: ../../build/current_lang/reactive-process-level-procurement.csv -``` - -###### Contract - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,3 -:file: ../../build/current_lang/reactive-process-level-contract.csv -``` - -###### Implementation - -```{csv-table-no-translate} -:header-rows: 1 -:included_cols: 0,1,3 -:file: ../../build/current_lang/reactive-process-level-implementation.csv +common +ids/index.md +ocds ``` diff --git a/docs/cost/ocds.md b/docs/cost/ocds.md new file mode 100644 index 00000000..6b92fc1c --- /dev/null +++ b/docs/cost/ocds.md @@ -0,0 +1,150 @@ +# OCDS to OC4IDS Mapping + + + +## Guidance + +## Command-line tool and reference implementation + +OC4IDS Kit's [convert-from-ocds](https://oc4idskit.readthedocs.io/en/latest/cli.html#convert-from-ocds) command is a command-line tool and reference implementation for converting OCDS data to OC4IDS format. + +`convert-from-ocds` covers most mappings in the following categories: + +* project-level identification +* project-level preparation +* process-level procurement + +However, `convert-from-ocds` does not cover all mappings, nor does it perform currency conversions. Mappings that `convert-from-ocds` does not cover are shown in *italics*. + +## Mapping codelists + +Mappings that depend on the specific classification or codelist used in the OCDS data are not documented in detail, as they can differ by publisher. For example, mapping to the OC4IDS projectSector codelist. + +## Alternative mappings + +Some mappings offer alternatives in case the primary mapping isn't available. For example, for OCDS data in which `planning.project.title` isn't available, you can set the project `title` based on the `tender.title`. + +In order to provide analysts with additional context, some alternative mappings copy additional fields which don't appear in OC4IDS schema. You ought to remove these fields if you plan to publish your OC4IDS data. + +## OCDS extensions + +Some mappings use fields from [OCDS extensions](https://standard.open-contracting.org/latest/en/guidance/map/extensions/#extensions). In these cases, the names of extensions are noted in parentheses; where possible, alternative mappings are provided that use only fields from the core OCDS schema. + +## Handling conflicts and duplicates + +Implementations of the mapping ought to give consideration to: + +* OCDS data that contains fields that differ between contracting processes but map to a single field in OC4IDS: for example, where `planning.project.title` differs for two contracting processes that relate to the same project, but OC4IDS has a single `title` field at the project level. +* OCDS data that contains multiple `Organization` objects with the same `.role` that map to a single field in OC4IDS: for example, where a contracting process has two `Organization`s with the 'procuringEntity' role, but OC4IDS has a single `.summary.tender.procuringEntity` field at the contract level. +* Checking for duplicates when copying objects from OCDS. For example, checking whether an `Organization` object has already been copied before copying it again. +* Handling identifier conflicts when copying objects from OCDS. For example, where two contracting processes both contain a ``Document`` with the same `.id`. + +Read the `convert-from-ocds` [transformation notes](https://oc4idskit.readthedocs.io/en/latest/cli.html#transformation-notes) to learn about how OC4IDS Kit handles the above scenarios. + +## Handling multiple currencies + +Some mappings involve converting values in OCDS, which can be in different currencies, to a base currency. + +Implementations which include multiple currencies ought to give consideration to [value dating](https://en.wikipedia.org/wiki/Value_date). One approach is to use the compiled release's `date`. + +## Mapping + +## Project level + +## Identification + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,3 +:file: ../../build/current_lang/project-level-identification.csv +``` + +## Preparation + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,3 +:file: ../../build/current_lang/project-level-preparation.csv +``` + +## Project completion + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,3 +:file: ../../build/current_lang/project-level-completion.csv +``` + +## Reactive disclosures + +## Identification and preparation + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,3 +:file: ../../build/current_lang/reactive-project-level-identification-preparation.csv +``` + +## Completion + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,3 +:file: ../../build/current_lang/reactive-project-level-completion.csv +``` + +## Process level + +The mappings in this section relate to the `contractingProcesses` section of the OC4IDS schema, unless otherwise specified. + +## Procurement + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,3 +:file: ../../build/current_lang/process-level-procurement.csv +``` + +## Implementation + +Disclosures in the implementation section of the CoST IDS relate to changes to a contract's value, duration or scope that were made after the contract was awarded. + +If OCDS data is available, these changes can be determined by comparing the most recent OCDS release to a compiled release created from all prior releases (to better understand these concepts, refer to the [OCDS documentation](https://standard.open-contracting.org/1.1/en/getting_started/releases_and_records/)). The specific fields to monitor for changes between releases are described in the mapping table below. + +In some cases, OCDS data might include an explanation of changes in the relevant `amendments` block. In other cases, the reason might need to be manually entered. + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,3 +:file: ../../build/current_lang/process-level-implementation.csv +``` + +## Reactive disclosures + +## Procurement + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,3 +:file: ../../build/current_lang/reactive-process-level-procurement.csv +``` + +## Contract + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,3 +:file: ../../build/current_lang/reactive-process-level-contract.csv +``` + +## Implementation + +```{csv-table-no-translate} +:header-rows: 1 +:included_cols: 0,1,3 +:file: ../../build/current_lang/reactive-process-level-implementation.csv +``` diff --git a/mapping/reactive-process-level-contract.csv b/mapping/reactive-process-level-contract.csv index 530f0f84..5de37088 100644 --- a/mapping/reactive-process-level-contract.csv +++ b/mapping/reactive-process-level-contract.csv @@ -1,8 +1,8 @@ CoST IDS element,Description,Mapping to OC4IDS,Mapping from OCDS -Contract agreement and conditions,"A copy of the signed contract. Consider providing both machine-readable (e.g. original PDF, Word or Open Document format files), and a separate document entry for scanned-signed pages where this is required.",[Add a contracting process document](#add-a-contracting-process-document) and set `.documentType` to 'contractSigned'.,*Check the `/contracts/documents` array for `Document` objects with `.documentType` set to ‘contractSigned’ and copy each object to the `.summary.documents` array.* +Contract agreement and conditions,"A copy of the signed contract. Consider providing both machine-readable (e.g. original PDF, Word or Open Document format files), and a separate document entry for scanned-signed pages where this is required.",[Add a contracting process document](../common.md#add-a-contracting-process-document) and set `.documentType` to 'contractSigned'.,*Check the `/contracts/documents` array for `Document` objects with `.documentType` set to ‘contractSigned’ and copy each object to the `.summary.documents` array.* Registration and ownership of firms,A document issued by the relevant government registry as confirmation of the due incorporation and valid existence of the organization.,"**Document:** -[Add a contracting process document](#add-a-contracting-process-document) and set `.documentType` to 'incorporationCertificate'. +[Add a contracting process document](../common.md#add-a-contracting-process-document) and set `.documentType` to 'incorporationCertificate'. **Data:** @@ -14,4 +14,4 @@ Add an `Organization` object to the `parties` array and: * Set its `.id`","*Check the `/contracts/documents` array for `Document` objects with `/type` set to ‘incorporationCertificate’ and copy each object to the `.summary.documents` array.* Check the `/parties` array for `Organization` objects with 'supplier' in `/roles`. For each such object, copy it to the `parties` array in OC4IDS, add an `OrganizationReference` object to `.summary.suppliers` and set the `OrganizationReference`'s `.name` and `.id` to the `Organization`'s `.name` and `.id`." -Specifications and drawings,Detailed technical information about goods or services to be provided.,[Add a contracting process document](#add-a-contracting-process-document) and set `.documentType` to 'technicalSpecifications'.,*Check the `/contracts/documents` array for `Document` objects with `/type` set to ‘technicalSpecifications’ and copy each object to the `.summary.documents` array.* +Specifications and drawings,Detailed technical information about goods or services to be provided.,[Add a contracting process document](../common.md#add-a-contracting-process-document) and set `.documentType` to 'technicalSpecifications'.,*Check the `/contracts/documents` array for `Document` objects with `/type` set to ‘technicalSpecifications’ and copy each object to the `.summary.documents` array.* diff --git a/mapping/reactive-process-level-implementation.csv b/mapping/reactive-process-level-implementation.csv index a25e45f8..956db35e 100644 --- a/mapping/reactive-process-level-implementation.csv +++ b/mapping/reactive-process-level-implementation.csv @@ -10,15 +10,15 @@ Set `.type` based on the type of change and provide the relevant before/after va * `/contracts/implementation/milestones` *Copy `/contracts/amendments/description` to `summary.modifications.description` and `/date` to `.summary.modifications.date`.*" -List of escalation approvals,Documentation of one or more approved escalations of the contract price during the project life-cycle.,[Add a contracting process document](#add-a-contracting-process-document) and set `.documentType` to 'escalationApprovals'.,*Check the `/contracts/documents` and `/contracts/implementation/documents` arrays for `Document` objects with `.documentType` set to ‘escalationApprovals’ and copy each object to the `.summary.documents` array.* -Quality assurance reports,"Documentation identifying deficiencies in designs, specifications, standards, methods, procedures and practices, and identifying best practices.",[Add a contracting process document](#add-a-contracting-process-document) and set `.documentType` to 'qualityAssuranceReport'.,*Check the `/contracts/documents` and `/contracts/implementation/documents` arrays for `Document` objects with `.documentType` set to ‘qualityAssuranceReport’ and copy each object to the `.summary.documents` array.* +List of escalation approvals,Documentation of one or more approved escalations of the contract price during the project life-cycle.,[Add a contracting process document](../common.md#add-a-contracting-process-document) and set `.documentType` to 'escalationApprovals'.,*Check the `/contracts/documents` and `/contracts/implementation/documents` arrays for `Document` objects with `.documentType` set to ‘escalationApprovals’ and copy each object to the `.summary.documents` array.* +Quality assurance reports,"Documentation identifying deficiencies in designs, specifications, standards, methods, procedures and practices, and identifying best practices.",[Add a contracting process document](../common.md#add-a-contracting-process-document) and set `.documentType` to 'qualityAssuranceReport'.,*Check the `/contracts/documents` and `/contracts/implementation/documents` arrays for `Document` objects with `.documentType` set to ‘qualityAssuranceReport’ and copy each object to the `.summary.documents` array.* Disbursement records or payment certificates,A list of the spending transactions made against this contract and/or a document certifying that the work specified on a supplier's estimate or invoice is complete and that payment to the supplier is approved,"**Data:** For each disbursement, add a `Transaction` to `.summary.transactions` and set its fields according to the schema definitions. **Documents:** -[Add a contracting process document](#add-a-contracting-process-document) and set `.documentType` to 'paymentCertificate'.","*Copy the contents of the `/contracts/implementation/transactions` array to `.summary.transactions`.* +[Add a contracting process document](../common.md#add-a-contracting-process-document) and set `.documentType` to 'paymentCertificate'.","*Copy the contents of the `/contracts/implementation/transactions` array to `.summary.transactions`.* *Check the `/contracts/implementation/documents` array for `Document` objects with `.documentType` set to ‘paymentCertificate’ and copy each object to the `.summary.documents` array.*" -Contract amendments,A legal document that changes or adds to the terms of an existing contract.,[Add a contracting process document](#add-a-contracting-process-document) and set `.documentType` to 'contractAmendment'.,*Check the `/contracts/documents` array for `Document` objects with `.documentType` set to ‘contractAmendment’ and copy each object to the `.summary.documents` array.* +Contract amendments,A legal document that changes or adds to the terms of an existing contract.,[Add a contracting process document](../common.md#add-a-contracting-process-document) and set `.documentType` to 'contractAmendment'.,*Check the `/contracts/documents` array for `Document` objects with `.documentType` set to ‘contractAmendment’ and copy each object to the `.summary.documents` array.* diff --git a/mapping/reactive-process-level-procurement.csv b/mapping/reactive-process-level-procurement.csv index affd540a..384a63d9 100644 --- a/mapping/reactive-process-level-procurement.csv +++ b/mapping/reactive-process-level-procurement.csv @@ -11,6 +11,6 @@ Add a `Person` object to the organization's `.people` array and: * Set its `.name` to the contract official's name * Set its `.jobTitle` to the contract official's job title","*Check the `/parties` array for `Organization` objects with 'administrativeEntity' in `/roles`. Copy each object to the `parties` array in OC4IDS. If there is more than one procuring entity, do not set `.summary.tender.procuringEntity.name` and `.summary.tender.procuringEntity.id`; otherwise, set them to the procuring entity's `.name` and `.id`.*" Procurement method,"Specify tendering method using the method codelist (open, selective, limited, direct).",Set `.summary.tender.procurementMethod` to a value from the Method codelist.,Set `.summary.tender.procurementMethod` to the value of `/tender/procurementMethod`. -Tender documents,"Documentation for potential suppliers, describing the goals of the contract (e.g. goods and services to be procured), and the bidding process.",[Add a contracting process document](#add-a-contracting-process-document) and set `.documentType` to 'biddingDocuments'.,*Check the `/tender/documents` array for `Document` objects with `.documentType` set to ‘biddingDocuments’ and copy each object to the `.summary.documents` array.* -Tender evaluation results,"Documentation on the evaluation of the bids and the application of the evaluation criteria, including the justification for the award.",[Add a contracting process document](#add-a-contracting-process-document) and set `.documentType` to 'evaluationReports'.,*Check the `/tender/documents` array for `Document` objects with `.documentType` set to ‘evaluationReports’ and copy each object to the `.summary.documents` array.* -Project design report,"A record of the justification for the design approach adopted in the project, typically issued before the works start, by the consultant or firm that will supervise the works.",[Add a contracting process document](#add-a-contracting-process-document) and set `.documentType` to 'projectDesignReport'.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘projectDesignReport’ and copy each object to the `.summary.documents` array.* +Tender documents,"Documentation for potential suppliers, describing the goals of the contract (e.g. goods and services to be procured), and the bidding process.",[Add a contracting process document](../common.md#add-a-contracting-process-document) and set `.documentType` to 'biddingDocuments'.,*Check the `/tender/documents` array for `Document` objects with `.documentType` set to ‘biddingDocuments’ and copy each object to the `.summary.documents` array.* +Tender evaluation results,"Documentation on the evaluation of the bids and the application of the evaluation criteria, including the justification for the award.",[Add a contracting process document](../common.md#add-a-contracting-process-document) and set `.documentType` to 'evaluationReports'.,*Check the `/tender/documents` array for `Document` objects with `.documentType` set to ‘evaluationReports’ and copy each object to the `.summary.documents` array.* +Project design report,"A record of the justification for the design approach adopted in the project, typically issued before the works start, by the consultant or firm that will supervise the works.",[Add a contracting process document](../common.md#add-a-contracting-process-document) and set `.documentType` to 'projectDesignReport'.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘projectDesignReport’ and copy each object to the `.summary.documents` array.* diff --git a/mapping/reactive-project-level-completion.csv b/mapping/reactive-project-level-completion.csv index 115124bb..ddec8571 100644 --- a/mapping/reactive-project-level-completion.csv +++ b/mapping/reactive-project-level-completion.csv @@ -1,17 +1,17 @@ CoST IDS element,Description,Mapping to OC4IDS,Mapping from OCDS Implementation progress reports,Planned and actual physical and financial progress over time.,"**Documents** -Physical progress reports: [Add a project document](#add-a-project-document) and set `.documentType` to 'physicalProgressReport'. +Physical progress reports: [Add a project document](../common.md#add-a-project-document) and set `.documentType` to 'physicalProgressReport'. -Financial progress reports: [Add a project document](#add-a-project-document) and set `.documentType` to 'financialProgressReport'. +Financial progress reports: [Add a project document](../common.md#add-a-project-document) and set `.documentType` to 'financialProgressReport'. **Data** See [implementation progress reports](#implementation-progress-reports)","*Optionally, check the `/contracts/implementation` array for `Document` objects with `.documentType` set to ‘physicalProgressReport’ or ‘financialProgressReport and copy each object to the `.summary.documents` array.* *Optionally, copy the contents of the `/planning/forecasts` array to `forecasts` and copy the contents of the `/contracts/implementation/metrics` array to `metrics`.*" -Budget amendment decision,Document accrediting the approval of budget expansion or extension for this project.,[Add a project document](#add-a-project-document) and set `.documentType` to 'budgetAmendmentApproval'.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘budgetAmendmentApproval’ and copy each object to the `documents` array.* -Project completion report,A completion certificate issued by a relevant authority providing evidence that works were completed to a certain level of quality. Completion certificates might only be relevant for particular kinds of contracting processes or projects.,[Add a project document](#add-a-project-document) and set `.documentType` to 'projectCompletionReport'.,*Check the `/contracts/implementation` array for `Document` objects with `.documentType` set to ‘projectCompletionReport’ and copy each object to the `documents` array.* -Project evaluation report,"Generally published at the conclusion of a project, providing a technical and financial summary of delivery",[Add a project document](#add-a-project-document) and set `.documentType` to 'projectEvaluation'.,*Check the `/contracts/implementation` array for `Document` objects with `.documentType` set to ‘projectEvaluation’ and copy each object to the `documents` array.* -Technical audit reports,Documentation of checks that construction work has been undertaken as specified.,[Add a project document](#add-a-project-document) and set `.documentType` to 'technicalAuditReport'.,*Check the `/contracts/implementation` array for `Document` objects with `.documentType` set to ‘technicalAuditReport’ and copy each object to the `documents` array.* -Financial audit reports,Documentation of checks that a project's financial statements are correct and complete.,[Add a project document](#add-a-project-document) and set `.documentType` to 'financialAuditReport'.,*Check the `/contracts/implementation` array for `Document` objects with `.documentType` set to ‘financialAuditReport’ and copy each object to the `documents` array.* +Budget amendment decision,Document accrediting the approval of budget expansion or extension for this project.,[Add a project document](../common.md#add-a-project-document) and set `.documentType` to 'budgetAmendmentApproval'.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘budgetAmendmentApproval’ and copy each object to the `documents` array.* +Project completion report,A completion certificate issued by a relevant authority providing evidence that works were completed to a certain level of quality. Completion certificates might only be relevant for particular kinds of contracting processes or projects.,[Add a project document](../common.md#add-a-project-document) and set `.documentType` to 'projectCompletionReport'.,*Check the `/contracts/implementation` array for `Document` objects with `.documentType` set to ‘projectCompletionReport’ and copy each object to the `documents` array.* +Project evaluation report,"Generally published at the conclusion of a project, providing a technical and financial summary of delivery",[Add a project document](../common.md#add-a-project-document) and set `.documentType` to 'projectEvaluation'.,*Check the `/contracts/implementation` array for `Document` objects with `.documentType` set to ‘projectEvaluation’ and copy each object to the `documents` array.* +Technical audit reports,Documentation of checks that construction work has been undertaken as specified.,[Add a project document](../common.md#add-a-project-document) and set `.documentType` to 'technicalAuditReport'.,*Check the `/contracts/implementation` array for `Document` objects with `.documentType` set to ‘technicalAuditReport’ and copy each object to the `documents` array.* +Financial audit reports,Documentation of checks that a project's financial statements are correct and complete.,[Add a project document](../common.md#add-a-project-document) and set `.documentType` to 'financialAuditReport'.,*Check the `/contracts/implementation` array for `Document` objects with `.documentType` set to ‘financialAuditReport’ and copy each object to the `documents` array.* diff --git a/mapping/reactive-project-level-identification-preparation.csv b/mapping/reactive-project-level-identification-preparation.csv index 26c47a7f..db7fc911 100644 --- a/mapping/reactive-project-level-identification-preparation.csv +++ b/mapping/reactive-project-level-identification-preparation.csv @@ -5,17 +5,17 @@ Multi-year programme & Budget,A detailed breakdown of the budget by period and/o * Set its `.amount.amount` to the amount of the budget allocated to the year and set `.amount.currency` to the currency of the budget * Set its `.period.startDate` to the first day of the year, e.g. ‘2020-01-01T00:00:00Z’ * Set its `.period.endDate` to the last day of the year, e.g ‘2020-12-31T23:59:59Z",*Copy the contents of `/planning/budget/budgetBreakdown` in each contracting process to `budget.BudgetBreakdown`.* -Project brief or Feasibility study,"Documentation of feasibility studies carried out for this contracting process or project, providing information on net benefits or costs of the proposed goods, works or services.",[Add a project document](#add-a-project-document) and set `.documentType` to 'feasibilityStudy'.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘feasibilityStudy’ and copy each object to the `documents` array.* +Project brief or Feasibility study,"Documentation of feasibility studies carried out for this contracting process or project, providing information on net benefits or costs of the proposed goods, works or services.",[Add a project document](../common.md#add-a-project-document) and set `.documentType` to 'feasibilityStudy'.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘feasibilityStudy’ and copy each object to the `documents` array.* Environmental and social impact assessment,"**Environmental impact assessment** Documentation of assessments of the environmental impacts (e.g. impacts on flora, fauna & woodlands, areas of natural beauty, carbon emissions etc.) and mitigation measures (e.g. pollution control, low carbon solutions, sustainable timber etc.) for this contracting process or project. **Social impact assessment** -Documentation of assessments of the intended and unintended social consequences of this project, and documentation of mitigation measures for those social consequences. Social impacts are changes that affect people, directly or indirectly (e.g. changes to people’s way of life, culture, community, health and well-being etc.).","Environmental impact assessment: [Add a project document](#add-a-project-document) and set `.documentType` to ‘environmentalImpact’. +Documentation of assessments of the intended and unintended social consequences of this project, and documentation of mitigation measures for those social consequences. Social impacts are changes that affect people, directly or indirectly (e.g. changes to people’s way of life, culture, community, health and well-being etc.).","Environmental impact assessment: [Add a project document](../common.md#add-a-project-document) and set `.documentType` to ‘environmentalImpact’. -Social impact assessment: [Add a project document](#add-a-project-document) and set `.documentType` to ‘environmentalImpact’ or ‘socialImpact’. +Social impact assessment: [Add a project document](../common.md#add-a-project-document) and set `.documentType` to ‘environmentalImpact’ or ‘socialImpact’. If a single document covers both the environmental and social impact assessment, add two documents to `documents` and set the first document’s `.documentType` to ‘environmentalImpact’ and the second document’s `.documentType` to ‘socialImpact’.",*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘environmentalImpact’ or ‘socialImpact’ and copy each object to the `documents` array.* -Resettlement and compensation plan,"Documentation of the procedures and actions to mitigate adverse effects, compensate losses, and provide development benefits to people and communities affected by the contracting process or project.",[Add a project document](#add-a-project-document) and set `.documentType` to ‘resettlementPlan’.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘resettlementPlan’ and copy each object to the `documents` array.* +Resettlement and compensation plan,"Documentation of the procedures and actions to mitigate adverse effects, compensate losses, and provide development benefits to people and communities affected by the contracting process or project.",[Add a project document](../common.md#add-a-project-document) and set `.documentType` to ‘resettlementPlan’.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘resettlementPlan’ and copy each object to the `documents` array.* Project officials and roles,Name and position of the highest authority in the procuring entity where the budget for this project is allocated (project owner),"From the `parties` array, get the `Organization` object whose role is ‘publicAuthority’. If none exists yet: * Add a party @@ -27,6 +27,6 @@ Add a `Person` object to the organization’s `.people` array and: * Set its `.id` incrementally * Set its `.name` to the project official’s name * Set its `.jobTitle` to the project official’s job title","Check the `/parties` array for `Organization` objects with 'procuringEntity' in `/roles`. Copy each object to the `parties` array in OC4IDS. If there is more than one procuring entity, do not set `.summary.tender.procuringEntity.name` and `.summary.tender.procuringEntity.id`; otherwise, set them to the procuring entity's `.name` and `.id`." -Financial agreement,Loan or donation agreement with financing conditions.,[Add a project document](#add-a-project-document) and set `.documentType` to ‘financialAgreement’.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘financialAgreement’ and copy each object to the `documents` array.* -Procurement plan,Documentation that sets out the basis for this particular contracting process.,[Add a project document](#add-a-project-document) and set `.documentType` to ‘procurementPlan’.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘procurementPlan’ and copy each object to the `documents` array.* -Project approval decision,Additional details about the approval of the budget.,[Add a project document](#add-a-project-document) and set `.documentType` to ‘budgetApproval’.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘budgetApproval’ and copy each object to the `documents` array.* +Financial agreement,Loan or donation agreement with financing conditions.,[Add a project document](../common.md#add-a-project-document) and set `.documentType` to ‘financialAgreement’.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘financialAgreement’ and copy each object to the `documents` array.* +Procurement plan,Documentation that sets out the basis for this particular contracting process.,[Add a project document](../common.md#add-a-project-document) and set `.documentType` to ‘procurementPlan’.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘procurementPlan’ and copy each object to the `documents` array.* +Project approval decision,Additional details about the approval of the budget.,[Add a project document](../common.md#add-a-project-document) and set `.documentType` to ‘budgetApproval’.,*Check the `/planning/documents` array for `Document` objects with `.documentType` set to ‘budgetApproval’ and copy each object to the `documents` array.* From 39928d26dc0e54efbd8e58d2c0bcf5735f854d75 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Wed, 18 Oct 2023 09:18:36 +1300 Subject: [PATCH 02/22] docs/cost/ids/sustainability.md: Add PDF download instructions --- docs/cost/ids/sustainability.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/cost/ids/sustainability.md b/docs/cost/ids/sustainability.md index 9aa1d658..90e0d131 100644 --- a/docs/cost/ids/sustainability.md +++ b/docs/cost/ids/sustainability.md @@ -13,6 +13,13 @@ This page documents a mapping from the elements in the CoST IDS sustainability modules to OC4IDS fields and codes. +```{admonition} Download this page in PDF format +:class: tip + + In Google Chrome, Microsoft Edge or Mozilla Firefox, open the **Print** dialog (Ctrl+P) and set **Destination** (**Printer**, in Microsoft Edge) to 'Save to PDF'. In Safari, open the **File** menu and click **Export as PDF**. + +``` + ## Economic and fiscal `````{grid} 2 From 1b6fe76d30fbdf772c76615a543a28e2377f702c Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 2 Nov 2023 13:07:52 +1300 Subject: [PATCH 03/22] Add mapping/sustainability.yaml --- mapping/sustainability.yaml | 1939 +++++++++++++++++++++++++++++++++++ 1 file changed, 1939 insertions(+) create mode 100644 mapping/sustainability.yaml diff --git a/mapping/sustainability.yaml b/mapping/sustainability.yaml new file mode 100644 index 00000000..0327ae73 --- /dev/null +++ b/mapping/sustainability.yaml @@ -0,0 +1,1939 @@ +- id: "1.1" + title: Procurement strategy (Identification) + module: Economic and fiscal + indicator: Procurement viability + disclosure format: Disclose the procurement strategy risk assessment. This tends to be part of the decision-making strategy and likely includes discussions regarding capabilities, the delivery model and the rationale for the risk allocation decision. (E.g. [Document]). + mapping: |- + **Project Level:** [Add a project document](../common.md#add-a-project-document) and set `.documentType` to 'procurementStrategyRiskAssessment'. + example: |- + { + "documents": [ + { + "id": "1", + "title": "Procurement strategy risk assessment", + "documentType": "procurementStrategyRiskAssessment", + "url": "http://example.com/documents/procurementStrategyRiskAssessment.pdf" + } + ] + } +- id: "1.2" + title: Life cycle cost + module: Economic and fiscal + indicator: Economic viability + disclosure format: Disclose the life cycle cost of the project, which is the cost of an asset throughout its life cycle while fulfilling the performance requirements (ISO 15686-5:2017) (E.g. [value]). + mapping: |- + **Project Level:** Add a `CostMeasurement` object to the `costMeasurements` array. Set `.date` to the date the analysis was prepared. If the cost measurement was performed as part of the project appraisal, set `.stage` to 'preConstruction'. Otherwise, choose an appropriate code from the stage codelist. Map to the cost measurement's `.lifeCycleCost.cost`. + example: |- + { + "costMeasurements": [ + { + "id": "1", + "stage": "preConstruction", + "date": "2014-05-01T00:00:00Z", + "lifeCycleCost": { + "cost": { + "amount": 10000000, + "currency": "usd" + } + } + } + ] + } +- id: "1.3" + title: Life cycle cost calculation methodology + module: Economic and fiscal + indicator: + disclosure format: Disclose the methodology used to calculate the life-cycle cost. The methodology ought to specify whether income and externalities are included in the calculation and the common date, discount rate and period of analysis used. + mapping: |- + **Project Level:** Publish in documents, with `.documentType` set to 'lifecycleCostCalculationMethodology' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "lifecycleCostCalculationMethodology", + "url": "http://example.com/documents/lifecycleCostCalculationMethodology.pdf" + } + ] + } +- id: "1.4" + title: Funding source for preparation, implementation and operation + module: Economic and fiscal + indicator: Economic viability + disclosure format: Name the funding organization(s)/sources of funding for Preparation, Implementation and Operation. If the information is not available for any of the stages, select ['funding/budget source not specified'] for the respective stage where the nature of the funding/budget source could not be identified. + mapping: |- + + example: |- + +- id: "1.5" + title: Budget for preparation, implementation and operation + module: Economic and fiscal + indicator: Economic viability + disclosure format: Specify the allocated budget for preparation, implementation, operation. If no amount is allocated for each of the stages, select the option 'amount not allocated" (E.g. Preparation [currency and amount], Implementation[currency and amount], Operation [currency and amount] + mapping: |- + + example: |- + +- id: "1.6" + title: Cost benefit analysis + module: Economic and fiscal + indicator: Economic viability + disclosure format: Disclose the project cost-benefit analysis. This information tends to be part of the appraisal documents. (E.g. [Document]). + mapping: |- + **Project Level:** Publish in `documents`, with `.documentType` set to 'costBenefitAnalysis' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "costBenefitAnalysis", + "url": "http://example.com/documents/costBenefitAnalysis .pdf" + } + ] + } +- id: "1.7" + title: Value for money + module: Economic and fiscal + indicator: Economic viability + disclosure format: A summary of the value for money analysis carried out for the project, along with supporting figures, calculations and business case, based on projected or actual procurement outcomes. This tends to include considerations of economy, efficiency, effectiveness and equity, and is part of the appraisal documents. (E.g. [Document]). + mapping: |- + Project Level: Publish in `documents`, with `.documentType` set to 'valueForMoneyAnalysis' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "valueForMoneyAnalysis", + "url": "http://example.com/documents/valueForMoneyAnalysis.pdf" + } + ] + } +- id: "1.8" + title: Budget projections + module: Economic and fiscal + indicator: Multi-year implementation + disclosure format: |- + In case of multiyear project implementation, disclose information on budget projection for all years of implementation (E.g. Y1: [currency and amount], Y2: [currency and amount], etc). + mapping: |- + + example: |- + +- id: "1.9" + title: Budget shortfall + module: Economic and fiscal + indicator: Budget execution + disclosure format: |- + Disclose any shortfall in the allocated budget (E.g. [currency and amount] and [free text: reasons for the funding shortfall] + mapping: |- + Add a `Metric` object to the `.metrics` array, set its `.id` incrementally and set its `.title` to "Budget shortfall". Add an `Observation` object to the metric's `.observations` array and set + + - `.id` incrementally + - `.value` to the value of the shortfall + - `.notes` to the reasons for the shortfall + - optionally, `.period` to the period to which the shortfall applies + example: |- + { + "metrics": [ + { + "id": "1", + "title": "Budget shortfall", + "observations": [ + { + "id": "1", + "period": { + "startDate": "2024-01-01T00:00:00Z", + "endDate": "202-12-31T00:00:00Z" + }, + "value": { + "amount": 2500000, + "currency": "USD" + }, + "notes": "Funding shortfall due to construction overruns and a lack of budgetary approval" + } + ] + } + ] + } +- id: "2.1" + title: Environmental impact category + module: Environment and climate + indicator: Environmental impact + disclosure format: |- + Indicate the category that reflects the magnitude of environmental impact. Consider the following to rate the project: + + - Category A: projects with potential significant adverse environmental or social risks and/or impacts that are diverse, irreversible, or unprecedented. + + - Category B: projects with potential limited adverse environmental or social risks and/or impacts that are few in number, generally site-specific, largely reversible, and readily addressed through mitigation measures. + + - Category C: projects with minimal or no adverse environmental or social risks and/or impacts. + + (Select from a list: A/B/C - Specify list as IFC's Environmental and Social Categorization). + mapping: |- + Project level: + + 1. If an environmental impact assessment was conducted, set `.environment.hasImpactAssessment` to true. If an environmental impact assessment was not conducted, set environmental.hasImpactAssessment` to false. + + 2. Add a `Classification` object to the `.environment.impactClassifications` array, set its `.scheme` to "ifc-environmental-social" and set its `.id` to the letter for the category into which the project falls. + example: |- + { + "environment": { + "hasImpactAssessment": true, + "impactClassifications": [ + { + "scheme": "ifc-environmental-social", + "id": "a" + } + ] + } + } +- id: "2.2" + title: Environmental measures + module: Environment and climate + indicator: Environmental impact + disclosure format: |- + Disclose the measures adopted by the project to mitigate and/or remedy the environmental impact (E.g. [free text justification/explaining the measures adopted] and document)Click here to enter text. + mapping: |- + Project level: Add a document, set its `.documentType` to 'environmentalMeasures', add a description of the environmental measures adopted to its `.description` and set `.url` to the URL of the document that describes the project's environmental measures (if available). + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "environmentalMeasures", + "description": "The following environmental measures are adopted by the project...", + "url": "http://example.com/documents/environmentalMeasures.pdf" + } + ] + } +- id: "2.3" + title: Environmental exceptions + module: Environment and climate + indicator: Environmental impact + disclosure format: |- + Disclose all exemptions and/or amnesties obtained for the project. (E.g. [Document]). This can be planning, environmental, construction and/or operational related. + mapping: |- + Project Level: Publish in `documents`, with `.documentType` set to 'environmentalExemption' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "environmentalExemption", + "url": "http://example.com/documents/environmentalExemption.pdf" + } + ] + } +- id: "2.4" + title: Protected area + module: Environment and climate + indicator: Biodiversity impact + disclosure format: |- + Identify whether the project is located in a protected area. Use the project location/coordinates at the WDPA - World Database of Protected Areas to disclose the information. + mapping: |- + Project level: + + If the project is located in a protected area: + + 1. Set `.environment.protectedArea` to true. + 2. Add a `Location` object to the `.locations` array, set its `.id` incrementally and set its `.gazetteer.scheme` to 'WDPA_ID' + 3. For each protected area in which the project is located, add the area's WDPA_ID to the `.gazetteer.identifiers` array. + + If the project is not located in a protected area, set `.environment.protectedArea` to false. + example: |- + { + "environment": { + "protectedArea": true + }, + "locations": [ + { + "id": "1", + "gazetteer": { + "scheme": "WDPA_ID", + "identifiers": [ + "555566673" + ] + } + } + ] + } +- id: "2.5" + title: Conservation measures + module: Environment and climate + indicator: Biodiversity impact + disclosure format: |- + Disclose and provide further details on the measures adopted by the project to protect and enhance biodiversity. This can comprise, without limitation the following: + + avoidance of ecological sitting + buffers for ecological land + nature-based solutions + land restoration + protection to landscape and historical sites + invasive species management + management of wildlife mortality risk + reduce habitat loss + pollution reduction + soil management + hazardous material management]) + others (explain) + mapping: |- + Project level: + + For each measure add a `ConservationMeasure` object to the `environment.conservationMeasures` array, setting its `.type` according to the matching code in the open "conservationMeasuresType" codelist and mapping the further explanation to its `.description`. + + If there is an accompanying document publish in `documents`, with `.documentType` set to 'conservationMeasures' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "environment": { + "conservationMeasures": [ + { + "type": "landRestoration", + "description": "Land restoration measures for the project include..." + } + ] + }, + "documents": [ + { + "id": "1", + "documentType": "conservationMeasures", + "url": "http://example.com/conservationMeasures.pdf" + } + ] + } +- id: "2.6" + title: Climate and disaster risk assessment + module: Environment and climate + indicator: Climate and disaster risk + disclosure format: |- + Clarify the type of climate and disaster risks to which the project is exposed to (E.g. [document or free text to list and explain risks]). This tends to be part of the appraisal documents.Click here to enter text. + mapping: |- + Project level: Add a document, set its `.documentType` to 'climateAndDisasterRiskAssessment', add a description of the type of climate and disaster risks to which the project is exposed to its `.description` and set `.url` to the URL of the risk assessment document . + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "climateAndDisasterRiskAssessment", + "description": "The project is exposed to the following climate and disaster risks...", + "url": "http://example.com/documents/climateAndDisasterRiskAssessment .pdf" + } + ] + } +- id: "2.7" + title: Climate measures + module: Environment and climate + indicator: Climate risk + disclosure format: |- + Clarify whether the project design considered climate change mitigation and/or adaptation measures,. disclosing the design demonstrating how the measures were incorporated. This can comprise, without limitation the following: + + + use of lower-emission sources of energy + use of lower-emission materials + use of recycled and reused materials + regenerative design + retrofitting design + use of carbon capture technology + assessment of extreme weather events + assessment of precipitation patterns + assessment of rising temperatures + assessment of rising sea levels + others (explain) + + And [Document]). + + Click here to enter text. + mapping: |- + Project level: + + For each measure add a `ClimateMeasure` object to the `environment.climateMeasures` array, setting it's `.type` according to the matching code in the open climateMeasuresType codelist and mapping the further explanation to its `.description`. + + If there is an accompanying document publish in `documents`, with `.documentType` set to 'climateMeasures' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "environment": { + "climateMeasures": [ + { + "type": "regenerativeDesign", + "description": "Regenerative design measures for the project include..." + } + ] + }, + "documents": [ + { + "id": "1", + "documentType": "climateMeasures", + "url": "http://example.com/climateMeasures.pdf" + } + ] + } +- id: "2.8" + title: Forecast of greenhouse gas emissions + module: Environment and climate + indicator: Climate risk + disclosure format: |- + Disclose the forecast greenhouse gas emissions related to the project, informing the calculation, the methodology applied and where the calculation can be found (E.g. [amount] and [free text for methodology clarification]). Click here to enter text. + mapping: |- + Project-level: + + 1. Add a `Metric` object to the `.forecasts` array. + + 2. Set the metric's `.title` to "Greenhouse gas emissions (carbon dioxide equivalent)" and map the methodology clarification to its `.description`. + + 3. Add an `Observation` object to the metric's `.observations` array and: + - Map the amount of greenhouse gas emissions in tonnes of CO2 equivalent to the observation's `.measure` + - Set the `.unit.name` to "Tonne (metric ton)", `.unit.scheme` to 'UNCEFACT' and `.unit.id` to "TNE" + - Set `.period` to the period covered by the forecast. + + 4. If supporting documentation is available, publish in documents, with `.documentType` set to 'GhgEmissionForecast' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "forecasts": [ + { + "id": "1", + "title": "Greenhouse gas emissions (carbon dioxide equivalent)", + "description": "Emission forecasts are calculated using the following methodology...", + "observations": [ + { + "id": "1", + "period": { + "startDate": "2024-01-01T00:00:00Z", + "endDate": "2049-12-31T00:00:00Z" + }, + "measure": 1000000, + "unit": { + "name": "Tonne (metric ton)", + "scheme": "UNCEFACT", + "id": "TNE" + } + } + ] + } + ], + "documents": [ + { + "id": "1", + "documentType": "GhgEmissionForecast", + "url": "http://example.com/GhgEmissionForecast.pdf" + } + ] + } +- id: "2.9" + title: Environmental certifications + module: Environment and climate + indicator: Climate management + disclosure format: |- + Disclose environmental and/or climate related certifications issued for contractors and subcontractors such as ISO 14001 for environmental management (E.g. [Document]). + + Click here to enter text + mapping: |- + Contracting process level: Publish in `documents`, with `.documentType` set to 'contractorEnvironmentalCertification' and include a short description and/or a link to a document providing details. + example: |- + { + "contractingProcesses": [ + { + "id": "1", + "summary": { + "documents": [ + { + "id": "1", + "documentType": "contractorEnvironmentalCertification", + "url": "http://example.com/documents/contractorEnvironmentalCertification.pdf" + } + ] + } + } + ] + } +- id: "2.10" + title: Decommissioning plans + module: Environment and climate + indicator: Climate management + disclosure format: |- + Disclose the decommissioning plans for the project assets [document].Click here to enter text. + mapping: |- + Project level: Publish in `documents`, with `.documentType` set to 'decommissioningPlans' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "decommissioningPlans", + "url": "http://example.com/documents/decommissioningPlans.pdf" + } + ] + } +- id: "2.11" + title: Decommissioning cost forecast + module: Environment and climate + indicator: Climate management + disclosure format: |- + Disclose the forecast decommissioning costs for the project assets [value, currency]. + mapping: |- + Project level: + + 1. Add a `CostMeasurement` object to the `.costMeasurements` array and set: + - `.id` incrementally + - `.status` to 'endOfLifeForecast' + - `.date` to the date that the forecast was prepared. + 2. Add a `CostGroup` object to the cost measurement's `.costGroups` array, set its `.id` incrementally and set its `.category` to 'endOfLife' + 3. Add a `Cost` object to the cost group's `.costs` array, set its `.id` incrementally and set its `.value` to the amount and currency of the forecast decommissioning costs. + example: |- + { + "costMeasurements": [ + { + "id": "1", + "status": "endOfLifeForecast", + "date": "2024-05-01T00:00:00Z", + "costGroups": [ + { + "id": "1", + "category": "endOfLife", + "costs": [ + { + "id": "1", + "value": { + "amount": 50000000, + "currency": "USD" + } + } + ] + } + ] + } + ] + } +- id: "3.1" + title: Climate objective (Identification) + module: Climate finance + indicator: Project theme + disclosure format: |- + Disclose the main climate objective that the project addresses. + + Select from a list: + Eg: + · mitigation + · adaptation + · cross-cutting + mapping: |- + Project level: Add the relevant code from the climateChangeGoal codelist to the `environment.climateChangeGoal` array + example: |- + { + "environment": { + "climateChangeGoals": [ + "mitigation" + ] + } + } +- id: "3.2" + title: Financial instrument (preparation) + module: Climate finance + indicator: Financial mechanism + disclosure format: |- + Disclose the financial instrument type from the list: + loan + concessional + non-concessional + grant + equity + guarantees + mapping: |- + Project level: For each instrument, add a `finance` object to the `budget.finance` array. Set the `.id` appropriately. Set the `.financeCategory` to the matching code from the financeCategory codelist. + example: |- + { + "budget": { + "finance": [ + { + "id": "1", + "financeCategory": "seniorDebt", + "concessional": false, + } + ] + } + } + +- id: "3.3" + title: Climate transformation (identification) + module: Climate finance + indicator: Model of change + disclosure format: |- + Clarify the theory of change, systemic transition or transformation that is intended [free text to explain]. + mapping: |- + Project level: Publish in documents, with `.documentType` set to 'climateTransformation' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "climateTransformation", + "url": "http://example.com/climateFinanceReport", + "pageStart": "13", + "pageEnd": "14" + } + ] + } +- id: "3.4" + title: Climate finance decision-maker (Identification) + module: Climate finance + indicator: Decision-making process + disclosure format: |- + Identify who approved the climate finance investment in the country (organization, party, role) + mapping: |- + + example: |- +- id: "3.5" + title: Nationally Determined Contributions (NDC) (Identification) + module: Climate finance + indicator: Policy coherence + disclosure format: |- + Select from a list of international commitments and clarify how the project is aligned with it [codelist, free text to explain]. + mapping: |- + See mapping for data point "Policy coherence" in Institutional extension adding the selected codes to the `policyAlighment.policies` array. + example: |- + { + "policyAlignment": { + "policies": [ + "nationallyDeterminedContributions" + ], + "description": "The project is intended to contribute towards the NDC set out in 2022." + }, + "documents": [ + { + "id": "1", + "documentType": "policyAlignment", + "url": "http://example.com/ndcAlignment.pdf", + "pageStart": "13", + "pageEnd": "14" + } + ] + } +- id: "3.6" + title: Paris Agreement (Identification) + module: Climate finance + indicator: Policy coherence + disclosure format: |- + Select from a list of international commitments and clarify how the project is aligned with it [codelist, free text to explain]. + mapping: |- + See mapping for data point "Policy coherence" in Institutional extension adding `parisAgreement` to the `policyAlighment.policies` array. + example: |- + +- id: "3.7" + title: Beneficiaries (Preparation) + module: Climate finance + indicator: Beneficiary population + disclosure format: |- + Disclose who is the climate finance investment intended to benefit [free text to explain the beneficiaries] and number of beneficiaries. [Select from the list: + Direct + Indirect] + mapping: |- + + example: |- + +- id: "3.8" + title: Amount of investment (Preparation) + module: Climate finance + indicator: Economic viability + disclosure format: |- + Disclose the quantum of the climate finance investment [value, currency]. + mapping: |- + Project level: For each financing instrument, add the value and currency to the`.value` in the `finance` object in `budget.finance` + example: |- + { + "budget": { + "finance": [ + { + "id": "1", + "value": { + "amount": "3000000", + "currency": "EUR" + } + } + ] + } + } +- id: "3.9" + title: Funding source (Preparation) + module: Climate finance + indicator: Economic viability + disclosure format: |- + Disclose who is providing the finance [party/organization/role] + mapping: |- + Project level: Add the organization to the `parties` array and add 'funder' to their `.roles` array. + Map the organization's `.id` from the party array to `financingParty.id` in the `budget.finance` + example: |- + { + "parties": [ + { + "id": "1", + "name": "African Development Bank", + "roles": [ + "funder" + ] + } + ], + "budget": { + "finance": [ + { + "id": "1", + "financingParty": { + "id": "1", + "name": "African Development Bank" + } + } + ] + } + } +- id: "3.10" + title: Green Climate Fund Accredited Entity (Preparation) + module: Climate finance + indicator: Accessibility + disclosure format: |- + For projects financed by the Green Climate Fund, disclose the accredited entities through which GCF resources are accessed. + mapping: |- + Project level: + + Add each accredited entity organization to the `parties` array and add 'gcfAccreditedEntity' to its `.roles` array. + example: |- + { + "parties": [ + { + "id": "1", + "name": "Agency for Agricultural Development of Morocco", + "roles": [ + "gcfAccreditedEntity" + ] + } + ] + } +- id: "3.11" + title: Accredited Entity Type (preparation) + module: Climate finance + indicator: Accessibility + disclosure format: |- + Select from the lists: + Private + Public + non-governmental + sub-national + national + regional + international + mapping: |- + + example: |- +- id: "3.12" + title: Project preparation costs (preparation) + module: Climate finance + indicator: Accessibility/ Project viability + disclosure format: |- + Disclose the amounts invested in project preparation [value, currency] + mapping: |- + + example: |- + +- id: "3.13" + title: Project preparation period (preparation) + module: Climate finance + indicator: Accessibility/ efficiency + disclosure format: |- + Disclose dates for project preparation [start date, end date] + mapping: |- + + example: |- + +- id: "3.14" + title: Project approval period (preparation) + module: Climate finance + indicator: Accessibility + disclosure format: |- + Disclose dates for project approval [submission date, approval date] + mapping: |- + + example: |- + +- id: "3.15" + title: Ratio of co-finance (Preparation) + module: Climate finance + indicator: Economic viability + disclosure format: |- + Disclose the ratio of co-finance. Select from a list to specify amounts. + + Eg: + Domestic mobilisations [value or NA] + Private Finance [value or NA] + + mapping: |- + Project level: + + + + For each co-financing arrangement add a new `finance` object to the `budget.finance` array. Map the value and currency to the objects `.value`. Add the financing party to the parties array and add `funder` to their `roles` array. Map the funders `id` and `name` to the `.financingParty` object in the `finance` object. + example: |- + { + "parties": [ + { + "id": "1", + "name": "Green Climate Fund", + "roles": [ + "funder" + ] + }, + { + "id": "2", + "name": "Agency for Agricultural Development of Morocco", + "roles": [ + "funder" + ] + } + ], + "budget": { + "finance": [ + { + "id": "1", + "financingParty": { + "id": "1", + "name": "Green Climate Fund" + }, + "value": { + "amount": "3000000", + "currency": "USD" + } + }, + { + "id": "2", + "financingParty": { + "id": "2", + "name": "Agency for Agricultural Development of Morocco" + }, + "value": { + "amount": "15000", + "currency": "USD" + } + } + ] + } + } +- id: "3.16" + title: Terms of climate finance (Preparation) + module: Climate finance + indicator: Economic viability + disclosure format: |- + This includes several financial terms: + maturity (years) + Grace period (years) + annual principal repayment years (% of initial principle) + Interest (%) + Service fee (per annum) + Commitment fee (per annum) + mapping: |- + + example: |- + +- id: "3.17" + title: Carbon efficiency (Preparation) + module: Climate finance + indicator: Climate impact + disclosure format: |- + Disclose the cost per tonne of CO2 equivalent [value, currency]. + mapping: |- + Publish the cost in `environment.abatementCost`. If supporting documentation is available, publish in documents with `.documentType` set to 'abatementCostMethodology'. + example: |- + +- id: "3.18" + title: Non-climate co-benefits (Preparation) + module: Climate finance + indicator: Non-climate impact + disclosure format: |- + Identify potential non-climate impacts that have been factored into the project planning. Select from the list: + economic + social + environmental + gender empowerment + [add free text to explain the co-benefits] + mapping: |- + Project level: For each impact identified add a `benefit` object to the `benefits` array and assign it a locally unique `id`. Set the `title` as the list code and add details explaining the benefit to `.description`. + example: |- + { + "benefits": [ + { + "id": "1", + "title": "environmental", + "description": "The new water management plant will mean less water is removed from the delta meaning more is left in place for use by the local biome." + } + ] + } +- id: "3.19" + title: Public consultation meetings (Preparation) + module: Climate finance + indicator: Public participation + disclosure format: |- + Disclose the occurrence of public meetings with communities and impacted groups including the minutes, number of the participants, dates and location of these meetings (E.g. Meeting 1 [date] [location] [number of participants] [Document], Meeting 2 [date] [location] [number of participants], [Document]). + mapping: |- + See mapping for data point "Public consultation meetings" in the Social extension + example: |- + +- id: "3.20" + title: Disbursement records + module: Climate finance + indicator: Efficiency + disclosure format: |- + Disbursements dates according to financial agreement versus actual disbursements dates [value, currency, date] + mapping: |- + + example: |- + +- id: "3.21" + title: Type of project monitoring + module: Climate finance + indicator: KPIs + disclosure format: |- + Select from a list: + internal + external + mixed + mapping: |- + + example: |- +- id: "3.22" + title: Performance monitoring (Implementation) + module: Climate finance + indicator: KPIs + disclosure format: |- + Disclose Key Performance Indicators adopted by the project (E.g. [free text]). + mapping: |- + Project level: + + For each KPI add a `Metric` object to the `metrics` array and set the object's fields according to the schema. Prefix the metric's `.title` with "KPI". + example: |- + { + "metrics": [ + { + "id": "1", + "title": "KPI: Capacity utilization" + } + ] + } +- id: "3.23" + title: Reporting period + module: Climate finance + indicator: KPIs + disclosure format: |- + It could be quarterly, annually, biannually, etc. [free text] + mapping: |- + Project level: + + For each KPI metric add the sentence "To be reported XXX" where XXX is the reporting frequency to the metrics `.description`. + example: |- + { + "metrics": [ + { + "id": "1", + "title": "KPI: Capacity utilization", + "description": "To be reported annually." + } + ] + } +- id: "3.24" + title: Oversight reports (implementation) + module: Climate finance + indicator: Anti-corruption impact + disclosure format: |- + [document] + mapping: |- + + example: |- + +- id: "3.25" + title: Independent monitoring (Implementation) + module: Climate finance + indicator: Anti-corruption impact + disclosure format: |- +Identify the entities acting as independent monitors of the project (E.g. [free text]) + mapping: |- + Project level: Add an entry to `parties` with 'independentMonitor' included in its `.roles`. + example: |- + { + "parties": [ + { + "id": "1", + "name": "Climate monitor Africa", + "roles": [ + "independentMonitor" + ] + } + ] + } +- id: "3.26" + title: Independent evaluation (Implementation) + module: Climate finance + indicator: Long-term project impact + disclosure format: |- + Disclose technical audits produced at end of the project (E.g. [free text]. + mapping: |- + Project level: Add a document, set its `.documentType` to 'technicalAuditReport', add a description of the reports findings to its `.description` and set `.url` to the URL of the document that details the audit (if available). If multiple reports have been produced add a document for each one. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "technicalAuditReport", + "description": "The project has been constructed as specified…", + "url": "http://example.com/technicalAuditReport.pdf" + } + ] + } +- id: "3.27" + title: Impact measurement (Operation) + module: Climate finance + indicator: Long-term project impact + disclosure format: |- + Clarify the methodology or system to measure the long-term impact of the project solution (E.g. [free text]. + mapping: |- + Project level: Publish in documents, with `.documentType` set to 'impactMethodology' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "impactMethodology", + "description": "The long term impact of this project will be measured according to…", + "url": " http://example.com/impactMethodology.pdf " + } + ] + } +- id: "3.28" + title: Carbon footprint (Operation) + module: Climate finance + indicator: Long-term project impact + disclosure format: |- + Disclose the carbon footprint of the project [value, tons CO2 equivalent, free text to describe the methodology used to measure the carbon footprint] + mapping: |- + Project-level: + + 1. Add a `Metric` object to the `.metrics` array. + + 2. Set the metric's `.title` to "Greenhouse gas emissions (carbon dioxide equivalent) - operation" and map the methodology clarification to its `.description`. + + 3. Add an `Observation` object to the metric's `.observations` array and: + - Map the amount of greenhouse gas emissions in tonnes of CO2 equivalent to the observation's `.measure` + - Set the `.unit.name` to "Tonne (metric ton)", `.unit.scheme` to 'UNCEFACT' and `.unit.id` to "TNE" + - Set `.period` to the period covered by the calculation. + + 4. If supporting documentation is available, publish in documents, with `.documentType` set to 'ghgEmissions' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "metrics": [ + { + "id": "1", + "title": "Greenhouse gas emissions (carbon dioxide equivalent) - operation", + "description": "Emissions are calculated using the following methodology...", + "observations": [ + { + "id": "1", + "period": { + "startDate": "2024-01-01T00:00:00Z", + "endDate": "2049-12-31T00:00:00Z" + }, + "measure": 1000000, + "unit": { + "name": "Tonne (metric ton)", + "scheme": "UNCEFACT", + "id": "TNE" + } + } + ] + } + ], + "documents": [ + { + "id": "1", + "documentType": "GhgEmissions", + "url": " http://example.com/ghgEmissions.pdf " + } + ] + } +- id: "3.29" + title: Infrastructure assets to be decommissioned + module: Climate finance + indicator: Stranded assets + disclosure format: |- + Identify the asset for disposal purpose [free text] + mapping: |- + + example: |- + +- id: "3.30" + title: Decommission period + module: Climate finance + indicator: Stranded assets + disclosure format: |- + Intended start and end dates of decommissioning. + mapping: |- + + example: |- + +- id: "3.31" + title: Decommission plan (Decommission) + module: Climate finance + indicator: Climate management + disclosure format: |- + Disclose the technical plan for decommissioning (E.g.: [Doc]). + mapping: |- + See decommissioning plan data point in environment extension + example: |- + +- id: "3.32" + title: Decommission costs (Decommission) + module: Climate finance + indicator: Climate management + disclosure format: |- + Disclose socio-economic assessments on transition and decommissioning costs (E.g.: [Doc]). + mapping: |- + + example: |- + +- id: "3.33" + title: Carbon decommission savings (Decommission) + module: Climate finance + indicator: Climate management + disclosure format: |- + Disclose the evaluation of CO2 savings as a result of decommissioning [value, tons CO2 equivalent] + mapping: |- + Project-level: + + 1. Add a `Metric` object to the `.forecasts` array. + + 2. Set the metric's `.title` to "Greenhouse gas emissions reduction (carbon dioxide equivalent)" and map the methodology clarification to its `.description`. + + 3. Add an `Observation` object to the metric's `.observations` array and: + - Map the amount of greenhouse gas emissions in tonnes of CO2 equivalent to the observation's `.measure` + - Set the `.unit.name` to "Tonne (metric ton)", `.unit.scheme` to 'UNCEFACT' and `.unit.id` to "TNE" + - Set `.period` to the period covered by the calculation. + + 4. If supporting documentation is available, publish in documents, with `.documentType` set to 'ghgEmissionsReduction' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "id": "oc4ids-bu3kcz-123456789", + "forecasts": [ + { + "id": "1", + "title": "Greenhouse gas emissions reduction (carbon dioxide equivalent)", + "description": "Emission reduction forecasts are calculated using the following methodology...", + "observations": [ + { + "id": "1", + "period": { + "startDate": "2024-01-01T00:00:00Z", + "endDate": "2049-12-31T00:00:00Z" + }, + "measure": 1000000, + "unit": { + "name": "Tonne (metric ton)", + "scheme": "UNCEFACT", + "id": "TNE" + } + } + ] + } + ], + "documents": [ + { + "id": "1", + "documentType": "ghgEmissionsReduction", + "url": " http://example.com/GhgEmissionsReduction.pdf " + } + ] + } + +- id: "3.34" + title: Decommission mitigation plan (Decommission) + module: Climate finance + indicator: Climate management + disclosure format: |- + Disclose mitigation plan for people and communities affected by decommissioning (E.g.: [Doc]), + mapping: |- + Project level: + + Publish in documents, with `.documentType` set to 'socialImpact' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "id": "oc4ids-bu3kcz-123456789", + "documents": [ + { + "id": "1", + "documentType": "socialImpact", + "url": "http://example.com/socialImpact.pdf", + "pageStart": "13", + "pageEnd": "14" + } + ] + } +- id: "4.1" + title: Number of beneficiaries (Preparation) + module: Social + indicator: Beneficiary population + disclosure format: |- + Indicate the number of direct and indirect project beneficiaries (E.g. direct: [number]; indirect: "number"). Beneficiaries are the individuals who benefit directly or indirectly from the project; they are the target group of the infrastructure project and their needs are addressed by the intervention. + mapping: |- + + example: |- + +- id: "4.2" + title: Inclusive design and implementation + module: Social + indicator: Gender and inclusion + disclosure format: |- + Clarify whether gender, people with disabilities and vulnerable and disadvantaged populations were considered in the project design (e.g. "free text to explain how the design meets inclusion goals" and document to support – the project design) and project implementation (e.g. "free text to explain implementation practices targeting inclusion goals" and document to support – contractor policy and procedures). + mapping: |- + Project-level: + + 1. Add a document, set its `.documentType` to 'inclusiveDesign' and add an explanation of how the project design meets inclusion goals to its `.description`. If supporting documentation is available, add its URL to `.url`. + + 1. Add a document, set its `.documentType` to 'inclusiveImplementation' and add an explanation of how the project imlpementation practices target inclusion goals to its `.description`. If supporting documentation is available, add its URL to `.url`. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "inclusiveDesign", + "description": "The project's design meets its inclusion goals by...", + "url": "http://example.com/documents/inclusiveDesign.pdf" + }, + { + "id": "2", + "documentType": "inclusiveImplementation", + "description": "The project's implementation practices target inclusion goals by...", + "url": "http://example.com/documents/inclusiveImplementation.pdf" + } + ] + } +- id: "4.3" + title: Indigenous land (Preparation) + module: Social + indicator: Indigenous populations + disclosure format: |- + Identify whether the project is located or cut through indigenous land. Use the information at the LandMark – Global Platform of Indigenous and Community Lands on both databases Indigenous Lands Acknowledged by Government and Not Acknowledged by Government (customary tenure or with formal land claim submitted) to disclose the information. + mapping: |- + Project level: + + If the project is located or cut through indigenous land: + + 1. Set `.social.indigenousLand` to `true` + 2 Add a `Location` object to the `.locations` array, set its `.id` incrementally and set its description to "Indigenous land: ()" substituting and for the name and land category from the Landmark database. + + If the project is not located or cut through indigenous land, set `.social.indigenousLand` to `false`. + example: |- + { + "social": { + "indigenousLand": true + }, + "locations": [ + { + "id": "1", + "description": "Indigenous land: Section 1 Block III Rowallan Survey District (Maori Freehold Land)" + } + ] + } +- id: "4.4" + title: Public consultation meetings + module: Social + indicator: Public participation + disclosure format: |- + Disclose the occurrence of public meetings with communities and impacted groups including meeting invite, the number of the participants, dates and location of these meetings. + mapping: |- + Project Level: + + For each meeting: + + 1. Publish the meeting invite. Add a document, set its `.documentType` to 'consultationMeetingInvite' and its `.url` to the URL at which the meeting invite is available. + + 2. Publish the meeting details. Add a `Meeting` object to the `.social.consultationMeetings` array and set: + + - `.id` incrementally + - `.date` to the date of the meeting + - `.address` to the address of the meeting + - `.participantCount` to the number of people that participated in the meeting + + 3. Publish the meeting minutes. Add a document, set its `.documentType` to 'consultationMeetingMinutes' and its `.url` to the URL at which the meeting minutes are available. + example: |- + { + "social": { + "consultationMeetings": [ + { + "id": "1", + "date": "2024-01-01T00:00:00Z", + "address": { + "streetAddress": "1600 Amphitheatre Pkwy", + "locality": "Mountain View", + "region": "CA", + "postalCode": "94043", + "countryName": "United States" + }, + "participantCount": 12 + } + ] + }, + "documents": [ + { + "id": "1", + "documentType": "consultationMeetingInvite", + "url": "http://example.com/consultationMeetingInvite.pdf" + }, + { + "id": "2", + "documentType": "consultationMeetingMinutes", + "url": "http://example.com/consultationMeetingMinutes.pdf" + } + ] + } +- id: "4.5" + title: Land compensation budget + module: Social + indicator: Land issues + disclosure format: |- + Disclose budget allocated to fund land compensation (E.g. [value]). + mapping: |- + Project Level: Set `.social.landCompensationBudget` to the amount and currency of the budget allocated for land compensation. + example: |- + { + "social": { + "landCompensationBudget": { + "amount": 1000000, + "currency": "USD" + } + } + } +- id: "4.6" + title: Labour obligations + module: Social + indicator: Labour compliance + disclosure format: |- + Disclose labour obligations in the construction contract. This can include, without limitation, the following: + + Minimum wage + Overtime + Prohibition of forced labour + Prohibition of child labour + Equal opportunity + Non-discrimination + Freedom of association + Grievance mechanism + Working at height + Underground work + Handling of materials/equipment + Monitoring of accidents + Traffic management + Accommodation + Protective equipment + Others (explain) + mapping: |- + Contracting process level: + + Publish a summary of the labor obligations: + + 1. For each labor obligation in the contract, add a code from the laborObligations codelist to the`.summary.social.laborObligations.obligations` array. + 2. Optionally, add a further explanation of the labor obligations to `.summary.social.laborObligations.description`. + + Publish the bidding documents that specify labor obligations: Add a document to `.summary.documents`, set its `.id` incrementally, set its `.documentType` to 'biddingDocuments' and set its `.url` to the URL at which the documents are available. + + Publish the signed contract that includes labor obligations: Add a document to `.summary.documents`, set its `.id` incrementally, set its `.documentType` to 'contractSigned' and set its `.url` to the URL at which the signed contract that includes labor obligations is accessible. + example: |- + { + "contractingProcesses": [ + { + "id": "1", + "summary": { + "social": { + "laborObligations": { + "obligations": [ + "minimumWage", + "overtime" + ], + "description": "The contract's labor obligations include a minimum wage of $20 per hour and an overtime limit of 10 hours per week." + } + }, + "documents": [ + { + "id": "1", + "documentType": "biddingDocuments", + "url": "http://example.com/biddingDocuments.pdf" + }, + { + "id": "2", + "documentType": "contractSigned", + "url": "http://example.com/contractSigned.pdf" + } + ] + } + } + ] + } +- id: "4.7" + title: Labour budget + module: Social + indicator: Labour compliance + disclosure format: |- + Disclose the amount allocated by the main contractor to cover for labour costs (E.g. [value]). + mapping: |- + Contract level: Publish the amount and currency of the labor budget in `.summary.social.laborBudget`. + example: |- + { + "contractingProcesses": [ + { + "id": "1", + "summary": { + "social": { + "laborBudget": { + "amount": 10000000, + "currency": "USD" + } + } + } + } + ] + } +- id: "4.8" + title: Workers' accidents + module: Social + indicator: Health and Safety + disclosure format: |- + Disclose summary statistics on accidents and fatalities involving construction workers, and an explanation of these events. + mapping: |- + Project level: + + Publish summary statistics on worker accidents: + + 1. Add a `Metric` object to the `.metrics` array, set its `.id` incrementally and set its `.title` to "Worker accidents". + 2. For each reporting period, add an `Observation` object to the metric's `.observations` array, set its `.id` incrementally, set its `.period` to the reporting period and set its `.measure` to the number of accidents. If further details available, add them to the observation's `.notes` field. + + Publish summary statistics on worker fatalities: + + 1. Add a `Metric` object to the `.metrics` array, set its `.id` incrementally and set its `.title` to "Worker fatalities". + 2. For each reporting period, add an `Observation` object to the metric's `.observations` array, set its `.id` incrementally, set its `.period` to the reporting period and set its `.measure` to the number of fatalities. If further details available, add them to the observation's `.notes` field. + example: |- + { + "metrics": [ + { + "id": "1", + "title": "Worker accidents", + "observations": [ + { + "id": "1", + "period": { + "startDate": "2024-01-01T00:00:00Z", + "endDate": "2024-06-30T00:00:00Z" + }, + "measure": 12, + "notes": "In H1 2024, most accidents were related to..." + } + ] + }, + { + "id": "2", + "title": "Worker fatalities", + "observations": [ + { + "id": "1", + "period": { + "startDate": "2024-01-01T00:00:00Z", + "endDate": "2024-06-30T00:00:00Z" + }, + "measure": 0 + } + ] + } + ] + } +- id: "4.9" + title: Health and safety certifications + module: Social + indicator: Health and Safety + disclosure format: |- + Disclose labour related certifications issued in relation to project contractors and subcontractors such as ISO 45001 for Health and Safety (E.g. [Document]). + mapping: |- + Contracting process level: Publish in `.summary.documents`, with `.documentType` set to 'contractorHealthAndSafetyCertification' and include a short description and/or a link to a document providing details. + example: |- + { + "contractingProcesses": [ + { + "id": "1", + "summary": { + "documents": [ + { + "id": "1", + "documentType": "contractorHealthAndSafetyCertification", + "url": "http://example.com/documents/contractorHealthAndSafetyCertification.pdf" + } + ] + } + } + ] + } +- id: "4.10" + title: Construction materials testing + module: Social + indicator: Health and Safety + disclosure format: |- + Disclose materials tests performed during implementation [document]. These can include, without limitation, the following: + + + Foundations + Pavements + Soil + Steel structure + Asphalt + Retaining walls + Concrete + Masonry + Roofs + Compression + Compaction + Thickness + Others (explain) + + [Free text to add not mentioned tests] + + Document + mapping: |- + Project level: + + Publish a summarry of the material tests: + + 1. For each material test, add a code from the materialTests codelist to the`.social.healthAndSafety.materialTests.tests` array. + 2. Optionally, add a further explanation of the material tests to `.social.healthAndSafety.materialTests.description`. + + Publish test results: For each test result, add a document, set `.documentType` to 'materialTestResults' and set `.url` to the URL at which the document is accessible. + example: |- + { + "social": { + "healthAndSafety": { + "materialTests": { + "tests": [ + "retainingWalls", + "roofs" + ], + "description": "Tests were conducted of the main retaining wall and of the roof of each structure according to..." + } + } + }, + "documents": [ + { + "id": "1", + "documentType": "materialTestResults", + "url": "http://example.com/materialTestResults.pdf" + } + ] + } +- id: "4.11" + title: Building inspections + module: Social + indicator: Health and Safety + disclosure format: |- + Disclose building inspections during project implementation (E.g. [Document]). + mapping: |- + Project Level: Publish in `documents`, with `.documentType` set to 'buildingInspectionReport' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "buildingInspectionReport", + "url": "http://example.com/buildingInspectionReport.pdf" + } + ] + } +- id: "4.12" + title: Jobs generated + module: Social + indicator: Growth impact + disclosure format: |- + Disclose estimated and actual jobs (direct/indirect) during project implementation and estimated and actual jobs during operation (E.g. [direct: value] [indirect: value]). + mapping: |- + Project level: + + Publish job creation estimates: + + 1. Add a `Metric` object to the `forecasts` array and set its `.title` to 'Jobs created'. + 2. Add an `observation` object for each job relationship – stage pair and set `.dimensions` accordingly, i.e. + + - relationship: direct, stage: implementation + - relationship: indirect, stage: implementation + - relationship: direct, stage: operation + - relationship: indirect, stage: operation + + 3. Record the estimated number of jobs created for each relationship and stage in the relevant observation's `.measure`. + + Publish actual jobs created: + + 1. Add a `Metric` object to the `metrics` array and set its `.title` to 'Jobs created'. + 2. Add an `observation` object for each job relationship – stage pair and set `.dimensions` accordingly, i.e. + + - relationship: direct, stage: implementation + - relationship: indirect, stage: implementation + - relationship: direct, stage: operation + - relationship: indirect, stage: operation + + 3. Record the actual number of jobs created for each relationship and stage in the relevant observation's `.measure`. + example: |- + { + "forecasts": [ + { + "id": "1", + "title": "Jobs created", + "observations": [ + { + "id": "1", + "measure": 1000, + "dimensions": { + "relationship": "direct", + "stage": "implementation" + } + }, + { + "id": "2", + "measure": 5000, + "dimensions": { + "relationship": "indirect", + "stage": "implementation" + } + }, + { + "id": "3", + "measure": 300, + "dimensions": { + "relationship": "direct", + "stage": "operation" + } + }, + { + "id": "4", + "measure": 2000, + "dimensions": { + "relationship": "indirect", + "stage": "operation" + } + } + ] + } + ], + "metrics": [ + { + "id": "1", + "title": "Jobs created", + "observations": [ + { + "id": "1", + "measure": 979, + "dimensions": { + "relationship": "direct", + "stage": "implementation" + } + }, + { + "id": "2", + "measure": 4120, + "dimensions": { + "relationship": "indirect", + "stage": "implementation" + } + }, + { + "id": "3", + "measure": 295, + "dimensions": { + "relationship": "direct", + "stage": "operation" + } + }, + { + "id": "4", + "measure": 1875, + "dimensions": { + "relationship": "indirect", + "stage": "operation" + } + } + ] + } + ] + } +- id: "5.1" + title: Policy coherence + module: Institutional + indicator: Investment transparency + disclosure format: |- + Disclose documentation that evidences that the project is part of, or aligned with existing plans and policies, providing further details on the project's policy alignment. Consider alignment with: + + + + SDGs + National plan or strategy + Infrastructure plan or strategy + Sector plan or strategy + Procuring entity plan or strategy + Paris Agreement + Nationally Determined Contributions (NDCs) + National Adaptation Plans + Medium-term fiscal frameworks/targets + + [free text] + mapping: |- + Project level: + + For each plan or policy to which the project is aligned, add a code from the policyAlignment codelist to the `.policyAlignment.policies` array. Add a further explanation of the project's policy alignment to `.policyAlignment.description`. + + For each United Nations Sustainable Development Goal to which the project is aligned, add a `Classification` object to the `.additionalClassifications` array, set its `.scheme` to 'sdg', set its `.id` to the goal's number and set its `.description` to the goal's title. + + For each United Nations Sustainable Development Goal Target to which the project is aligned, add a `Classification` object to the `.additionalClassifications` array, set its `.scheme` to 'sdgTarget', set its `.id` to the target's number and set its `.description` to the target's title. + + If further documentation of the project's policy alignment is available, add a document with `.documentType` set to 'policyAlignment', `url` set to the URL at which the documentation can be accessed. + example: |- + { + "additionalClassifications": [ + { + "scheme": "sdg", + "id": "6", + "description": "Ensure availability and sustainable management of water and sanitation for all" + }, + { + "scheme": "sdgTarget", + "id": "6.3", + "description": "By 2030, improve water quality by reducing pollution, eliminating dumping and minimizing release of hazardous chemicals and materials, halving the proportion of untreated wastewater and substantially increasing recycling and safe reuse globally" + } + ], + "policyAlignment": { + "policies": [ + "infrastructurePlan" + ], + "description": "The project is intended to contribute towards the goals set out in the 2021 Australian Infrastructure Plan." + }, + "documents": [ + { + "id": "1", + "documentType": "policyAlignment", + "url": "http://example.com/infrastructurePlanAlignment.pdf" + } + ] + } +- id: "5.2" + title: Freedom of information requests + module: Institutional + indicator: Access to information + disclosure format: |- + Disclose Freedom of Information (FoI) requests that have been presented in relation to the project [E.g. Document]. Note that FoI requests can also be known as access to information requests. + mapping: |- + Project level: + + For each freedom of information request, add a document, set `.documentType` to 'foiRequest' and set `.url` to the URL at which the request is available + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "foiRequest", + "url": "http://example.com/foiRequest-1.pdf" + } + ] + } +- id: "5.3" + title: Answers to Freedom of information requests + module: Institutional + indicator: Access to information + disclosure format: |- + Disclose the responses provided by authorities toFreedom of Information (FoI) requests related to the project (Eg. [Document]). Note that FoI requests may also be known as acccess to information requests. + mapping: |- + Project level: + + For each freedom of information request response, add a document, set `.documentType` to 'foiRequestResponse' and set `.url` to the URL at which the response is available. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "foiRequest", + "url": "http://example.com/foiRequest-1.pdf" + } + ] + } +- id: "5.4" + title: Lobbying transparency + module: Institutional + indicator: Access to information + disclosure format: |- + Disclose the occurrence of meetings with interest groups, including the meeting agenda and minutes, the number of the participants, dates and location of these meetings (E.g. Meeting 1 [date] [location] [number of participants] [Document], Meeting 2 [date] [location] [number of participants] [Document]). + mapping: |- + Project Level: + + For each meeting: + + 1. Publish the meeting agenda. Add a document, set its `.documentType` to 'lobbyingMeetingAgenda' and its `.url` to the URL at which the agenda is available. + + 2. Publish the meeting details. Add a `Meeting` object to the `.lobbyingMeetings` array and set: + + - `.id` incrementally + - `.date` to the date of the meeting + - `.address` to the address of the meeting + - `.beneficiary` to the name of the organisation or interest group that ultimately benefits from the lobbying activity + + 3. Publish the meeting minutes. Add a document, set its `.documentType` to 'lobbyingMeetingMinutes' and its `.url` to the URL at which the meeting minutes are available. + example: |- + { + "lobbyingMeetings": [ + { + "id": "1", + "date": "2024-01-01T00:00:00Z", + "address": { + "streetAddress": "1600 Amphitheatre Pkwy", + "locality": "Mountain View", + "region": "CA", + "postalCode": "94043", + "countryName": "United States" + }, + "beneficiary": "Arup Group" + } + ], + "documents": [ + { + "id": "1", + "documentType": "lobbyingMeetingAgenda", + "url": "http://example.com/lobbyingMeetingAgenda.pdf" + }, + { + "id": "2", + "documentType": "lobbyingMeetingMinutes", + "url": "http://example.com/lobbyingMeetingMinutes.pdf" + } + ] + } +- id: "5.5" + title: Beneficial ownership + module: Institutional + indicator: Access to information + disclosure format: |- + Disclose the beneficial owners of the contractors and suppliers appointed in the project (E.g. [name, identifier]). + mapping: |- + Use modelling from OCDS Beneficial Owners extension + example: |- + +- id: "5.6" + title: Sustainability criteria + module: Institutional + indicator: Award criteria + disclosure format: |- + Identify the presence of sustainability and non-price attributes in the award criteria. + mapping: |- + Contracting process level: + + Add a `Sustainability` object to the `.summary.tender.sustainability` array and add 'awardCriteria' to its `.strategies` array. + example: |- + { + "contractingProcesses": [ + { + "id": "1", + "summary": { + "tender": { + "sustainability": [ + { + "strategies": [ + "awardCritera" + ] + } + ] + } + } + } + ] + } +- id: "5.7" + title: Anti-corruption certifications + module: Institutional + indicator: Anti-corruption impact + disclosure format: |- + Disclose anti-corruption certifications of the project, such as ISO 37001 on Anti-Bribery Management Systems Standard (E.g. [Document]). + mapping: |- + Project Level: Publish in documents, with .documentType set to 'antiCorruptionCertification' and include a short description and/or a link to a document providing details. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "antiCorruptionCertification", + "url": "http://example.com/ISO37001Certification.pdf" + } + ] + } +- id: "5.8" + title: Independent monitoring + module: Institutional + indicator: Anti-corruption impact + disclosure format: |- + Identify the entities acting as independent monitors of the project (E.g. [free text]) + mapping: |- + Project Level: Add an entry to `parties` with 'independentMonitor' included in its `.roles`. + example: |- + { + "parties": [ + { + "id": "1", + "name": "Transparency International New Zealand", + "roles": [ + "independentMonitor" + ] + } + ] + } +- id: "5.9" + title: Performance monitoring + module: Institutional + indicator: KPIs + disclosure format: |- + Disclose Key Performance Indicators adopted by the project (E.g. [free text]). + mapping: |- + Project level: Publish in `metrics`. For each KPI add a Metric object to the metrics array and set the object's fields according to the schema. Prefix the metric's `.title` with "KPI: " + example: |- + { + "metrics": [ + { + "id": "1", + "title": "KPI: Capacity utilisation" + } + ] + } +- id: "5.10" + title: Risk management plans + module: Institutional + indicator: Risk management + disclosure format: |- + Disclose risk management plans prepared for the project (E.g. [Document]). + mapping: |- + Project Level: Publish in documents, with .documentType set to 'riskProvisions' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + example: |- + { + "documents": [ + { + "id": "1", + "documentType": "riskProvisions", + "url": "http://example.com/riskManagementPlan.pdf" + } + ] + } +- id: "5.11" + title: Sustainable sub-sectors + module: Institutional + indicator: Subsectors + disclosure format: |- + Identify relevant sub-sectors related to the project scope. + Select from a list (non-exhaustive): + - Renewable energy + solar, wind, + hydropower, + biomass + geothermal + Low carbon transport + - Flood protection + energy efficiency, + water and wastewater management + natural resource management + + Free text to add not mentioned sub-sectors + mapping: |- + Project Level: Add equivalent code from ProjectSector codelist to sector array. + example: |- From 2faf176ffefe177960bc7ca7bd160c67052f136c Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 2 Nov 2023 13:21:50 +1300 Subject: [PATCH 04/22] mapping/sustainability.yaml: Fix syntax error --- mapping/sustainability.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapping/sustainability.yaml b/mapping/sustainability.yaml index 0327ae73..ae72cd1b 100644 --- a/mapping/sustainability.yaml +++ b/mapping/sustainability.yaml @@ -946,7 +946,7 @@ module: Climate finance indicator: Anti-corruption impact disclosure format: |- -Identify the entities acting as independent monitors of the project (E.g. [free text]) + Identify the entities acting as independent monitors of the project (E.g. [free text]) mapping: |- Project level: Add an entry to `parties` with 'independentMonitor' included in its `.roles`. example: |- From 0f0d799224dded5a5c594654b1b791311e9c1bc1 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 2 Nov 2023 15:53:09 +1300 Subject: [PATCH 05/22] mapping/sustainability.yaml: Lint Markdown --- mapping/sustainability.yaml | 762 +++++++++++++++--------------------- 1 file changed, 317 insertions(+), 445 deletions(-) diff --git a/mapping/sustainability.yaml b/mapping/sustainability.yaml index ae72cd1b..9f5d410f 100644 --- a/mapping/sustainability.yaml +++ b/mapping/sustainability.yaml @@ -1,10 +1,9 @@ -- id: "1.1" +- id: '1.1' title: Procurement strategy (Identification) module: Economic and fiscal indicator: Procurement viability - disclosure format: Disclose the procurement strategy risk assessment. This tends to be part of the decision-making strategy and likely includes discussions regarding capabilities, the delivery model and the rationale for the risk allocation decision. (E.g. [Document]). - mapping: |- - **Project Level:** [Add a project document](../common.md#add-a-project-document) and set `.documentType` to 'procurementStrategyRiskAssessment'. + disclosure format: Disclose the procurement strategy risk assessment. This tends to be part of the decision-making strategy and likely includes discussions regarding capabilities, the delivery model and the rationale for the risk allocation decision. (E.g. \[Document\]). + mapping: '**Project Level:** [Add a project document](../common.md#add-a-project-document) and set `.documentType` to ''procurementStrategyRiskAssessment''.' example: |- { "documents": [ @@ -16,13 +15,12 @@ } ] } -- id: "1.2" +- id: '1.2' title: Life cycle cost module: Economic and fiscal indicator: Economic viability - disclosure format: Disclose the life cycle cost of the project, which is the cost of an asset throughout its life cycle while fulfilling the performance requirements (ISO 15686-5:2017) (E.g. [value]). - mapping: |- - **Project Level:** Add a `CostMeasurement` object to the `costMeasurements` array. Set `.date` to the date the analysis was prepared. If the cost measurement was performed as part of the project appraisal, set `.stage` to 'preConstruction'. Otherwise, choose an appropriate code from the stage codelist. Map to the cost measurement's `.lifeCycleCost.cost`. + disclosure format: Disclose the life cycle cost of the project, which is the cost of an asset throughout its life cycle while fulfilling the performance requirements (ISO 15686-5:2017) (E.g. \[value\]). + mapping: '**Project Level:** Add a `CostMeasurement` object to the `costMeasurements` array. Set `.date` to the date the analysis was prepared. If the cost measurement was performed as part of the project appraisal, set `.stage` to ''preConstruction''. Otherwise, choose an appropriate code from the stage codelist. Map to the cost measurement''s `.lifeCycleCost.cost`.' example: |- { "costMeasurements": [ @@ -39,13 +37,12 @@ } ] } -- id: "1.3" +- id: '1.3' title: Life cycle cost calculation methodology module: Economic and fiscal - indicator: + indicator: null disclosure format: Disclose the methodology used to calculate the life-cycle cost. The methodology ought to specify whether income and externalities are included in the calculation and the common date, discount rate and period of analysis used. - mapping: |- - **Project Level:** Publish in documents, with `.documentType` set to 'lifecycleCostCalculationMethodology' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + mapping: '**Project Level:** Publish in documents, with `.documentType` set to ''lifecycleCostCalculationMethodology'' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`.' example: |- { "documents": [ @@ -56,31 +53,26 @@ } ] } -- id: "1.4" +- id: '1.4' title: Funding source for preparation, implementation and operation module: Economic and fiscal indicator: Economic viability - disclosure format: Name the funding organization(s)/sources of funding for Preparation, Implementation and Operation. If the information is not available for any of the stages, select ['funding/budget source not specified'] for the respective stage where the nature of the funding/budget source could not be identified. - mapping: |- - - example: |- - -- id: "1.5" + disclosure format: Name the funding organization(s)/sources of funding for Preparation, Implementation and Operation. If the information is not available for any of the stages, select \['funding/budget source not specified'\] for the respective stage where the nature of the funding/budget source could not be identified. + mapping: '' + example: '' +- id: '1.5' title: Budget for preparation, implementation and operation module: Economic and fiscal indicator: Economic viability - disclosure format: Specify the allocated budget for preparation, implementation, operation. If no amount is allocated for each of the stages, select the option 'amount not allocated" (E.g. Preparation [currency and amount], Implementation[currency and amount], Operation [currency and amount] - mapping: |- - - example: |- - -- id: "1.6" + disclosure format: Specify the allocated budget for preparation, implementation, operation. If no amount is allocated for each of the stages, select the option 'amount not allocated" (E.g. Preparation \[currency and amount\], Implementation\[currency and amount\], Operation \[currency and amount\] + mapping: '' + example: '' +- id: '1.6' title: Cost benefit analysis module: Economic and fiscal indicator: Economic viability - disclosure format: Disclose the project cost-benefit analysis. This information tends to be part of the appraisal documents. (E.g. [Document]). - mapping: |- - **Project Level:** Publish in `documents`, with `.documentType` set to 'costBenefitAnalysis' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + disclosure format: Disclose the project cost-benefit analysis. This information tends to be part of the appraisal documents. (E.g. \[Document\]). + mapping: '**Project Level:** Publish in `documents`, with `.documentType` set to ''costBenefitAnalysis'' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`.' example: |- { "documents": [ @@ -91,13 +83,12 @@ } ] } -- id: "1.7" +- id: '1.7' title: Value for money module: Economic and fiscal indicator: Economic viability - disclosure format: A summary of the value for money analysis carried out for the project, along with supporting figures, calculations and business case, based on projected or actual procurement outcomes. This tends to include considerations of economy, efficiency, effectiveness and equity, and is part of the appraisal documents. (E.g. [Document]). - mapping: |- - Project Level: Publish in `documents`, with `.documentType` set to 'valueForMoneyAnalysis' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + disclosure format: A summary of the value for money analysis carried out for the project, along with supporting figures, calculations and business case, based on projected or actual procurement outcomes. This tends to include considerations of economy, efficiency, effectiveness and equity, and is part of the appraisal documents. (E.g. \[Document\]). + mapping: 'Project Level: Publish in `documents`, with `.documentType` set to ''valueForMoneyAnalysis'' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`.' example: |- { "documents": [ @@ -108,22 +99,18 @@ } ] } -- id: "1.8" +- id: '1.8' title: Budget projections module: Economic and fiscal indicator: Multi-year implementation - disclosure format: |- - In case of multiyear project implementation, disclose information on budget projection for all years of implementation (E.g. Y1: [currency and amount], Y2: [currency and amount], etc). - mapping: |- - - example: |- - -- id: "1.9" + disclosure format: 'In case of multiyear project implementation, disclose information on budget projection for all years of implementation (E.g. Y1: \[currency and amount\], Y2: \[currency and amount\], etc).' + mapping: '' + example: '' +- id: '1.9' title: Budget shortfall module: Economic and fiscal indicator: Budget execution - disclosure format: |- - Disclose any shortfall in the allocated budget (E.g. [currency and amount] and [free text: reasons for the funding shortfall] + disclosure format: 'Disclose any shortfall in the allocated budget (E.g. \[currency and amount\] and \[free text: reasons for the funding shortfall\]' mapping: |- Add a `Metric` object to the `.metrics` array, set its `.id` incrementally and set its `.title` to "Budget shortfall". Add an `Observation` object to the metric's `.observations` array and set @@ -154,7 +141,7 @@ } ] } -- id: "2.1" +- id: '2.1' title: Environmental impact category module: Environment and climate indicator: Environmental impact @@ -165,15 +152,15 @@ - Category B: projects with potential limited adverse environmental or social risks and/or impacts that are few in number, generally site-specific, largely reversible, and readily addressed through mitigation measures. - - Category C: projects with minimal or no adverse environmental or social risks and/or impacts. + - Category C: projects with minimal or no adverse environmental or social risks and/or impacts. - (Select from a list: A/B/C - Specify list as IFC's Environmental and Social Categorization). + (Select from a list: A/B/C - Specify list as IFC's Environmental and Social Categorization). mapping: |- - Project level: + Project level: - 1. If an environmental impact assessment was conducted, set `.environment.hasImpactAssessment` to true. If an environmental impact assessment was not conducted, set environmental.hasImpactAssessment` to false. + 1. If an environmental impact assessment was conducted, set `.environment.hasImpactAssessment` to true. If an environmental impact assessment was not conducted, set `environmental.hasImpactAssessment` to false. - 2. Add a `Classification` object to the `.environment.impactClassifications` array, set its `.scheme` to "ifc-environmental-social" and set its `.id` to the letter for the category into which the project falls. + 2. Add a `Classification` object to the `.environment.impactClassifications` array, set its `.scheme` to "ifc-environmental-social" and set its `.id` to the letter for the category into which the project falls. example: |- { "environment": { @@ -186,14 +173,12 @@ ] } } -- id: "2.2" +- id: '2.2' title: Environmental measures module: Environment and climate indicator: Environmental impact - disclosure format: |- - Disclose the measures adopted by the project to mitigate and/or remedy the environmental impact (E.g. [free text justification/explaining the measures adopted] and document)Click here to enter text. - mapping: |- - Project level: Add a document, set its `.documentType` to 'environmentalMeasures', add a description of the environmental measures adopted to its `.description` and set `.url` to the URL of the document that describes the project's environmental measures (if available). + disclosure format: Disclose the measures adopted by the project to mitigate and/or remedy the environmental impact (E.g. \[free text justification/explaining the measures adopted\] and document)Click here to enter text. + mapping: 'Project level: Add a document, set its `.documentType` to ''environmentalMeasures'', add a description of the environmental measures adopted to its `.description` and set `.url` to the URL of the document that describes the project''s environmental measures (if available).' example: |- { "documents": [ @@ -205,14 +190,12 @@ } ] } -- id: "2.3" +- id: '2.3' title: Environmental exceptions module: Environment and climate indicator: Environmental impact - disclosure format: |- - Disclose all exemptions and/or amnesties obtained for the project. (E.g. [Document]). This can be planning, environmental, construction and/or operational related. - mapping: |- - Project Level: Publish in `documents`, with `.documentType` set to 'environmentalExemption' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + disclosure format: Disclose all exemptions and/or amnesties obtained for the project. (E.g. \[Document\]). This can be planning, environmental, construction and/or operational related. + mapping: 'Project Level: Publish in `documents`, with `.documentType` set to ''environmentalExemption'' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`.' example: |- { "documents": [ @@ -223,12 +206,11 @@ } ] } -- id: "2.4" +- id: '2.4' title: Protected area module: Environment and climate indicator: Biodiversity impact - disclosure format: |- - Identify whether the project is located in a protected area. Use the project location/coordinates at the WDPA - World Database of Protected Areas to disclose the information. + disclosure format: Identify whether the project is located in a protected area. Use the project location/coordinates at the WDPA - World Database of Protected Areas to disclose the information. mapping: |- Project level: @@ -256,12 +238,12 @@ } ] } -- id: "2.5" +- id: '2.5' title: Conservation measures module: Environment and climate indicator: Biodiversity impact disclosure format: |- - Disclose and provide further details on the measures adopted by the project to protect and enhance biodiversity. This can comprise, without limitation the following: + Disclose and provide further details on the measures adopted by the project to protect and enhance biodiversity. This can comprise, without limitation the following: avoidance of ecological sitting buffers for ecological land @@ -273,10 +255,10 @@ reduce habitat loss pollution reduction soil management - hazardous material management]) + hazardous material management\]) others (explain) mapping: |- - Project level: + Project level: For each measure add a `ConservationMeasure` object to the `environment.conservationMeasures` array, setting its `.type` according to the matching code in the open "conservationMeasuresType" codelist and mapping the further explanation to its `.description`. @@ -299,14 +281,12 @@ } ] } -- id: "2.6" +- id: '2.6' title: Climate and disaster risk assessment module: Environment and climate indicator: Climate and disaster risk - disclosure format: |- - Clarify the type of climate and disaster risks to which the project is exposed to (E.g. [document or free text to list and explain risks]). This tends to be part of the appraisal documents.Click here to enter text. - mapping: |- - Project level: Add a document, set its `.documentType` to 'climateAndDisasterRiskAssessment', add a description of the type of climate and disaster risks to which the project is exposed to its `.description` and set `.url` to the URL of the risk assessment document . + disclosure format: Clarify the type of climate and disaster risks to which the project is exposed to (E.g. \[document or free text to list and explain risks\]). This tends to be part of the appraisal documents.Click here to enter text. + mapping: 'Project level: Add a document, set its `.documentType` to ''climateAndDisasterRiskAssessment'', add a description of the type of climate and disaster risks to which the project is exposed to its `.description` and set `.url` to the URL of the risk assessment document .' example: |- { "documents": [ @@ -318,14 +298,13 @@ } ] } -- id: "2.7" +- id: '2.7' title: Climate measures module: Environment and climate indicator: Climate risk disclosure format: |- Clarify whether the project design considered climate change mitigation and/or adaptation measures,. disclosing the design demonstrating how the measures were incorporated. This can comprise, without limitation the following: - use of lower-emission sources of energy use of lower-emission materials use of recycled and reused materials @@ -338,11 +317,9 @@ assessment of rising sea levels others (explain) - And [Document]). - - Click here to enter text. + And \[Document\]). mapping: |- - Project level: + Project level: For each measure add a `ClimateMeasure` object to the `environment.climateMeasures` array, setting it's `.type` according to the matching code in the open climateMeasuresType codelist and mapping the further explanation to its `.description`. @@ -365,22 +342,22 @@ } ] } -- id: "2.8" +- id: '2.8' title: Forecast of greenhouse gas emissions module: Environment and climate indicator: Climate risk - disclosure format: |- - Disclose the forecast greenhouse gas emissions related to the project, informing the calculation, the methodology applied and where the calculation can be found (E.g. [amount] and [free text for methodology clarification]). Click here to enter text. + disclosure format: Disclose the forecast greenhouse gas emissions related to the project, informing the calculation, the methodology applied and where the calculation can be found (E.g. \[amount\] and \[free text for methodology clarification\]). Click here to enter text. mapping: |- - Project-level: + Project-level: 1. Add a `Metric` object to the `.forecasts` array. 2. Set the metric's `.title` to "Greenhouse gas emissions (carbon dioxide equivalent)" and map the methodology clarification to its `.description`. 3. Add an `Observation` object to the metric's `.observations` array and: - - Map the amount of greenhouse gas emissions in tonnes of CO2 equivalent to the observation's `.measure` - - Set the `.unit.name` to "Tonne (metric ton)", `.unit.scheme` to 'UNCEFACT' and `.unit.id` to "TNE" + + - Map the amount of greenhouse gas emissions in tonnes of CO2 equivalent to the observation's `.measure` + - Set the `.unit.name` to "Tonne (metric ton)", `.unit.scheme` to 'UNCEFACT' and `.unit.id` to "TNE" - Set `.period` to the period covered by the forecast. 4. If supporting documentation is available, publish in documents, with `.documentType` set to 'GhgEmissionForecast' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. @@ -416,16 +393,12 @@ } ] } -- id: "2.9" +- id: '2.9' title: Environmental certifications module: Environment and climate indicator: Climate management - disclosure format: |- - Disclose environmental and/or climate related certifications issued for contractors and subcontractors such as ISO 14001 for environmental management (E.g. [Document]). - - Click here to enter text - mapping: |- - Contracting process level: Publish in `documents`, with `.documentType` set to 'contractorEnvironmentalCertification' and include a short description and/or a link to a document providing details. + disclosure format: Disclose environmental and/or climate related certifications issued for contractors and subcontractors such as ISO 14001 for environmental management (E.g. \[Document\]). + mapping: 'Contracting process level: Publish in `documents`, with `.documentType` set to ''contractorEnvironmentalCertification'' and include a short description and/or a link to a document providing details.' example: |- { "contractingProcesses": [ @@ -443,14 +416,12 @@ } ] } -- id: "2.10" +- id: '2.10' title: Decommissioning plans module: Environment and climate indicator: Climate management - disclosure format: |- - Disclose the decommissioning plans for the project assets [document].Click here to enter text. - mapping: |- - Project level: Publish in `documents`, with `.documentType` set to 'decommissioningPlans' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + disclosure format: Disclose the decommissioning plans for the project assets \[document\].Click here to enter text. + mapping: 'Project level: Publish in `documents`, with `.documentType` set to ''decommissioningPlans'' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`.' example: |- { "documents": [ @@ -461,19 +432,20 @@ } ] } -- id: "2.11" +- id: '2.11' title: Decommissioning cost forecast module: Environment and climate indicator: Climate management - disclosure format: |- - Disclose the forecast decommissioning costs for the project assets [value, currency]. + disclosure format: Disclose the forecast decommissioning costs for the project assets \[value, currency\]. mapping: |- Project level: 1. Add a `CostMeasurement` object to the `.costMeasurements` array and set: - - `.id` incrementally - - `.status` to 'endOfLifeForecast' - - `.date` to the date that the forecast was prepared. + + - `.id` incrementally + - `.status` to 'endOfLifeForecast' + - `.date` to the date that the forecast was prepared. + 2. Add a `CostGroup` object to the cost measurement's `.costGroups` array, set its `.id` incrementally and set its `.category` to 'endOfLife' 3. Add a `Cost` object to the cost group's `.costs` array, set its `.id` incrementally and set its `.value` to the amount and currency of the forecast decommissioning costs. example: |- @@ -501,20 +473,20 @@ } ] } -- id: "3.1" - title: Climate objective (Identification) +- id: '3.1' + title: Climate objective (Identification) module: Climate finance indicator: Project theme disclosure format: |- - Disclose the main climate objective that the project addresses. - - Select from a list: - Eg: - · mitigation - · adaptation - · cross-cutting - mapping: |- - Project level: Add the relevant code from the climateChangeGoal codelist to the `environment.climateChangeGoal` array + Disclose the main climate objective that the project addresses. + + Select from a list: + Eg: + + - mitigation + - adaptation + - cross-cutting + mapping: 'Project level: Add the relevant code from the climateChangeGoal codelist to the `environment.climateChangeGoal` array' example: |- { "environment": { @@ -523,7 +495,7 @@ ] } } -- id: "3.2" +- id: '3.2' title: Financial instrument (preparation) module: Climate finance indicator: Financial mechanism @@ -535,8 +507,7 @@ grant equity guarantees - mapping: |- - Project level: For each instrument, add a `finance` object to the `budget.finance` array. Set the `.id` appropriately. Set the `.financeCategory` to the matching code from the financeCategory codelist. + mapping: 'Project level: For each instrument, add a `finance` object to the `budget.finance` array. Set the `.id` appropriately. Set the `.financeCategory` to the matching code from the financeCategory codelist.' example: |- { "budget": { @@ -549,15 +520,12 @@ ] } } - -- id: "3.3" +- id: '3.3' title: Climate transformation (identification) module: Climate finance indicator: Model of change - disclosure format: |- - Clarify the theory of change, systemic transition or transformation that is intended [free text to explain]. - mapping: |- - Project level: Publish in documents, with `.documentType` set to 'climateTransformation' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + disclosure format: Clarify the theory of change, systemic transition or transformation that is intended \[free text to explain\]. + mapping: 'Project level: Publish in documents, with `.documentType` set to ''climateTransformation'' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`.' example: |- { "documents": [ @@ -570,23 +538,19 @@ } ] } -- id: "3.4" - title: Climate finance decision-maker (Identification) +- id: '3.4' + title: Climate finance decision-maker (Identification) module: Climate finance indicator: Decision-making process - disclosure format: |- - Identify who approved the climate finance investment in the country (organization, party, role) - mapping: |- - - example: |- -- id: "3.5" - title: Nationally Determined Contributions (NDC) (Identification) + disclosure format: Identify who approved the climate finance investment in the country (organization, party, role) + mapping: '' + example: '' +- id: '3.5' + title: Nationally Determined Contributions (NDC) (Identification) module: Climate finance indicator: Policy coherence - disclosure format: |- - Select from a list of international commitments and clarify how the project is aligned with it [codelist, free text to explain]. - mapping: |- - See mapping for data point "Policy coherence" in Institutional extension adding the selected codes to the `policyAlighment.policies` array. + disclosure format: Select from a list of international commitments and clarify how the project is aligned with it \[codelist, free text to explain\]. + mapping: See mapping for data point "Policy coherence" in Institutional extension adding the selected codes to the `policyAlighment.policies` array. example: |- { "policyAlignment": { @@ -605,36 +569,29 @@ } ] } -- id: "3.6" +- id: '3.6' title: Paris Agreement (Identification) module: Climate finance indicator: Policy coherence - disclosure format: |- - Select from a list of international commitments and clarify how the project is aligned with it [codelist, free text to explain]. - mapping: |- - See mapping for data point "Policy coherence" in Institutional extension adding `parisAgreement` to the `policyAlighment.policies` array. - example: |- - -- id: "3.7" + disclosure format: Select from a list of international commitments and clarify how the project is aligned with it \[codelist, free text to explain\]. + mapping: See mapping for data point "Policy coherence" in Institutional extension adding `parisAgreement` to the `policyAlighment.policies` array. + example: '' +- id: '3.7' title: Beneficiaries (Preparation) module: Climate finance indicator: Beneficiary population disclosure format: |- - Disclose who is the climate finance investment intended to benefit [free text to explain the beneficiaries] and number of beneficiaries. [Select from the list: + Disclose who is the climate finance investment intended to benefit \[free text to explain the beneficiaries\] and number of beneficiaries. \[Select from the list: Direct - Indirect] - mapping: |- - - example: |- - -- id: "3.8" + Indirect\] + mapping: '' + example: '' +- id: '3.8' title: Amount of investment (Preparation) module: Climate finance indicator: Economic viability - disclosure format: |- - Disclose the quantum of the climate finance investment [value, currency]. - mapping: |- - Project level: For each financing instrument, add the value and currency to the`.value` in the `finance` object in `budget.finance` + disclosure format: Disclose the quantum of the climate finance investment \[value, currency\]. + mapping: 'Project level: For each financing instrument, add the value and currency to the`.value` in the `finance` object in `budget.finance`' example: |- { "budget": { @@ -649,15 +606,14 @@ ] } } -- id: "3.9" +- id: '3.9' title: Funding source (Preparation) module: Climate finance indicator: Economic viability - disclosure format: |- - Disclose who is providing the finance [party/organization/role] + disclosure format: Disclose who is providing the finance \[party/organization/role\] mapping: |- Project level: Add the organization to the `parties` array and add 'funder' to their `.roles` array. - Map the organization's `.id` from the party array to `financingParty.id` in the `budget.finance` + Map the organization's `.id` from the party array to `financingParty.id` in the `budget.finance` example: |- { "parties": [ @@ -681,14 +637,13 @@ ] } } -- id: "3.10" +- id: '3.10' title: Green Climate Fund Accredited Entity (Preparation) module: Climate finance indicator: Accessibility - disclosure format: |- - For projects financed by the Green Climate Fund, disclose the accredited entities through which GCF resources are accessed. + disclosure format: For projects financed by the Green Climate Fund, disclose the accredited entities through which GCF resources are accessed. mapping: |- - Project level: + Project level: Add each accredited entity organization to the `parties` array and add 'gcfAccreditedEntity' to its `.roles` array. example: |- @@ -703,7 +658,7 @@ } ] } -- id: "3.11" +- id: '3.11' title: Accredited Entity Type (preparation) module: Climate finance indicator: Accessibility @@ -716,55 +671,42 @@ national regional international - mapping: |- - - example: |- -- id: "3.12" + mapping: '' + example: '' +- id: '3.12' title: Project preparation costs (preparation) module: Climate finance indicator: Accessibility/ Project viability - disclosure format: |- - Disclose the amounts invested in project preparation [value, currency] - mapping: |- - - example: |- - -- id: "3.13" + disclosure format: Disclose the amounts invested in project preparation \[value, currency\] + mapping: '' + example: '' +- id: '3.13' title: Project preparation period (preparation) module: Climate finance - indicator: Accessibility/ efficiency - disclosure format: |- - Disclose dates for project preparation [start date, end date] - mapping: |- - - example: |- - -- id: "3.14" + indicator: Accessibility/ efficiency + disclosure format: Disclose dates for project preparation \[start date, end date\] + mapping: '' + example: '' +- id: '3.14' title: Project approval period (preparation) module: Climate finance indicator: Accessibility - disclosure format: |- - Disclose dates for project approval [submission date, approval date] - mapping: |- - - example: |- - -- id: "3.15" + disclosure format: Disclose dates for project approval \[submission date, approval date\] + mapping: '' + example: '' +- id: '3.15' title: Ratio of co-finance (Preparation) module: Climate finance indicator: Economic viability disclosure format: |- - Disclose the ratio of co-finance. Select from a list to specify amounts. - - Eg: - Domestic mobilisations [value or NA] - Private Finance [value or NA] + Disclose the ratio of co-finance. Select from a list to specify amounts. + Eg:\ + Domestic mobilisations \[value or NA\] + Private Finance \[value or NA\] mapping: |- Project level: - - For each co-financing arrangement add a new `finance` object to the `budget.finance` array. Map the value and currency to the objects `.value`. Add the financing party to the parties array and add `funder` to their `roles` array. Map the funders `id` and `name` to the `.financingParty` object in the `finance` object. example: |- { @@ -811,7 +753,7 @@ ] } } -- id: "3.16" +- id: '3.16' title: Terms of climate finance (Preparation) module: Climate finance indicator: Economic viability @@ -823,21 +765,16 @@ Interest (%) Service fee (per annum) Commitment fee (per annum) - mapping: |- - - example: |- - -- id: "3.17" + mapping: '' + example: '' +- id: '3.17' title: Carbon efficiency (Preparation) module: Climate finance indicator: Climate impact - disclosure format: |- - Disclose the cost per tonne of CO2 equivalent [value, currency]. - mapping: |- - Publish the cost in `environment.abatementCost`. If supporting documentation is available, publish in documents with `.documentType` set to 'abatementCostMethodology'. - example: |- - -- id: "3.18" + disclosure format: Disclose the cost per tonne of CO2 equivalent \[value, currency\]. + mapping: Publish the cost in `environment.abatementCost`. If supporting documentation is available, publish in documents with `.documentType` set to 'abatementCostMethodology'. + example: '' +- id: '3.18' title: Non-climate co-benefits (Preparation) module: Climate finance indicator: Non-climate impact @@ -847,9 +784,8 @@ social environmental gender empowerment - [add free text to explain the co-benefits] - mapping: |- - Project level: For each impact identified add a `benefit` object to the `benefits` array and assign it a locally unique `id`. Set the `title` as the list code and add details explaining the benefit to `.description`. + \[add free text to explain the co-benefits\] + mapping: 'Project level: For each impact identified add a `benefit` object to the `benefits` array and assign it a locally unique `id`. Set the `title` as the list code and add details explaining the benefit to `.description`.' example: |- { "benefits": [ @@ -860,27 +796,21 @@ } ] } -- id: "3.19" +- id: '3.19' title: Public consultation meetings (Preparation) module: Climate finance - indicator: Public participation - disclosure format: |- - Disclose the occurrence of public meetings with communities and impacted groups including the minutes, number of the participants, dates and location of these meetings (E.g. Meeting 1 [date] [location] [number of participants] [Document], Meeting 2 [date] [location] [number of participants], [Document]). - mapping: |- - See mapping for data point "Public consultation meetings" in the Social extension - example: |- - -- id: "3.20" + indicator: Public participation + disclosure format: Disclose the occurrence of public meetings with communities and impacted groups including the minutes, number of the participants, dates and location of these meetings (E.g. Meeting 1 \[date\] \[location\] \[number of participants\] \[Document\], Meeting 2 \[date\] \[location\] \[number of participants\], \[Document\]). + mapping: See mapping for data point "Public consultation meetings" in the Social extension + example: '' +- id: '3.20' title: Disbursement records module: Climate finance indicator: Efficiency - disclosure format: |- - Disbursements dates according to financial agreement versus actual disbursements dates [value, currency, date] - mapping: |- - - example: |- - -- id: "3.21" + disclosure format: Disbursements dates according to financial agreement versus actual disbursements dates \[value, currency, date\] + mapping: '' + example: '' +- id: '3.21' title: Type of project monitoring module: Climate finance indicator: KPIs @@ -889,15 +819,13 @@ internal external mixed - mapping: |- - - example: |- -- id: "3.22" + mapping: '' + example: '' +- id: '3.22' title: Performance monitoring (Implementation) module: Climate finance indicator: KPIs - disclosure format: |- - Disclose Key Performance Indicators adopted by the project (E.g. [free text]). + disclosure format: Disclose Key Performance Indicators adopted by the project (E.g. \[free text\]). mapping: |- Project level: @@ -911,12 +839,11 @@ } ] } -- id: "3.23" +- id: '3.23' title: Reporting period module: Climate finance indicator: KPIs - disclosure format: |- - It could be quarterly, annually, biannually, etc. [free text] + disclosure format: It could be quarterly, annually, biannually, etc. \[free text\] mapping: |- Project level: @@ -931,24 +858,19 @@ } ] } -- id: "3.24" +- id: '3.24' title: Oversight reports (implementation) module: Climate finance indicator: Anti-corruption impact - disclosure format: |- - [document] - mapping: |- - - example: |- - -- id: "3.25" + disclosure format: \[document\] + mapping: '' + example: '' +- id: '3.25' title: Independent monitoring (Implementation) module: Climate finance indicator: Anti-corruption impact - disclosure format: |- - Identify the entities acting as independent monitors of the project (E.g. [free text]) - mapping: |- - Project level: Add an entry to `parties` with 'independentMonitor' included in its `.roles`. + disclosure format: Identify the entities acting as independent monitors of the project (E.g. \[free text\]) + mapping: 'Project level: Add an entry to `parties` with ''independentMonitor'' included in its `.roles`.' example: |- { "parties": [ @@ -961,63 +883,61 @@ } ] } -- id: "3.26" +- id: '3.26' title: Independent evaluation (Implementation) module: Climate finance indicator: Long-term project impact - disclosure format: |- - Disclose technical audits produced at end of the project (E.g. [free text]. - mapping: |- - Project level: Add a document, set its `.documentType` to 'technicalAuditReport', add a description of the reports findings to its `.description` and set `.url` to the URL of the document that details the audit (if available). If multiple reports have been produced add a document for each one. + disclosure format: Disclose technical audits produced at end of the project (E.g. \[free text\]. + mapping: 'Project level: Add a document, set its `.documentType` to ''technicalAuditReport'', add a description of the reports findings to its `.description` and set `.url` to the URL of the document that details the audit (if available). If multiple reports have been produced add a document for each one.' example: |- - { - "documents": [ { - "id": "1", - "documentType": "technicalAuditReport", - "description": "The project has been constructed as specified…", - "url": "http://example.com/technicalAuditReport.pdf" + "documents": [ + { + "id": "1", + "documentType": "technicalAuditReport", + "description": "The project has been constructed as specified...", + "url": "http://example.com/technicalAuditReport.pdf", + "pageStart": "13", + "pageEnd": "14" + } + ] } - ] - } -- id: "3.27" +- id: '3.27' title: Impact measurement (Operation) module: Climate finance indicator: Long-term project impact - disclosure format: |- - Clarify the methodology or system to measure the long-term impact of the project solution (E.g. [free text]. - mapping: |- - Project level: Publish in documents, with `.documentType` set to 'impactMethodology' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + disclosure format: Clarify the methodology or system to measure the long-term impact of the project solution (E.g. \[free text\]. + mapping: 'Project level: Publish in documents, with `.documentType` set to ''impactMethodology'' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`.' example: |- { "documents": [ { "id": "1", "documentType": "impactMethodology", - "description": "The long term impact of this project will be measured according to…", + "description": "The long term impact of this project will be measured according to...", "url": " http://example.com/impactMethodology.pdf " } ] } -- id: "3.28" +- id: '3.28' title: Carbon footprint (Operation) module: Climate finance indicator: Long-term project impact - disclosure format: |- - Disclose the carbon footprint of the project [value, tons CO2 equivalent, free text to describe the methodology used to measure the carbon footprint] + disclosure format: Disclose the carbon footprint of the project \[value, tons CO2 equivalent, free text to describe the methodology used to measure the carbon footprint\] mapping: |- - Project-level: - - 1. Add a `Metric` object to the `.metrics` array. - - 2. Set the metric's `.title` to "Greenhouse gas emissions (carbon dioxide equivalent) - operation" and map the methodology clarification to its `.description`. - - 3. Add an `Observation` object to the metric's `.observations` array and: - - Map the amount of greenhouse gas emissions in tonnes of CO2 equivalent to the observation's `.measure` - - Set the `.unit.name` to "Tonne (metric ton)", `.unit.scheme` to 'UNCEFACT' and `.unit.id` to "TNE" - - Set `.period` to the period covered by the calculation. - - 4. If supporting documentation is available, publish in documents, with `.documentType` set to 'ghgEmissions' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + Project-level: + + 1. Add a `Metric` object to the `.metrics` array. + + 2. Set the metric's `.title` to "Greenhouse gas emissions (carbon dioxide equivalent) - operation" and map the methodology clarification to its `.description`. + + 3. Add an `Observation` object to the metric's `.observations` array and: + + - Map the amount of greenhouse gas emissions in tonnes of CO2 equivalent to the observation's `.measure` + - Set the `.unit.name` to "Tonne (metric ton)", `.unit.scheme` to 'UNCEFACT' and `.unit.id` to "TNE" + - Set `.period` to the period covered by the calculation. + + 4. If supporting documentation is available, publish in documents, with `.documentType` set to 'ghgEmissions' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. example: |- { "metrics": [ @@ -1050,64 +970,52 @@ } ] } -- id: "3.29" +- id: '3.29' title: Infrastructure assets to be decommissioned module: Climate finance indicator: Stranded assets - disclosure format: |- - Identify the asset for disposal purpose [free text] - mapping: |- - - example: |- - -- id: "3.30" + disclosure format: Identify the asset for disposal purpose \[free text\] + mapping: '' + example: '' +- id: '3.30' title: Decommission period module: Climate finance indicator: Stranded assets - disclosure format: |- - Intended start and end dates of decommissioning. - mapping: |- - - example: |- - -- id: "3.31" + disclosure format: Intended start and end dates of decommissioning. + mapping: '' + example: '' +- id: '3.31' title: Decommission plan (Decommission) module: Climate finance - indicator: Climate management - disclosure format: |- - Disclose the technical plan for decommissioning (E.g.: [Doc]). - mapping: |- - See decommissioning plan data point in environment extension - example: |- - -- id: "3.32" + indicator: Climate management + disclosure format: 'Disclose the technical plan for decommissioning (E.g.: \[Doc\]).' + mapping: See decommissioning plan data point in environment extension + example: '' +- id: '3.32' title: Decommission costs (Decommission) module: Climate finance indicator: Climate management - disclosure format: |- - Disclose socio-economic assessments on transition and decommissioning costs (E.g.: [Doc]). - mapping: |- - - example: |- - -- id: "3.33" + disclosure format: 'Disclose socio-economic assessments on transition and decommissioning costs (E.g.: \[Doc\]).' + mapping: '' + example: '' +- id: '3.33' title: Carbon decommission savings (Decommission) module: Climate finance indicator: Climate management - disclosure format: |- - Disclose the evaluation of CO2 savings as a result of decommissioning [value, tons CO2 equivalent] + disclosure format: Disclose the evaluation of CO2 savings as a result of decommissioning \[value, tons CO2 equivalent\] mapping: |- - Project-level: - - 1. Add a `Metric` object to the `.forecasts` array. - - 2. Set the metric's `.title` to "Greenhouse gas emissions reduction (carbon dioxide equivalent)" and map the methodology clarification to its `.description`. - - 3. Add an `Observation` object to the metric's `.observations` array and: - - Map the amount of greenhouse gas emissions in tonnes of CO2 equivalent to the observation's `.measure` - - Set the `.unit.name` to "Tonne (metric ton)", `.unit.scheme` to 'UNCEFACT' and `.unit.id` to "TNE" - - Set `.period` to the period covered by the calculation. - + Project-level: + + 1. Add a `Metric` object to the `.forecasts` array. + + 2. Set the metric's `.title` to "Greenhouse gas emissions reduction (carbon dioxide equivalent)" and map the methodology clarification to its `.description`. + + 3. Add an `Observation` object to the metric's `.observations` array and: + + - Map the amount of greenhouse gas emissions in tonnes of CO2 equivalent to the observation's `.measure` + - Set the `.unit.name` to "Tonne (metric ton)", `.unit.scheme` to 'UNCEFACT' and `.unit.id` to "TNE" + - Set `.period` to the period covered by the calculation. + 4. If supporting documentation is available, publish in documents, with `.documentType` set to 'ghgEmissionsReduction' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. example: |- { @@ -1142,17 +1050,15 @@ } ] } - -- id: "3.34" +- id: '3.34' title: Decommission mitigation plan (Decommission) module: Climate finance indicator: Climate management - disclosure format: |- - Disclose mitigation plan for people and communities affected by decommissioning (E.g.: [Doc]), + disclosure format: 'Disclose mitigation plan for people and communities affected by decommissioning (E.g.: \[Doc\]),' mapping: |- Project level: - Publish in documents, with `.documentType` set to 'socialImpact' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + Publish in documents, with `.documentType` set to 'socialImpact' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. example: |- { "id": "oc4ids-bu3kcz-123456789", @@ -1166,28 +1072,24 @@ } ] } -- id: "4.1" +- id: '4.1' title: Number of beneficiaries (Preparation) module: Social indicator: Beneficiary population - disclosure format: |- - Indicate the number of direct and indirect project beneficiaries (E.g. direct: [number]; indirect: "number"). Beneficiaries are the individuals who benefit directly or indirectly from the project; they are the target group of the infrastructure project and their needs are addressed by the intervention. - mapping: |- - - example: |- - -- id: "4.2" + disclosure format: 'Indicate the number of direct and indirect project beneficiaries (E.g. direct: \[number\]; indirect: "number"). Beneficiaries are the individuals who benefit directly or indirectly from the project; they are the target group of the infrastructure project and their needs are addressed by the intervention.' + mapping: '' + example: '' +- id: '4.2' title: Inclusive design and implementation module: Social indicator: Gender and inclusion - disclosure format: |- - Clarify whether gender, people with disabilities and vulnerable and disadvantaged populations were considered in the project design (e.g. "free text to explain how the design meets inclusion goals" and document to support – the project design) and project implementation (e.g. "free text to explain implementation practices targeting inclusion goals" and document to support – contractor policy and procedures). + disclosure format: Clarify whether gender, people with disabilities and vulnerable and disadvantaged populations were considered in the project design (e.g. "free text to explain how the design meets inclusion goals" and document to support - the project design) and project implementation (e.g. "free text to explain implementation practices targeting inclusion goals" and document to support - contractor policy and procedures). mapping: |- Project-level: 1. Add a document, set its `.documentType` to 'inclusiveDesign' and add an explanation of how the project design meets inclusion goals to its `.description`. If supporting documentation is available, add its URL to `.url`. - 1. Add a document, set its `.documentType` to 'inclusiveImplementation' and add an explanation of how the project imlpementation practices target inclusion goals to its `.description`. If supporting documentation is available, add its URL to `.url`. + 2. Add a document, set its `.documentType` to 'inclusiveImplementation' and add an explanation of how the project imlpementation practices target inclusion goals to its `.description`. If supporting documentation is available, add its URL to `.url`. example: |- { "documents": [ @@ -1205,19 +1107,18 @@ } ] } -- id: "4.3" +- id: '4.3' title: Indigenous land (Preparation) module: Social indicator: Indigenous populations - disclosure format: |- - Identify whether the project is located or cut through indigenous land. Use the information at the LandMark – Global Platform of Indigenous and Community Lands on both databases Indigenous Lands Acknowledged by Government and Not Acknowledged by Government (customary tenure or with formal land claim submitted) to disclose the information. + disclosure format: Identify whether the project is located or cut through indigenous land. Use the information at the LandMark - Global Platform of Indigenous and Community Lands on both databases Indigenous Lands Acknowledged by Government and Not Acknowledged by Government (customary tenure or with formal land claim submitted) to disclose the information. mapping: |- - Project level: + Project level: If the project is located or cut through indigenous land: 1. Set `.social.indigenousLand` to `true` - 2 Add a `Location` object to the `.locations` array, set its `.id` incrementally and set its description to "Indigenous land: ()" substituting and for the name and land category from the Landmark database. + 2 Add a `Location` object to the `.locations` array, set its `.id` incrementally and set its description to "Indigenous land: ()" substituting and for the name and land category from the Landmark database. If the project is not located or cut through indigenous land, set `.social.indigenousLand` to `false`. example: |- @@ -1232,14 +1133,13 @@ } ] } -- id: "4.4" +- id: '4.4' title: Public consultation meetings module: Social indicator: Public participation - disclosure format: |- - Disclose the occurrence of public meetings with communities and impacted groups including meeting invite, the number of the participants, dates and location of these meetings. + disclosure format: Disclose the occurrence of public meetings with communities and impacted groups including meeting invite, the number of the participants, dates and location of these meetings. mapping: |- - Project Level: + Project Level: For each meeting: @@ -1284,14 +1184,12 @@ } ] } -- id: "4.5" +- id: '4.5' title: Land compensation budget module: Social indicator: Land issues - disclosure format: |- - Disclose budget allocated to fund land compensation (E.g. [value]). - mapping: |- - Project Level: Set `.social.landCompensationBudget` to the amount and currency of the budget allocated for land compensation. + disclosure format: Disclose budget allocated to fund land compensation (E.g. \[value\]). + mapping: 'Project Level: Set `.social.landCompensationBudget` to the amount and currency of the budget allocated for land compensation.' example: |- { "social": { @@ -1301,12 +1199,12 @@ } } } -- id: "4.6" +- id: '4.6' title: Labour obligations module: Social indicator: Labour compliance disclosure format: |- - Disclose labour obligations in the construction contract. This can include, without limitation, the following: + Disclose labour obligations in the construction contract. This can include, without limitation, the following: Minimum wage Overtime @@ -1366,14 +1264,12 @@ } ] } -- id: "4.7" +- id: '4.7' title: Labour budget module: Social indicator: Labour compliance - disclosure format: |- - Disclose the amount allocated by the main contractor to cover for labour costs (E.g. [value]). - mapping: |- - Contract level: Publish the amount and currency of the labor budget in `.summary.social.laborBudget`. + disclosure format: Disclose the amount allocated by the main contractor to cover for labour costs (E.g. \[value\]). + mapping: 'Contract level: Publish the amount and currency of the labor budget in `.summary.social.laborBudget`.' example: |- { "contractingProcesses": [ @@ -1390,12 +1286,11 @@ } ] } -- id: "4.8" +- id: '4.8' title: Workers' accidents module: Social indicator: Health and Safety - disclosure format: |- - Disclose summary statistics on accidents and fatalities involving construction workers, and an explanation of these events. + disclosure format: Disclose summary statistics on accidents and fatalities involving construction workers, and an explanation of these events. mapping: |- Project level: @@ -1442,14 +1337,12 @@ } ] } -- id: "4.9" +- id: '4.9' title: Health and safety certifications module: Social indicator: Health and Safety - disclosure format: |- - Disclose labour related certifications issued in relation to project contractors and subcontractors such as ISO 45001 for Health and Safety (E.g. [Document]). - mapping: |- - Contracting process level: Publish in `.summary.documents`, with `.documentType` set to 'contractorHealthAndSafetyCertification' and include a short description and/or a link to a document providing details. + disclosure format: Disclose labour related certifications issued in relation to project contractors and subcontractors such as ISO 45001 for Health and Safety (E.g. \[Document\]). + mapping: 'Contracting process level: Publish in `.summary.documents`, with `.documentType` set to ''contractorHealthAndSafetyCertification'' and include a short description and/or a link to a document providing details.' example: |- { "contractingProcesses": [ @@ -1467,13 +1360,12 @@ } ] } -- id: "4.10" +- id: '4.10' title: Construction materials testing module: Social indicator: Health and Safety disclosure format: |- - Disclose materials tests performed during implementation [document]. These can include, without limitation, the following: - + Disclose materials tests performed during implementation \[document\]. These can include, without limitation, the following: Foundations Pavements @@ -1489,7 +1381,7 @@ Thickness Others (explain) - [Free text to add not mentioned tests] + \[Free text to add not mentioned tests\] Document mapping: |- @@ -1522,14 +1414,12 @@ } ] } -- id: "4.11" +- id: '4.11' title: Building inspections module: Social indicator: Health and Safety - disclosure format: |- - Disclose building inspections during project implementation (E.g. [Document]). - mapping: |- - Project Level: Publish in `documents`, with `.documentType` set to 'buildingInspectionReport' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + disclosure format: Disclose building inspections during project implementation (E.g. \[Document\]). + mapping: 'Project Level: Publish in `documents`, with `.documentType` set to ''buildingInspectionReport'' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`.' example: |- { "documents": [ @@ -1540,19 +1430,18 @@ } ] } -- id: "4.12" +- id: '4.12' title: Jobs generated module: Social indicator: Growth impact - disclosure format: |- - Disclose estimated and actual jobs (direct/indirect) during project implementation and estimated and actual jobs during operation (E.g. [direct: value] [indirect: value]). + disclosure format: 'Disclose estimated and actual jobs (direct/indirect) during project implementation and estimated and actual jobs during operation (E.g. \[direct: value\] \[indirect: value\]).' mapping: |- - Project level: + Project level: Publish job creation estimates: 1. Add a `Metric` object to the `forecasts` array and set its `.title` to 'Jobs created'. - 2. Add an `observation` object for each job relationship – stage pair and set `.dimensions` accordingly, i.e. + 2. Add an `observation` object for each job relationship - stage pair and set `.dimensions` accordingly, i.e. - relationship: direct, stage: implementation - relationship: indirect, stage: implementation @@ -1564,7 +1453,7 @@ Publish actual jobs created: 1. Add a `Metric` object to the `metrics` array and set its `.title` to 'Jobs created'. - 2. Add an `observation` object for each job relationship – stage pair and set `.dimensions` accordingly, i.e. + 2. Add an `observation` object for each job relationship - stage pair and set `.dimensions` accordingly, i.e. - relationship: direct, stage: implementation - relationship: indirect, stage: implementation @@ -1655,26 +1544,24 @@ } ] } -- id: "5.1" +- id: '5.1' title: Policy coherence module: Institutional indicator: Investment transparency disclosure format: |- Disclose documentation that evidences that the project is part of, or aligned with existing plans and policies, providing further details on the project's policy alignment. Consider alignment with: - - SDGs National plan or strategy Infrastructure plan or strategy Sector plan or strategy Procuring entity plan or strategy - Paris Agreement + Paris Agreement Nationally Determined Contributions (NDCs) National Adaptation Plans Medium-term fiscal frameworks/targets - [free text] + \[free text\] mapping: |- Project level: @@ -1713,14 +1600,13 @@ } ] } -- id: "5.2" +- id: '5.2' title: Freedom of information requests module: Institutional indicator: Access to information - disclosure format: |- - Disclose Freedom of Information (FoI) requests that have been presented in relation to the project [E.g. Document]. Note that FoI requests can also be known as access to information requests. + disclosure format: Disclose Freedom of Information (FoI) requests that have been presented in relation to the project \[E.g. Document\]. Note that FoI requests can also be known as access to information requests. mapping: |- - Project level: + Project level: For each freedom of information request, add a document, set `.documentType` to 'foiRequest' and set `.url` to the URL at which the request is available example: |- @@ -1733,14 +1619,13 @@ } ] } -- id: "5.3" +- id: '5.3' title: Answers to Freedom of information requests module: Institutional indicator: Access to information - disclosure format: |- - Disclose the responses provided by authorities toFreedom of Information (FoI) requests related to the project (Eg. [Document]). Note that FoI requests may also be known as acccess to information requests. + disclosure format: Disclose the responses provided by authorities toFreedom of Information (FoI) requests related to the project (Eg. \[Document\]). Note that FoI requests may also be known as acccess to information requests. mapping: |- - Project level: + Project level: For each freedom of information request response, add a document, set `.documentType` to 'foiRequestResponse' and set `.url` to the URL at which the response is available. example: |- @@ -1753,14 +1638,13 @@ } ] } -- id: "5.4" +- id: '5.4' title: Lobbying transparency module: Institutional indicator: Access to information - disclosure format: |- - Disclose the occurrence of meetings with interest groups, including the meeting agenda and minutes, the number of the participants, dates and location of these meetings (E.g. Meeting 1 [date] [location] [number of participants] [Document], Meeting 2 [date] [location] [number of participants] [Document]). + disclosure format: Disclose the occurrence of meetings with interest groups, including the meeting agenda and minutes, the number of the participants, dates and location of these meetings (E.g. Meeting 1 \[date\] \[location\] \[number of participants\] \[Document\], Meeting 2 \[date\] \[location\] \[number of participants\] \[Document\]). mapping: |- - Project Level: + Project Level: For each meeting: @@ -1803,22 +1687,18 @@ } ] } -- id: "5.5" +- id: '5.5' title: Beneficial ownership module: Institutional indicator: Access to information - disclosure format: |- - Disclose the beneficial owners of the contractors and suppliers appointed in the project (E.g. [name, identifier]). - mapping: |- - Use modelling from OCDS Beneficial Owners extension - example: |- - -- id: "5.6" + disclosure format: Disclose the beneficial owners of the contractors and suppliers appointed in the project (E.g. \[name, identifier\]). + mapping: Use modelling from OCDS Beneficial Owners extension + example: '' +- id: '5.6' title: Sustainability criteria module: Institutional indicator: Award criteria - disclosure format: |- - Identify the presence of sustainability and non-price attributes in the award criteria. + disclosure format: Identify the presence of sustainability and non-price attributes in the award criteria. mapping: |- Contracting process level: @@ -1842,14 +1722,12 @@ } ] } -- id: "5.7" +- id: '5.7' title: Anti-corruption certifications module: Institutional indicator: Anti-corruption impact - disclosure format: |- - Disclose anti-corruption certifications of the project, such as ISO 37001 on Anti-Bribery Management Systems Standard (E.g. [Document]). - mapping: |- - Project Level: Publish in documents, with .documentType set to 'antiCorruptionCertification' and include a short description and/or a link to a document providing details. + disclosure format: Disclose anti-corruption certifications of the project, such as ISO 37001 on Anti-Bribery Management Systems Standard (E.g. \[Document\]). + mapping: 'Project Level: Publish in documents, with .documentType set to ''antiCorruptionCertification'' and include a short description and/or a link to a document providing details.' example: |- { "documents": [ @@ -1860,14 +1738,12 @@ } ] } -- id: "5.8" - title: Independent monitoring +- id: '5.8' + title: Independent monitoring module: Institutional indicator: Anti-corruption impact - disclosure format: |- - Identify the entities acting as independent monitors of the project (E.g. [free text]) - mapping: |- - Project Level: Add an entry to `parties` with 'independentMonitor' included in its `.roles`. + disclosure format: Identify the entities acting as independent monitors of the project (E.g. \[free text\]) + mapping: 'Project Level: Add an entry to `parties` with ''independentMonitor'' included in its `.roles`.' example: |- { "parties": [ @@ -1880,14 +1756,12 @@ } ] } -- id: "5.9" +- id: '5.9' title: Performance monitoring module: Institutional indicator: KPIs - disclosure format: |- - Disclose Key Performance Indicators adopted by the project (E.g. [free text]). - mapping: |- - Project level: Publish in `metrics`. For each KPI add a Metric object to the metrics array and set the object's fields according to the schema. Prefix the metric's `.title` with "KPI: " + disclosure format: Disclose Key Performance Indicators adopted by the project (E.g. \[free text\]). + mapping: 'Project level: Publish in `metrics`. For each KPI add a Metric object to the metrics array and set the object''s fields according to the schema. Prefix the metric''s `.title` with "KPI: "' example: |- { "metrics": [ @@ -1897,14 +1771,12 @@ } ] } -- id: "5.10" +- id: '5.10' title: Risk management plans module: Institutional indicator: Risk management - disclosure format: |- - Disclose risk management plans prepared for the project (E.g. [Document]). - mapping: |- - Project Level: Publish in documents, with .documentType set to 'riskProvisions' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. + disclosure format: Disclose risk management plans prepared for the project (E.g. \[Document\]). + mapping: 'Project Level: Publish in documents, with .documentType set to ''riskProvisions'' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`.' example: |- { "documents": [ @@ -1915,25 +1787,25 @@ } ] } -- id: "5.11" +- id: '5.11' title: Sustainable sub-sectors module: Institutional indicator: Subsectors disclosure format: |- Identify relevant sub-sectors related to the project scope. - Select from a list (non-exhaustive): + Select from a list (non-exhaustive): + - Renewable energy - solar, wind, - hydropower, - biomass - geothermal - Low carbon transport + solar, wind, + hydropower, + biomass + geothermal + Low carbon transport - Flood protection - energy efficiency, - water and wastewater management - natural resource management + energy efficiency, + water and wastewater management + natural resource management Free text to add not mentioned sub-sectors - mapping: |- - Project Level: Add equivalent code from ProjectSector codelist to sector array. - example: |- + mapping: 'Project Level: Add equivalent code from ProjectSector codelist to sector array.' + example: '' From 01b48d8083710cd6a3ce2af90d7f8256ef8cae06 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 2 Nov 2023 16:19:42 +1300 Subject: [PATCH 06/22] mapping/sustainability.yaml: Lint examples --- mapping/sustainability.yaml | 100 ++++++++++++++++++------------------ 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/mapping/sustainability.yaml b/mapping/sustainability.yaml index 9f5d410f..6064288d 100644 --- a/mapping/sustainability.yaml +++ b/mapping/sustainability.yaml @@ -181,14 +181,14 @@ mapping: 'Project level: Add a document, set its `.documentType` to ''environmentalMeasures'', add a description of the environmental measures adopted to its `.description` and set `.url` to the URL of the document that describes the project''s environmental measures (if available).' example: |- { - "documents": [ - { - "id": "1", - "documentType": "environmentalMeasures", - "description": "The following environmental measures are adopted by the project...", - "url": "http://example.com/documents/environmentalMeasures.pdf" - } - ] + "documents": [ + { + "id": "1", + "documentType": "environmentalMeasures", + "description": "The following environmental measures are adopted by the project...", + "url": "http://example.com/documents/environmentalMeasures.pdf" + } + ] } - id: '2.3' title: Environmental exceptions @@ -515,7 +515,7 @@ { "id": "1", "financeCategory": "seniorDebt", - "concessional": false, + "concessional": false } ] } @@ -594,17 +594,17 @@ mapping: 'Project level: For each financing instrument, add the value and currency to the`.value` in the `finance` object in `budget.finance`' example: |- { - "budget": { - "finance": [ - { - "id": "1", - "value": { - "amount": "3000000", - "currency": "EUR" + "budget": { + "finance": [ + { + "id": "1", + "value": { + "amount": "3000000", + "currency": "EUR" + } } - } - ] - } + ] + } } - id: '3.9' title: Funding source (Preparation) @@ -850,13 +850,13 @@ For each KPI metric add the sentence "To be reported XXX" where XXX is the reporting frequency to the metrics `.description`. example: |- { - "metrics": [ - { - "id": "1", - "title": "KPI: Capacity utilization", - "description": "To be reported annually." - } - ] + "metrics": [ + { + "id": "1", + "title": "KPI: Capacity utilization", + "description": "To be reported annually." + } + ] } - id: '3.24' title: Oversight reports (implementation) @@ -1574,31 +1574,31 @@ If further documentation of the project's policy alignment is available, add a document with `.documentType` set to 'policyAlignment', `url` set to the URL at which the documentation can be accessed. example: |- { - "additionalClassifications": [ - { - "scheme": "sdg", - "id": "6", - "description": "Ensure availability and sustainable management of water and sanitation for all" - }, - { - "scheme": "sdgTarget", - "id": "6.3", - "description": "By 2030, improve water quality by reducing pollution, eliminating dumping and minimizing release of hazardous chemicals and materials, halving the proportion of untreated wastewater and substantially increasing recycling and safe reuse globally" - } - ], - "policyAlignment": { - "policies": [ - "infrastructurePlan" + "additionalClassifications": [ + { + "scheme": "sdg", + "id": "6", + "description": "Ensure availability and sustainable management of water and sanitation for all" + }, + { + "scheme": "sdgTarget", + "id": "6.3", + "description": "By 2030, improve water quality by reducing pollution, eliminating dumping and minimizing release of hazardous chemicals and materials, halving the proportion of untreated wastewater and substantially increasing recycling and safe reuse globally" + } ], - "description": "The project is intended to contribute towards the goals set out in the 2021 Australian Infrastructure Plan." - }, - "documents": [ - { - "id": "1", - "documentType": "policyAlignment", - "url": "http://example.com/infrastructurePlanAlignment.pdf" - } - ] + "policyAlignment": { + "policies": [ + "infrastructurePlan" + ], + "description": "The project is intended to contribute towards the goals set out in the 2021 Australian Infrastructure Plan." + }, + "documents": [ + { + "id": "1", + "documentType": "policyAlignment", + "url": "http://example.com/infrastructurePlanAlignment.pdf" + } + ] } - id: '5.2' title: Freedom of information requests From d4f3a65a80e60daaa7bb2a852b646c3703aa5b2b Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 2 Nov 2023 16:37:20 +1300 Subject: [PATCH 07/22] docs/cost/ids/sustainability.md: Add mapping documentation --- docs/cost/ids/sustainability.md | 3012 ++++++++++++++++++++++++++++++- 1 file changed, 2982 insertions(+), 30 deletions(-) diff --git a/docs/cost/ids/sustainability.md b/docs/cost/ids/sustainability.md index 90e0d131..55e91880 100644 --- a/docs/cost/ids/sustainability.md +++ b/docs/cost/ids/sustainability.md @@ -22,83 +22,3035 @@ This page documents a mapping from the elements in the CoST IDS sustainability m ## Economic and fiscal + +(Procurement strategy (Identification))= + +`````{grid} 2 + +````{grid-item-card} Procurement strategy (Identification) +:columns: 4 +CoST IDS element +^^^ +Disclose the procurement strategy risk assessment. This tends to be part of the decision-making strategy and likely includes discussions regarding capabilities, the delivery model and the rationale for the risk allocation decision. (E.g. \[Document\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +**Project Level:** [Add a project document](../common.md#add-a-project-document) and set `.documentType` to 'procurementStrategyRiskAssessment'. +```json +{ + "documents": [ + { + "id": "1", + "title": "Procurement strategy risk assessment", + "documentType": "procurementStrategyRiskAssessment", + "url": "http://example.com/documents/procurementStrategyRiskAssessment.pdf" + } + ] +} +``` +```` + +````` + + +(Life cycle cost)= + +`````{grid} 2 + +````{grid-item-card} Life cycle cost +:columns: 4 +CoST IDS element +^^^ +Disclose the life cycle cost of the project, which is the cost of an asset throughout its life cycle while fulfilling the performance requirements (ISO 15686-5:2017) (E.g. \[value\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +**Project Level:** Add a `CostMeasurement` object to the `costMeasurements` array. Set `.date` to the date the analysis was prepared. If the cost measurement was performed as part of the project appraisal, set `.stage` to 'preConstruction'. Otherwise, choose an appropriate code from the stage codelist. Map to the cost measurement's `.lifeCycleCost.cost`. +```json +{ + "costMeasurements": [ + { + "id": "1", + "stage": "preConstruction", + "date": "2014-05-01T00:00:00Z", + "lifeCycleCost": { + "cost": { + "amount": 10000000, + "currency": "usd" + } + } + } + ] +} +``` +```` + +````` + + +(Life cycle cost calculation methodology)= + +`````{grid} 2 + +````{grid-item-card} Life cycle cost calculation methodology +:columns: 4 +CoST IDS element +^^^ +Disclose the methodology used to calculate the life-cycle cost. The methodology ought to specify whether income and externalities are included in the calculation and the common date, discount rate and period of analysis used. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +**Project Level:** Publish in documents, with `.documentType` set to 'lifecycleCostCalculationMethodology' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "lifecycleCostCalculationMethodology", + "url": "http://example.com/documents/lifecycleCostCalculationMethodology.pdf" + } + ] +} +``` +```` + +````` + + +(Funding source for preparation, implementation and operation)= + +`````{grid} 2 + +````{grid-item-card} Funding source for preparation, implementation and operation +:columns: 4 +CoST IDS element +^^^ +Name the funding organization(s)/sources of funding for Preparation, Implementation and Operation. If the information is not available for any of the stages, select \['funding/budget source not specified'\] for the respective stage where the nature of the funding/budget source could not be identified. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Budget for preparation, implementation and operation)= + +`````{grid} 2 + +````{grid-item-card} Budget for preparation, implementation and operation +:columns: 4 +CoST IDS element +^^^ +Specify the allocated budget for preparation, implementation, operation. If no amount is allocated for each of the stages, select the option 'amount not allocated" (E.g. Preparation \[currency and amount\], Implementation\[currency and amount\], Operation \[currency and amount\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Cost benefit analysis)= + +`````{grid} 2 + +````{grid-item-card} Cost benefit analysis +:columns: 4 +CoST IDS element +^^^ +Disclose the project cost-benefit analysis. This information tends to be part of the appraisal documents. (E.g. \[Document\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +**Project Level:** Publish in `documents`, with `.documentType` set to 'costBenefitAnalysis' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "costBenefitAnalysis", + "url": "http://example.com/documents/costBenefitAnalysis .pdf" + } + ] +} +``` +```` + +````` + + +(Value for money)= + +`````{grid} 2 + +````{grid-item-card} Value for money +:columns: 4 +CoST IDS element +^^^ +A summary of the value for money analysis carried out for the project, along with supporting figures, calculations and business case, based on projected or actual procurement outcomes. This tends to include considerations of economy, efficiency, effectiveness and equity, and is part of the appraisal documents. (E.g. \[Document\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project Level: Publish in `documents`, with `.documentType` set to 'valueForMoneyAnalysis' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "valueForMoneyAnalysis", + "url": "http://example.com/documents/valueForMoneyAnalysis.pdf" + } + ] +} +``` +```` + +````` + + +(Budget projections)= + +`````{grid} 2 + +````{grid-item-card} Budget projections +:columns: 4 +CoST IDS element +^^^ +In case of multiyear project implementation, disclose information on budget projection for all years of implementation (E.g. Y1: \[currency and amount\], Y2: \[currency and amount\], etc). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Budget shortfall)= + +`````{grid} 2 + +````{grid-item-card} Budget shortfall +:columns: 4 +CoST IDS element +^^^ +Disclose any shortfall in the allocated budget (E.g. \[currency and amount\] and \[free text: reasons for the funding shortfall\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Add a `Metric` object to the `.metrics` array, set its `.id` incrementally and set its `.title` to "Budget shortfall". Add an `Observation` object to the metric's `.observations` array and set + +- `.id` incrementally +- `.value` to the value of the shortfall +- `.notes` to the reasons for the shortfall +- optionally, `.period` to the period to which the shortfall applies +```json +{ + "metrics": [ + { + "id": "1", + "title": "Budget shortfall", + "observations": [ + { + "id": "1", + "period": { + "startDate": "2024-01-01T00:00:00Z", + "endDate": "202-12-31T00:00:00Z" + }, + "value": { + "amount": 2500000, + "currency": "USD" + }, + "notes": "Funding shortfall due to construction overruns and a lack of budgetary approval" + } + ] + } + ] +} +``` +```` + +````` + +## Environment and climate + + +(Environmental impact category)= + +`````{grid} 2 + +````{grid-item-card} Environmental impact category +:columns: 4 +CoST IDS element +^^^ +Indicate the category that reflects the magnitude of environmental impact. Consider the following to rate the project: + +- Category A: projects with potential significant adverse environmental or social risks and/or impacts that are diverse, irreversible, or unprecedented. + +- Category B: projects with potential limited adverse environmental or social risks and/or impacts that are few in number, generally site-specific, largely reversible, and readily addressed through mitigation measures. + +- Category C: projects with minimal or no adverse environmental or social risks and/or impacts. + +(Select from a list: A/B/C - Specify list as IFC's Environmental and Social Categorization). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +1. If an environmental impact assessment was conducted, set `.environment.hasImpactAssessment` to true. If an environmental impact assessment was not conducted, set `environmental.hasImpactAssessment` to false. + +2. Add a `Classification` object to the `.environment.impactClassifications` array, set its `.scheme` to "ifc-environmental-social" and set its `.id` to the letter for the category into which the project falls. +```json +{ + "environment": { + "hasImpactAssessment": true, + "impactClassifications": [ + { + "scheme": "ifc-environmental-social", + "id": "a" + } + ] + } +} +``` +```` + +````` + + +(Environmental measures)= + +`````{grid} 2 + +````{grid-item-card} Environmental measures +:columns: 4 +CoST IDS element +^^^ +Disclose the measures adopted by the project to mitigate and/or remedy the environmental impact (E.g. \[free text justification/explaining the measures adopted\] and document)Click here to enter text. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: Add a document, set its `.documentType` to 'environmentalMeasures', add a description of the environmental measures adopted to its `.description` and set `.url` to the URL of the document that describes the project's environmental measures (if available). +```json +{ + "documents": [ + { + "id": "1", + "documentType": "environmentalMeasures", + "description": "The following environmental measures are adopted by the project...", + "url": "http://example.com/documents/environmentalMeasures.pdf" + } + ] +} +``` +```` + +````` + + +(Environmental exceptions)= + +`````{grid} 2 + +````{grid-item-card} Environmental exceptions +:columns: 4 +CoST IDS element +^^^ +Disclose all exemptions and/or amnesties obtained for the project. (E.g. \[Document\]). This can be planning, environmental, construction and/or operational related. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project Level: Publish in `documents`, with `.documentType` set to 'environmentalExemption' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "environmentalExemption", + "url": "http://example.com/documents/environmentalExemption.pdf" + } + ] +} +``` +```` + +````` + + +(Protected area)= + +`````{grid} 2 + +````{grid-item-card} Protected area +:columns: 4 +CoST IDS element +^^^ +Identify whether the project is located in a protected area. Use the project location/coordinates at the WDPA - World Database of Protected Areas to disclose the information. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +If the project is located in a protected area: + +1. Set `.environment.protectedArea` to true. +2. Add a `Location` object to the `.locations` array, set its `.id` incrementally and set its `.gazetteer.scheme` to 'WDPA_ID' +3. For each protected area in which the project is located, add the area's WDPA_ID to the `.gazetteer.identifiers` array. + +If the project is not located in a protected area, set `.environment.protectedArea` to false. +```json +{ + "environment": { + "protectedArea": true + }, + "locations": [ + { + "id": "1", + "gazetteer": { + "scheme": "WDPA_ID", + "identifiers": [ + "555566673" + ] + } + } + ] +} +``` +```` + +````` + + +(Conservation measures)= + +`````{grid} 2 + +````{grid-item-card} Conservation measures +:columns: 4 +CoST IDS element +^^^ +Disclose and provide further details on the measures adopted by the project to protect and enhance biodiversity. This can comprise, without limitation the following: + +avoidance of ecological sitting +buffers for ecological land +nature-based solutions +land restoration +protection to landscape and historical sites +invasive species management +management of wildlife mortality risk +reduce habitat loss +pollution reduction +soil management +hazardous material management\]) +others (explain) +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +For each measure add a `ConservationMeasure` object to the `environment.conservationMeasures` array, setting its `.type` according to the matching code in the open "conservationMeasuresType" codelist and mapping the further explanation to its `.description`. + +If there is an accompanying document publish in `documents`, with `.documentType` set to 'conservationMeasures' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "environment": { + "conservationMeasures": [ + { + "type": "landRestoration", + "description": "Land restoration measures for the project include..." + } + ] + }, + "documents": [ + { + "id": "1", + "documentType": "conservationMeasures", + "url": "http://example.com/conservationMeasures.pdf" + } + ] +} +``` +```` + +````` + + +(Climate and disaster risk assessment)= + +`````{grid} 2 + +````{grid-item-card} Climate and disaster risk assessment +:columns: 4 +CoST IDS element +^^^ +Clarify the type of climate and disaster risks to which the project is exposed to (E.g. \[document or free text to list and explain risks\]). This tends to be part of the appraisal documents.Click here to enter text. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: Add a document, set its `.documentType` to 'climateAndDisasterRiskAssessment', add a description of the type of climate and disaster risks to which the project is exposed to its `.description` and set `.url` to the URL of the risk assessment document . +```json +{ + "documents": [ + { + "id": "1", + "documentType": "climateAndDisasterRiskAssessment", + "description": "The project is exposed to the following climate and disaster risks...", + "url": "http://example.com/documents/climateAndDisasterRiskAssessment .pdf" + } + ] +} +``` +```` + +````` + + +(Climate measures)= + +`````{grid} 2 + +````{grid-item-card} Climate measures +:columns: 4 +CoST IDS element +^^^ +Clarify whether the project design considered climate change mitigation and/or adaptation measures,. disclosing the design demonstrating how the measures were incorporated. This can comprise, without limitation the following: + +use of lower-emission sources of energy +use of lower-emission materials +use of recycled and reused materials +regenerative design +retrofitting design +use of carbon capture technology +assessment of extreme weather events +assessment of precipitation patterns +assessment of rising temperatures +assessment of rising sea levels +others (explain) + +And \[Document\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +For each measure add a `ClimateMeasure` object to the `environment.climateMeasures` array, setting it's `.type` according to the matching code in the open climateMeasuresType codelist and mapping the further explanation to its `.description`. + +If there is an accompanying document publish in `documents`, with `.documentType` set to 'climateMeasures' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "environment": { + "climateMeasures": [ + { + "type": "regenerativeDesign", + "description": "Regenerative design measures for the project include..." + } + ] + }, + "documents": [ + { + "id": "1", + "documentType": "climateMeasures", + "url": "http://example.com/climateMeasures.pdf" + } + ] +} +``` +```` + +````` + + +(Forecast of greenhouse gas emissions)= + +`````{grid} 2 + +````{grid-item-card} Forecast of greenhouse gas emissions +:columns: 4 +CoST IDS element +^^^ +Disclose the forecast greenhouse gas emissions related to the project, informing the calculation, the methodology applied and where the calculation can be found (E.g. \[amount\] and \[free text for methodology clarification\]). Click here to enter text. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project-level: + +1. Add a `Metric` object to the `.forecasts` array. + +2. Set the metric's `.title` to "Greenhouse gas emissions (carbon dioxide equivalent)" and map the methodology clarification to its `.description`. + +3. Add an `Observation` object to the metric's `.observations` array and: + +- Map the amount of greenhouse gas emissions in tonnes of CO2 equivalent to the observation's `.measure` +- Set the `.unit.name` to "Tonne (metric ton)", `.unit.scheme` to 'UNCEFACT' and `.unit.id` to "TNE" +- Set `.period` to the period covered by the forecast. + +4. If supporting documentation is available, publish in documents, with `.documentType` set to 'GhgEmissionForecast' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "forecasts": [ + { + "id": "1", + "title": "Greenhouse gas emissions (carbon dioxide equivalent)", + "description": "Emission forecasts are calculated using the following methodology...", + "observations": [ + { + "id": "1", + "period": { + "startDate": "2024-01-01T00:00:00Z", + "endDate": "2049-12-31T00:00:00Z" + }, + "measure": 1000000, + "unit": { + "name": "Tonne (metric ton)", + "scheme": "UNCEFACT", + "id": "TNE" + } + } + ] + } + ], + "documents": [ + { + "id": "1", + "documentType": "GhgEmissionForecast", + "url": "http://example.com/GhgEmissionForecast.pdf" + } + ] +} +``` +```` + +````` + + +(Environmental certifications)= + +`````{grid} 2 + +````{grid-item-card} Environmental certifications +:columns: 4 +CoST IDS element +^^^ +Disclose environmental and/or climate related certifications issued for contractors and subcontractors such as ISO 14001 for environmental management (E.g. \[Document\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Contracting process level: Publish in `documents`, with `.documentType` set to 'contractorEnvironmentalCertification' and include a short description and/or a link to a document providing details. +```json +{ + "contractingProcesses": [ + { + "id": "1", + "summary": { + "documents": [ + { + "id": "1", + "documentType": "contractorEnvironmentalCertification", + "url": "http://example.com/documents/contractorEnvironmentalCertification.pdf" + } + ] + } + } + ] +} +``` +```` + +````` + + +(Decommissioning plans)= + +`````{grid} 2 + +````{grid-item-card} Decommissioning plans +:columns: 4 +CoST IDS element +^^^ +Disclose the decommissioning plans for the project assets \[document\].Click here to enter text. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: Publish in `documents`, with `.documentType` set to 'decommissioningPlans' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "decommissioningPlans", + "url": "http://example.com/documents/decommissioningPlans.pdf" + } + ] +} +``` +```` + +````` + + +(Decommissioning cost forecast)= + +`````{grid} 2 + +````{grid-item-card} Decommissioning cost forecast +:columns: 4 +CoST IDS element +^^^ +Disclose the forecast decommissioning costs for the project assets \[value, currency\]. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +1. Add a `CostMeasurement` object to the `.costMeasurements` array and set: + +- `.id` incrementally +- `.status` to 'endOfLifeForecast' +- `.date` to the date that the forecast was prepared. + +2. Add a `CostGroup` object to the cost measurement's `.costGroups` array, set its `.id` incrementally and set its `.category` to 'endOfLife' +3. Add a `Cost` object to the cost group's `.costs` array, set its `.id` incrementally and set its `.value` to the amount and currency of the forecast decommissioning costs. +```json +{ + "costMeasurements": [ + { + "id": "1", + "status": "endOfLifeForecast", + "date": "2024-05-01T00:00:00Z", + "costGroups": [ + { + "id": "1", + "category": "endOfLife", + "costs": [ + { + "id": "1", + "value": { + "amount": 50000000, + "currency": "USD" + } + } + ] + } + ] + } + ] +} +``` +```` + +````` + +## Climate finance + + +(Climate objective (Identification))= + +`````{grid} 2 + +````{grid-item-card} Climate objective (Identification) +:columns: 4 +CoST IDS element +^^^ +Disclose the main climate objective that the project addresses. + +Select from a list: +Eg: + +- mitigation +- adaptation +- cross-cutting +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: Add the relevant code from the climateChangeGoal codelist to the `environment.climateChangeGoal` array +```json +{ + "environment": { + "climateChangeGoals": [ + "mitigation" + ] + } +} +``` +```` + +````` + + +(Financial instrument (preparation))= + +`````{grid} 2 + +````{grid-item-card} Financial instrument (preparation) +:columns: 4 +CoST IDS element +^^^ +Disclose the financial instrument type from the list: +loan +concessional +non-concessional +grant +equity +guarantees +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: For each instrument, add a `finance` object to the `budget.finance` array. Set the `.id` appropriately. Set the `.financeCategory` to the matching code from the financeCategory codelist. +```json +{ + "budget": { + "finance": [ + { + "id": "1", + "financeCategory": "seniorDebt", + "concessional": false + } + ] + } +} +``` +```` + +````` + + +(Climate transformation (identification))= + +`````{grid} 2 + +````{grid-item-card} Climate transformation (identification) +:columns: 4 +CoST IDS element +^^^ +Clarify the theory of change, systemic transition or transformation that is intended \[free text to explain\]. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: Publish in documents, with `.documentType` set to 'climateTransformation' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "climateTransformation", + "url": "http://example.com/climateFinanceReport", + "pageStart": "13", + "pageEnd": "14" + } + ] +} +``` +```` + +````` + + +(Climate finance decision-maker (Identification))= + +`````{grid} 2 + +````{grid-item-card} Climate finance decision-maker (Identification) +:columns: 4 +CoST IDS element +^^^ +Identify who approved the climate finance investment in the country (organization, party, role) +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Nationally Determined Contributions (NDC) (Identification))= + +`````{grid} 2 + +````{grid-item-card} Nationally Determined Contributions (NDC) (Identification) +:columns: 4 +CoST IDS element +^^^ +Select from a list of international commitments and clarify how the project is aligned with it \[codelist, free text to explain\]. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +See mapping for data point "Policy coherence" in Institutional extension adding the selected codes to the `policyAlighment.policies` array. +```json +{ + "policyAlignment": { + "policies": [ + "nationallyDeterminedContributions" + ], + "description": "The project is intended to contribute towards the NDC set out in 2022." + }, + "documents": [ + { + "id": "1", + "documentType": "policyAlignment", + "url": "http://example.com/ndcAlignment.pdf", + "pageStart": "13", + "pageEnd": "14" + } + ] +} +``` +```` + +````` + + +(Paris Agreement (Identification))= + +`````{grid} 2 + +````{grid-item-card} Paris Agreement (Identification) +:columns: 4 +CoST IDS element +^^^ +Select from a list of international commitments and clarify how the project is aligned with it \[codelist, free text to explain\]. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +See mapping for data point "Policy coherence" in Institutional extension adding `parisAgreement` to the `policyAlighment.policies` array. +```json + +``` +```` + +````` + + +(Beneficiaries (Preparation))= + +`````{grid} 2 + +````{grid-item-card} Beneficiaries (Preparation) +:columns: 4 +CoST IDS element +^^^ +Disclose who is the climate finance investment intended to benefit \[free text to explain the beneficiaries\] and number of beneficiaries. \[Select from the list: +Direct +Indirect\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Amount of investment (Preparation))= + +`````{grid} 2 + +````{grid-item-card} Amount of investment (Preparation) +:columns: 4 +CoST IDS element +^^^ +Disclose the quantum of the climate finance investment \[value, currency\]. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: For each financing instrument, add the value and currency to the`.value` in the `finance` object in `budget.finance` +```json +{ + "budget": { + "finance": [ + { + "id": "1", + "value": { + "amount": "3000000", + "currency": "EUR" + } + } + ] + } +} +``` +```` + +````` + + +(Funding source (Preparation))= + +`````{grid} 2 + +````{grid-item-card} Funding source (Preparation) +:columns: 4 +CoST IDS element +^^^ +Disclose who is providing the finance \[party/organization/role\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: Add the organization to the `parties` array and add 'funder' to their `.roles` array. +Map the organization's `.id` from the party array to `financingParty.id` in the `budget.finance` +```json +{ + "parties": [ + { + "id": "1", + "name": "African Development Bank", + "roles": [ + "funder" + ] + } + ], + "budget": { + "finance": [ + { + "id": "1", + "financingParty": { + "id": "1", + "name": "African Development Bank" + } + } + ] + } +} +``` +```` + +````` + + +(Green Climate Fund Accredited Entity (Preparation))= + +`````{grid} 2 + +````{grid-item-card} Green Climate Fund Accredited Entity (Preparation) +:columns: 4 +CoST IDS element +^^^ +For projects financed by the Green Climate Fund, disclose the accredited entities through which GCF resources are accessed. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +Add each accredited entity organization to the `parties` array and add 'gcfAccreditedEntity' to its `.roles` array. +```json +{ + "parties": [ + { + "id": "1", + "name": "Agency for Agricultural Development of Morocco", + "roles": [ + "gcfAccreditedEntity" + ] + } + ] +} +``` +```` + +````` + + +(Accredited Entity Type (preparation))= + +`````{grid} 2 + +````{grid-item-card} Accredited Entity Type (preparation) +:columns: 4 +CoST IDS element +^^^ +Select from the lists: +Private +Public +non-governmental +sub-national +national +regional +international +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Project preparation costs (preparation))= + +`````{grid} 2 + +````{grid-item-card} Project preparation costs (preparation) +:columns: 4 +CoST IDS element +^^^ +Disclose the amounts invested in project preparation \[value, currency\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Project preparation period (preparation))= + +`````{grid} 2 + +````{grid-item-card} Project preparation period (preparation) +:columns: 4 +CoST IDS element +^^^ +Disclose dates for project preparation \[start date, end date\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Project approval period (preparation))= + +`````{grid} 2 + +````{grid-item-card} Project approval period (preparation) +:columns: 4 +CoST IDS element +^^^ +Disclose dates for project approval \[submission date, approval date\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Ratio of co-finance (Preparation))= + +`````{grid} 2 + +````{grid-item-card} Ratio of co-finance (Preparation) +:columns: 4 +CoST IDS element +^^^ +Disclose the ratio of co-finance. Select from a list to specify amounts. + +Eg:\ +Domestic mobilisations \[value or NA\] +Private Finance \[value or NA\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +For each co-financing arrangement add a new `finance` object to the `budget.finance` array. Map the value and currency to the objects `.value`. Add the financing party to the parties array and add `funder` to their `roles` array. Map the funders `id` and `name` to the `.financingParty` object in the `finance` object. +```json +{ + "parties": [ + { + "id": "1", + "name": "Green Climate Fund", + "roles": [ + "funder" + ] + }, + { + "id": "2", + "name": "Agency for Agricultural Development of Morocco", + "roles": [ + "funder" + ] + } + ], + "budget": { + "finance": [ + { + "id": "1", + "financingParty": { + "id": "1", + "name": "Green Climate Fund" + }, + "value": { + "amount": "3000000", + "currency": "USD" + } + }, + { + "id": "2", + "financingParty": { + "id": "2", + "name": "Agency for Agricultural Development of Morocco" + }, + "value": { + "amount": "15000", + "currency": "USD" + } + } + ] + } +} +``` +```` + +````` + + +(Terms of climate finance (Preparation))= + +`````{grid} 2 + +````{grid-item-card} Terms of climate finance (Preparation) +:columns: 4 +CoST IDS element +^^^ +This includes several financial terms: +maturity (years) +Grace period (years) +annual principal repayment years (% of initial principle) +Interest (%) +Service fee (per annum) +Commitment fee (per annum) +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Carbon efficiency (Preparation))= + +`````{grid} 2 + +````{grid-item-card} Carbon efficiency (Preparation) +:columns: 4 +CoST IDS element +^^^ +Disclose the cost per tonne of CO2 equivalent \[value, currency\]. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Publish the cost in `environment.abatementCost`. If supporting documentation is available, publish in documents with `.documentType` set to 'abatementCostMethodology'. +```json + +``` +```` + +````` + + +(Non-climate co-benefits (Preparation))= + +`````{grid} 2 + +````{grid-item-card} Non-climate co-benefits (Preparation) +:columns: 4 +CoST IDS element +^^^ +Identify potential non-climate impacts that have been factored into the project planning. Select from the list: +economic +social +environmental +gender empowerment +\[add free text to explain the co-benefits\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: For each impact identified add a `benefit` object to the `benefits` array and assign it a locally unique `id`. Set the `title` as the list code and add details explaining the benefit to `.description`. +```json +{ + "benefits": [ + { + "id": "1", + "title": "environmental", + "description": "The new water management plant will mean less water is removed from the delta meaning more is left in place for use by the local biome." + } + ] +} +``` +```` + +````` + + +(Public consultation meetings (Preparation))= + +`````{grid} 2 + +````{grid-item-card} Public consultation meetings (Preparation) +:columns: 4 +CoST IDS element +^^^ +Disclose the occurrence of public meetings with communities and impacted groups including the minutes, number of the participants, dates and location of these meetings (E.g. Meeting 1 \[date\] \[location\] \[number of participants\] \[Document\], Meeting 2 \[date\] \[location\] \[number of participants\], \[Document\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +See mapping for data point "Public consultation meetings" in the Social extension +```json + +``` +```` + +````` + + +(Disbursement records)= + +`````{grid} 2 + +````{grid-item-card} Disbursement records +:columns: 4 +CoST IDS element +^^^ +Disbursements dates according to financial agreement versus actual disbursements dates \[value, currency, date\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Type of project monitoring)= + +`````{grid} 2 + +````{grid-item-card} Type of project monitoring +:columns: 4 +CoST IDS element +^^^ +Select from a list: +internal +external +mixed +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Performance monitoring (Implementation))= + +`````{grid} 2 + +````{grid-item-card} Performance monitoring (Implementation) +:columns: 4 +CoST IDS element +^^^ +Disclose Key Performance Indicators adopted by the project (E.g. \[free text\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +For each KPI add a `Metric` object to the `metrics` array and set the object's fields according to the schema. Prefix the metric's `.title` with "KPI". +```json +{ + "metrics": [ + { + "id": "1", + "title": "KPI: Capacity utilization" + } + ] +} +``` +```` + +````` + + +(Reporting period)= + +`````{grid} 2 + +````{grid-item-card} Reporting period +:columns: 4 +CoST IDS element +^^^ +It could be quarterly, annually, biannually, etc. \[free text\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +For each KPI metric add the sentence "To be reported XXX" where XXX is the reporting frequency to the metrics `.description`. +```json +{ + "metrics": [ + { + "id": "1", + "title": "KPI: Capacity utilization", + "description": "To be reported annually." + } + ] +} +``` +```` + +````` + + +(Oversight reports (implementation))= + +`````{grid} 2 + +````{grid-item-card} Oversight reports (implementation) +:columns: 4 +CoST IDS element +^^^ +\[document\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Independent monitoring (Implementation))= + +`````{grid} 2 + +````{grid-item-card} Independent monitoring (Implementation) +:columns: 4 +CoST IDS element +^^^ +Identify the entities acting as independent monitors of the project (E.g. \[free text\]) +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: Add an entry to `parties` with 'independentMonitor' included in its `.roles`. +```json +{ + "parties": [ + { + "id": "1", + "name": "Climate monitor Africa", + "roles": [ + "independentMonitor" + ] + } + ] +} +``` +```` + +````` + + +(Independent evaluation (Implementation))= + +`````{grid} 2 + +````{grid-item-card} Independent evaluation (Implementation) +:columns: 4 +CoST IDS element +^^^ +Disclose technical audits produced at end of the project (E.g. \[free text\]. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: Add a document, set its `.documentType` to 'technicalAuditReport', add a description of the reports findings to its `.description` and set `.url` to the URL of the document that details the audit (if available). If multiple reports have been produced add a document for each one. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "technicalAuditReport", + "description": "The project has been constructed as specified...", + "url": "http://example.com/technicalAuditReport.pdf", + "pageStart": "13", + "pageEnd": "14" + } + ] +} +``` +```` + +````` + + +(Impact measurement (Operation))= + +`````{grid} 2 + +````{grid-item-card} Impact measurement (Operation) +:columns: 4 +CoST IDS element +^^^ +Clarify the methodology or system to measure the long-term impact of the project solution (E.g. \[free text\]. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: Publish in documents, with `.documentType` set to 'impactMethodology' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "impactMethodology", + "description": "The long term impact of this project will be measured according to...", + "url": " http://example.com/impactMethodology.pdf " + } + ] +} +``` +```` + +````` + + +(Carbon footprint (Operation))= + +`````{grid} 2 + +````{grid-item-card} Carbon footprint (Operation) +:columns: 4 +CoST IDS element +^^^ +Disclose the carbon footprint of the project \[value, tons CO2 equivalent, free text to describe the methodology used to measure the carbon footprint\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project-level: + +1. Add a `Metric` object to the `.metrics` array. + +2. Set the metric's `.title` to "Greenhouse gas emissions (carbon dioxide equivalent) - operation" and map the methodology clarification to its `.description`. + +3. Add an `Observation` object to the metric's `.observations` array and: + +- Map the amount of greenhouse gas emissions in tonnes of CO2 equivalent to the observation's `.measure` +- Set the `.unit.name` to "Tonne (metric ton)", `.unit.scheme` to 'UNCEFACT' and `.unit.id` to "TNE" +- Set `.period` to the period covered by the calculation. + +4. If supporting documentation is available, publish in documents, with `.documentType` set to 'ghgEmissions' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "metrics": [ + { + "id": "1", + "title": "Greenhouse gas emissions (carbon dioxide equivalent) - operation", + "description": "Emissions are calculated using the following methodology...", + "observations": [ + { + "id": "1", + "period": { + "startDate": "2024-01-01T00:00:00Z", + "endDate": "2049-12-31T00:00:00Z" + }, + "measure": 1000000, + "unit": { + "name": "Tonne (metric ton)", + "scheme": "UNCEFACT", + "id": "TNE" + } + } + ] + } + ], + "documents": [ + { + "id": "1", + "documentType": "GhgEmissions", + "url": " http://example.com/ghgEmissions.pdf " + } + ] +} +``` +```` + +````` + + +(Infrastructure assets to be decommissioned)= + +`````{grid} 2 + +````{grid-item-card} Infrastructure assets to be decommissioned +:columns: 4 +CoST IDS element +^^^ +Identify the asset for disposal purpose \[free text\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Decommission period)= + +`````{grid} 2 + +````{grid-item-card} Decommission period +:columns: 4 +CoST IDS element +^^^ +Intended start and end dates of decommissioning. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Decommission plan (Decommission))= + +`````{grid} 2 + +````{grid-item-card} Decommission plan (Decommission) +:columns: 4 +CoST IDS element +^^^ +Disclose the technical plan for decommissioning (E.g.: \[Doc\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +See decommissioning plan data point in environment extension +```json + +``` +```` + +````` + + +(Decommission costs (Decommission))= + +`````{grid} 2 + +````{grid-item-card} Decommission costs (Decommission) +:columns: 4 +CoST IDS element +^^^ +Disclose socio-economic assessments on transition and decommissioning costs (E.g.: \[Doc\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Carbon decommission savings (Decommission))= + +`````{grid} 2 + +````{grid-item-card} Carbon decommission savings (Decommission) +:columns: 4 +CoST IDS element +^^^ +Disclose the evaluation of CO2 savings as a result of decommissioning \[value, tons CO2 equivalent\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project-level: + +1. Add a `Metric` object to the `.forecasts` array. + +2. Set the metric's `.title` to "Greenhouse gas emissions reduction (carbon dioxide equivalent)" and map the methodology clarification to its `.description`. + +3. Add an `Observation` object to the metric's `.observations` array and: + +- Map the amount of greenhouse gas emissions in tonnes of CO2 equivalent to the observation's `.measure` +- Set the `.unit.name` to "Tonne (metric ton)", `.unit.scheme` to 'UNCEFACT' and `.unit.id` to "TNE" +- Set `.period` to the period covered by the calculation. + +4. If supporting documentation is available, publish in documents, with `.documentType` set to 'ghgEmissionsReduction' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "id": "oc4ids-bu3kcz-123456789", + "forecasts": [ + { + "id": "1", + "title": "Greenhouse gas emissions reduction (carbon dioxide equivalent)", + "description": "Emission reduction forecasts are calculated using the following methodology...", + "observations": [ + { + "id": "1", + "period": { + "startDate": "2024-01-01T00:00:00Z", + "endDate": "2049-12-31T00:00:00Z" + }, + "measure": 1000000, + "unit": { + "name": "Tonne (metric ton)", + "scheme": "UNCEFACT", + "id": "TNE" + } + } + ] + } + ], + "documents": [ + { + "id": "1", + "documentType": "ghgEmissionsReduction", + "url": " http://example.com/GhgEmissionsReduction.pdf " + } + ] +} +``` +```` + +````` + + +(Decommission mitigation plan (Decommission))= + +`````{grid} 2 + +````{grid-item-card} Decommission mitigation plan (Decommission) +:columns: 4 +CoST IDS element +^^^ +Disclose mitigation plan for people and communities affected by decommissioning (E.g.: \[Doc\]), +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +Publish in documents, with `.documentType` set to 'socialImpact' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "id": "oc4ids-bu3kcz-123456789", + "documents": [ + { + "id": "1", + "documentType": "socialImpact", + "url": "http://example.com/socialImpact.pdf", + "pageStart": "13", + "pageEnd": "14" + } + ] +} +``` +```` + +````` + +## Social + + +(Number of beneficiaries (Preparation))= + +`````{grid} 2 + +````{grid-item-card} Number of beneficiaries (Preparation) +:columns: 4 +CoST IDS element +^^^ +Indicate the number of direct and indirect project beneficiaries (E.g. direct: \[number\]; indirect: "number"). Beneficiaries are the individuals who benefit directly or indirectly from the project; they are the target group of the infrastructure project and their needs are addressed by the intervention. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ + +```json + +``` +```` + +````` + + +(Inclusive design and implementation)= + +`````{grid} 2 + +````{grid-item-card} Inclusive design and implementation +:columns: 4 +CoST IDS element +^^^ +Clarify whether gender, people with disabilities and vulnerable and disadvantaged populations were considered in the project design (e.g. "free text to explain how the design meets inclusion goals" and document to support - the project design) and project implementation (e.g. "free text to explain implementation practices targeting inclusion goals" and document to support - contractor policy and procedures). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project-level: + +1. Add a document, set its `.documentType` to 'inclusiveDesign' and add an explanation of how the project design meets inclusion goals to its `.description`. If supporting documentation is available, add its URL to `.url`. + +2. Add a document, set its `.documentType` to 'inclusiveImplementation' and add an explanation of how the project imlpementation practices target inclusion goals to its `.description`. If supporting documentation is available, add its URL to `.url`. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "inclusiveDesign", + "description": "The project's design meets its inclusion goals by...", + "url": "http://example.com/documents/inclusiveDesign.pdf" + }, + { + "id": "2", + "documentType": "inclusiveImplementation", + "description": "The project's implementation practices target inclusion goals by...", + "url": "http://example.com/documents/inclusiveImplementation.pdf" + } + ] +} +``` +```` + +````` + + +(Indigenous land (Preparation))= + +`````{grid} 2 + +````{grid-item-card} Indigenous land (Preparation) +:columns: 4 +CoST IDS element +^^^ +Identify whether the project is located or cut through indigenous land. Use the information at the LandMark - Global Platform of Indigenous and Community Lands on both databases Indigenous Lands Acknowledged by Government and Not Acknowledged by Government (customary tenure or with formal land claim submitted) to disclose the information. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +If the project is located or cut through indigenous land: + +1. Set `.social.indigenousLand` to `true` + 2 Add a `Location` object to the `.locations` array, set its `.id` incrementally and set its description to "Indigenous land: ()" substituting and for the name and land category from the Landmark database. + +If the project is not located or cut through indigenous land, set `.social.indigenousLand` to `false`. +```json +{ + "social": { + "indigenousLand": true + }, + "locations": [ + { + "id": "1", + "description": "Indigenous land: Section 1 Block III Rowallan Survey District (Maori Freehold Land)" + } + ] +} +``` +```` + +````` + + +(Public consultation meetings)= + +`````{grid} 2 + +````{grid-item-card} Public consultation meetings +:columns: 4 +CoST IDS element +^^^ +Disclose the occurrence of public meetings with communities and impacted groups including meeting invite, the number of the participants, dates and location of these meetings. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project Level: + +For each meeting: + +1. Publish the meeting invite. Add a document, set its `.documentType` to 'consultationMeetingInvite' and its `.url` to the URL at which the meeting invite is available. + +2. Publish the meeting details. Add a `Meeting` object to the `.social.consultationMeetings` array and set: + +- `.id` incrementally +- `.date` to the date of the meeting +- `.address` to the address of the meeting +- `.participantCount` to the number of people that participated in the meeting + +3. Publish the meeting minutes. Add a document, set its `.documentType` to 'consultationMeetingMinutes' and its `.url` to the URL at which the meeting minutes are available. +```json +{ + "social": { + "consultationMeetings": [ + { + "id": "1", + "date": "2024-01-01T00:00:00Z", + "address": { + "streetAddress": "1600 Amphitheatre Pkwy", + "locality": "Mountain View", + "region": "CA", + "postalCode": "94043", + "countryName": "United States" + }, + "participantCount": 12 + } + ] + }, + "documents": [ + { + "id": "1", + "documentType": "consultationMeetingInvite", + "url": "http://example.com/consultationMeetingInvite.pdf" + }, + { + "id": "2", + "documentType": "consultationMeetingMinutes", + "url": "http://example.com/consultationMeetingMinutes.pdf" + } + ] +} +``` +```` + +````` + + +(Land compensation budget)= + +`````{grid} 2 + +````{grid-item-card} Land compensation budget +:columns: 4 +CoST IDS element +^^^ +Disclose budget allocated to fund land compensation (E.g. \[value\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project Level: Set `.social.landCompensationBudget` to the amount and currency of the budget allocated for land compensation. +```json +{ + "social": { + "landCompensationBudget": { + "amount": 1000000, + "currency": "USD" + } + } +} +``` +```` + +````` + + +(Labour obligations)= + +`````{grid} 2 + +````{grid-item-card} Labour obligations +:columns: 4 +CoST IDS element +^^^ +Disclose labour obligations in the construction contract. This can include, without limitation, the following: + +Minimum wage +Overtime +Prohibition of forced labour +Prohibition of child labour +Equal opportunity +Non-discrimination +Freedom of association +Grievance mechanism +Working at height +Underground work +Handling of materials/equipment +Monitoring of accidents +Traffic management +Accommodation +Protective equipment +Others (explain) +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Contracting process level: + +Publish a summary of the labor obligations: + +1. For each labor obligation in the contract, add a code from the laborObligations codelist to the`.summary.social.laborObligations.obligations` array. +2. Optionally, add a further explanation of the labor obligations to `.summary.social.laborObligations.description`. + +Publish the bidding documents that specify labor obligations: Add a document to `.summary.documents`, set its `.id` incrementally, set its `.documentType` to 'biddingDocuments' and set its `.url` to the URL at which the documents are available. + +Publish the signed contract that includes labor obligations: Add a document to `.summary.documents`, set its `.id` incrementally, set its `.documentType` to 'contractSigned' and set its `.url` to the URL at which the signed contract that includes labor obligations is accessible. +```json +{ + "contractingProcesses": [ + { + "id": "1", + "summary": { + "social": { + "laborObligations": { + "obligations": [ + "minimumWage", + "overtime" + ], + "description": "The contract's labor obligations include a minimum wage of $20 per hour and an overtime limit of 10 hours per week." + } + }, + "documents": [ + { + "id": "1", + "documentType": "biddingDocuments", + "url": "http://example.com/biddingDocuments.pdf" + }, + { + "id": "2", + "documentType": "contractSigned", + "url": "http://example.com/contractSigned.pdf" + } + ] + } + } + ] +} +``` +```` + +````` + + +(Labour budget)= + +`````{grid} 2 + +````{grid-item-card} Labour budget +:columns: 4 +CoST IDS element +^^^ +Disclose the amount allocated by the main contractor to cover for labour costs (E.g. \[value\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Contract level: Publish the amount and currency of the labor budget in `.summary.social.laborBudget`. +```json +{ + "contractingProcesses": [ + { + "id": "1", + "summary": { + "social": { + "laborBudget": { + "amount": 10000000, + "currency": "USD" + } + } + } + } + ] +} +``` +```` + +````` + + +(Workers' accidents)= + +`````{grid} 2 + +````{grid-item-card} Workers' accidents +:columns: 4 +CoST IDS element +^^^ +Disclose summary statistics on accidents and fatalities involving construction workers, and an explanation of these events. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +Publish summary statistics on worker accidents: + +1. Add a `Metric` object to the `.metrics` array, set its `.id` incrementally and set its `.title` to "Worker accidents". +2. For each reporting period, add an `Observation` object to the metric's `.observations` array, set its `.id` incrementally, set its `.period` to the reporting period and set its `.measure` to the number of accidents. If further details available, add them to the observation's `.notes` field. + +Publish summary statistics on worker fatalities: + +1. Add a `Metric` object to the `.metrics` array, set its `.id` incrementally and set its `.title` to "Worker fatalities". +2. For each reporting period, add an `Observation` object to the metric's `.observations` array, set its `.id` incrementally, set its `.period` to the reporting period and set its `.measure` to the number of fatalities. If further details available, add them to the observation's `.notes` field. +```json +{ + "metrics": [ + { + "id": "1", + "title": "Worker accidents", + "observations": [ + { + "id": "1", + "period": { + "startDate": "2024-01-01T00:00:00Z", + "endDate": "2024-06-30T00:00:00Z" + }, + "measure": 12, + "notes": "In H1 2024, most accidents were related to..." + } + ] + }, + { + "id": "2", + "title": "Worker fatalities", + "observations": [ + { + "id": "1", + "period": { + "startDate": "2024-01-01T00:00:00Z", + "endDate": "2024-06-30T00:00:00Z" + }, + "measure": 0 + } + ] + } + ] +} +``` +```` + +````` + + +(Health and safety certifications)= + +`````{grid} 2 + +````{grid-item-card} Health and safety certifications +:columns: 4 +CoST IDS element +^^^ +Disclose labour related certifications issued in relation to project contractors and subcontractors such as ISO 45001 for Health and Safety (E.g. \[Document\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Contracting process level: Publish in `.summary.documents`, with `.documentType` set to 'contractorHealthAndSafetyCertification' and include a short description and/or a link to a document providing details. +```json +{ + "contractingProcesses": [ + { + "id": "1", + "summary": { + "documents": [ + { + "id": "1", + "documentType": "contractorHealthAndSafetyCertification", + "url": "http://example.com/documents/contractorHealthAndSafetyCertification.pdf" + } + ] + } + } + ] +} +``` +```` + +````` + + +(Construction materials testing)= + +`````{grid} 2 + +````{grid-item-card} Construction materials testing +:columns: 4 +CoST IDS element +^^^ +Disclose materials tests performed during implementation \[document\]. These can include, without limitation, the following: + +Foundations +Pavements +Soil +Steel structure +Asphalt +Retaining walls +Concrete +Masonry +Roofs +Compression +Compaction +Thickness +Others (explain) + +\[Free text to add not mentioned tests\] + +Document +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +Publish a summarry of the material tests: + +1. For each material test, add a code from the materialTests codelist to the`.social.healthAndSafety.materialTests.tests` array. +2. Optionally, add a further explanation of the material tests to `.social.healthAndSafety.materialTests.description`. + +Publish test results: For each test result, add a document, set `.documentType` to 'materialTestResults' and set `.url` to the URL at which the document is accessible. +```json +{ + "social": { + "healthAndSafety": { + "materialTests": { + "tests": [ + "retainingWalls", + "roofs" + ], + "description": "Tests were conducted of the main retaining wall and of the roof of each structure according to..." + } + } + }, + "documents": [ + { + "id": "1", + "documentType": "materialTestResults", + "url": "http://example.com/materialTestResults.pdf" + } + ] +} +``` +```` + +````` + + +(Building inspections)= + `````{grid} 2 -````{grid-item-card} Procurement strategy +````{grid-item-card} Building inspections :columns: 4 CoST IDS element ^^^ -Disclose the procurement strategy risk assessment. This tends to be part of the decision-making strategy and likely includes discussions regarding capabilities, the delivery model and the rationale for the risk allocation decision. (E.g. [Document]). +Disclose building inspections during project implementation (E.g. \[Document\]). +```` +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project Level: Publish in `documents`, with `.documentType` set to 'buildingInspectionReport' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "buildingInspectionReport", + "url": "http://example.com/buildingInspectionReport.pdf" + } + ] +} +``` ```` +````` + + +(Jobs generated)= + +`````{grid} 2 + +````{grid-item-card} Jobs generated +:columns: 4 +CoST IDS element +^^^ +Disclose estimated and actual jobs (direct/indirect) during project implementation and estimated and actual jobs during operation (E.g. \[direct: value\] \[indirect: value\]). +```` ````{grid-item-card} :columns: 8 OC4IDS mapping ^^^ -**Project Level:** Publish in documents, with `.documentType` set to 'procurementStrategyRiskAssessment' and include a short description and/or a link to a document providing details. +Project level: + +Publish job creation estimates: + +1. Add a `Metric` object to the `forecasts` array and set its `.title` to 'Jobs created'. +2. Add an `observation` object for each job relationship - stage pair and set `.dimensions` accordingly, i.e. + +- relationship: direct, stage: implementation +- relationship: indirect, stage: implementation +- relationship: direct, stage: operation +- relationship: indirect, stage: operation + +3. Record the estimated number of jobs created for each relationship and stage in the relevant observation's `.measure`. + +Publish actual jobs created: + +1. Add a `Metric` object to the `metrics` array and set its `.title` to 'Jobs created'. +2. Add an `observation` object for each job relationship - stage pair and set `.dimensions` accordingly, i.e. +- relationship: direct, stage: implementation +- relationship: indirect, stage: implementation +- relationship: direct, stage: operation +- relationship: indirect, stage: operation + +3. Record the actual number of jobs created for each relationship and stage in the relevant observation's `.measure`. ```json { - "documents": [ - { - "id": "1", - "documentType": "procurementStrategyRiskAssessment", - "url": "http://example.com/documents/procurementStrategyRiskAssessment.pdf" - } - ] + "forecasts": [ + { + "id": "1", + "title": "Jobs created", + "observations": [ + { + "id": "1", + "measure": 1000, + "dimensions": { + "relationship": "direct", + "stage": "implementation" + } + }, + { + "id": "2", + "measure": 5000, + "dimensions": { + "relationship": "indirect", + "stage": "implementation" + } + }, + { + "id": "3", + "measure": 300, + "dimensions": { + "relationship": "direct", + "stage": "operation" + } + }, + { + "id": "4", + "measure": 2000, + "dimensions": { + "relationship": "indirect", + "stage": "operation" + } + } + ] + } + ], + "metrics": [ + { + "id": "1", + "title": "Jobs created", + "observations": [ + { + "id": "1", + "measure": 979, + "dimensions": { + "relationship": "direct", + "stage": "implementation" + } + }, + { + "id": "2", + "measure": 4120, + "dimensions": { + "relationship": "indirect", + "stage": "implementation" + } + }, + { + "id": "3", + "measure": 295, + "dimensions": { + "relationship": "direct", + "stage": "operation" + } + }, + { + "id": "4", + "measure": 1875, + "dimensions": { + "relationship": "indirect", + "stage": "operation" + } + } + ] + } + ] } ``` +```` + +````` + +## Institutional + + +(Policy coherence)= + +`````{grid} 2 + +````{grid-item-card} Policy coherence +:columns: 4 +CoST IDS element +^^^ +Disclose documentation that evidences that the project is part of, or aligned with existing plans and policies, providing further details on the project's policy alignment. Consider alignment with: + +SDGs +National plan or strategy +Infrastructure plan or strategy +Sector plan or strategy +Procuring entity plan or strategy +Paris Agreement +Nationally Determined Contributions (NDCs) +National Adaptation Plans +Medium-term fiscal frameworks/targets + +\[free text\] +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +For each plan or policy to which the project is aligned, add a code from the policyAlignment codelist to the `.policyAlignment.policies` array. Add a further explanation of the project's policy alignment to `.policyAlignment.description`. + +For each United Nations Sustainable Development Goal to which the project is aligned, add a `Classification` object to the `.additionalClassifications` array, set its `.scheme` to 'sdg', set its `.id` to the goal's number and set its `.description` to the goal's title. +For each United Nations Sustainable Development Goal Target to which the project is aligned, add a `Classification` object to the `.additionalClassifications` array, set its `.scheme` to 'sdgTarget', set its `.id` to the target's number and set its `.description` to the target's title. + +If further documentation of the project's policy alignment is available, add a document with `.documentType` set to 'policyAlignment', `url` set to the URL at which the documentation can be accessed. +```json +{ + "additionalClassifications": [ + { + "scheme": "sdg", + "id": "6", + "description": "Ensure availability and sustainable management of water and sanitation for all" + }, + { + "scheme": "sdgTarget", + "id": "6.3", + "description": "By 2030, improve water quality by reducing pollution, eliminating dumping and minimizing release of hazardous chemicals and materials, halving the proportion of untreated wastewater and substantially increasing recycling and safe reuse globally" + } + ], + "policyAlignment": { + "policies": [ + "infrastructurePlan" + ], + "description": "The project is intended to contribute towards the goals set out in the 2021 Australian Infrastructure Plan." + }, + "documents": [ + { + "id": "1", + "documentType": "policyAlignment", + "url": "http://example.com/infrastructurePlanAlignment.pdf" + } + ] +} +``` ```` ````` + +(Freedom of information requests)= + `````{grid} 2 -````{grid-item-card} Life cycle cost +````{grid-item-card} Freedom of information requests +:columns: 4 +CoST IDS element +^^^ +Disclose Freedom of Information (FoI) requests that have been presented in relation to the project \[E.g. Document\]. Note that FoI requests can also be known as access to information requests. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +For each freedom of information request, add a document, set `.documentType` to 'foiRequest' and set `.url` to the URL at which the request is available +```json +{ + "documents": [ + { + "id": "1", + "documentType": "foiRequest", + "url": "http://example.com/foiRequest-1.pdf" + } + ] +} +``` +```` + +````` + + +(Answers to Freedom of information requests)= + +`````{grid} 2 + +````{grid-item-card} Answers to Freedom of information requests +:columns: 4 +CoST IDS element +^^^ +Disclose the responses provided by authorities toFreedom of Information (FoI) requests related to the project (Eg. \[Document\]). Note that FoI requests may also be known as acccess to information requests. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: + +For each freedom of information request response, add a document, set `.documentType` to 'foiRequestResponse' and set `.url` to the URL at which the response is available. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "foiRequest", + "url": "http://example.com/foiRequest-1.pdf" + } + ] +} +``` +```` + +````` + + +(Lobbying transparency)= + +`````{grid} 2 + +````{grid-item-card} Lobbying transparency +:columns: 4 +CoST IDS element +^^^ +Disclose the occurrence of meetings with interest groups, including the meeting agenda and minutes, the number of the participants, dates and location of these meetings (E.g. Meeting 1 \[date\] \[location\] \[number of participants\] \[Document\], Meeting 2 \[date\] \[location\] \[number of participants\] \[Document\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project Level: + +For each meeting: + +1. Publish the meeting agenda. Add a document, set its `.documentType` to 'lobbyingMeetingAgenda' and its `.url` to the URL at which the agenda is available. + +2. Publish the meeting details. Add a `Meeting` object to the `.lobbyingMeetings` array and set: + +- `.id` incrementally +- `.date` to the date of the meeting +- `.address` to the address of the meeting +- `.beneficiary` to the name of the organisation or interest group that ultimately benefits from the lobbying activity + +3. Publish the meeting minutes. Add a document, set its `.documentType` to 'lobbyingMeetingMinutes' and its `.url` to the URL at which the meeting minutes are available. +```json +{ + "lobbyingMeetings": [ + { + "id": "1", + "date": "2024-01-01T00:00:00Z", + "address": { + "streetAddress": "1600 Amphitheatre Pkwy", + "locality": "Mountain View", + "region": "CA", + "postalCode": "94043", + "countryName": "United States" + }, + "beneficiary": "Arup Group" + } + ], + "documents": [ + { + "id": "1", + "documentType": "lobbyingMeetingAgenda", + "url": "http://example.com/lobbyingMeetingAgenda.pdf" + }, + { + "id": "2", + "documentType": "lobbyingMeetingMinutes", + "url": "http://example.com/lobbyingMeetingMinutes.pdf" + } + ] +} +``` +```` + +````` + + +(Beneficial ownership)= + +`````{grid} 2 + +````{grid-item-card} Beneficial ownership +:columns: 4 +CoST IDS element +^^^ +Disclose the beneficial owners of the contractors and suppliers appointed in the project (E.g. \[name, identifier\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Use modelling from OCDS Beneficial Owners extension +```json + +``` +```` + +````` + + +(Sustainability criteria)= + +`````{grid} 2 + +````{grid-item-card} Sustainability criteria :columns: 4 CoST IDS element ^^^ -Disclose the life cycle cost of the project, which is the cost of an asset throughout its life cycle while fulfilling the performance requirements (ISO 15686-5:2017) (E.g. [value]). This tends to be part of the appraisal documents. In this case, manual work will be required to extract the life cycle cost. +Identify the presence of sustainability and non-price attributes in the award criteria. +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Contracting process level: +Add a `Sustainability` object to the `.summary.tender.sustainability` array and add 'awardCriteria' to its `.strategies` array. +```json +{ + "contractingProcesses": [ + { + "id": "1", + "summary": { + "tender": { + "sustainability": [ + { + "strategies": [ + "awardCritera" + ] + } + ] + } + } + } + ] +} +``` ```` +````` + + +(Anti-corruption certifications)= + +`````{grid} 2 + +````{grid-item-card} Anti-corruption certifications +:columns: 4 +CoST IDS element +^^^ +Disclose anti-corruption certifications of the project, such as ISO 37001 on Anti-Bribery Management Systems Standard (E.g. \[Document\]). +```` ````{grid-item-card} :columns: 8 OC4IDS mapping ^^^ -**Project Level:** Add a `CostMeasurement` object to the `costMeasurements` array. Set `.date` to the date the analysis was prepared. If the cost measurement was performed as part of the project appraisal, set `.stage` to ‘preConstruction’. Otherwise, choose an appropriate code from the stage codelist. Map to the cost measurement’s `.lifeCycleCost.cost`. +Project Level: Publish in documents, with .documentType set to 'antiCorruptionCertification' and include a short description and/or a link to a document providing details. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "antiCorruptionCertification", + "url": "http://example.com/ISO37001Certification.pdf" + } + ] +} +``` +```` + +````` + + +(Independent monitoring)= + +`````{grid} 2 + +````{grid-item-card} Independent monitoring +:columns: 4 +CoST IDS element +^^^ +Identify the entities acting as independent monitors of the project (E.g. \[free text\]) +```` +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project Level: Add an entry to `parties` with 'independentMonitor' included in its `.roles`. ```json { - "costMeasurements": [ - { - "id": "1", - "stage": "preConstruction", - "date": "2014-05-01T00:00:00Z", - "lifeCycleCost": { - "cost": { - "amount": 10000000, - "currency": "usd" - } - } - } - ] + "parties": [ + { + "id": "1", + "name": "Transparency International New Zealand", + "roles": [ + "independentMonitor" + ] + } + ] } +``` +```` + +````` + + +(Performance monitoring)= +`````{grid} 2 + +````{grid-item-card} Performance monitoring +:columns: 4 +CoST IDS element +^^^ +Disclose Key Performance Indicators adopted by the project (E.g. \[free text\]). +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project level: Publish in `metrics`. For each KPI add a Metric object to the metrics array and set the object's fields according to the schema. Prefix the metric's `.title` with "KPI: " +```json +{ + "metrics": [ + { + "id": "1", + "title": "KPI: Capacity utilisation" + } + ] +} ``` +```` + +````` + + +(Risk management plans)= + +`````{grid} 2 + +````{grid-item-card} Risk management plans +:columns: 4 +CoST IDS element +^^^ +Disclose risk management plans prepared for the project (E.g. \[Document\]). +```` +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project Level: Publish in documents, with .documentType set to 'riskProvisions' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`. +```json +{ + "documents": [ + { + "id": "1", + "documentType": "riskProvisions", + "url": "http://example.com/riskManagementPlan.pdf" + } + ] +} +``` ```` ````` -## Environmental and climate -## Climate finance +(Sustainable sub-sectors)= -## Social +`````{grid} 2 + +````{grid-item-card} Sustainable sub-sectors +:columns: 4 +CoST IDS element +^^^ +Identify relevant sub-sectors related to the project scope. +Select from a list (non-exhaustive): + +- Renewable energy + solar, wind, + hydropower, + biomass + geothermal + Low carbon transport +- Flood protection + energy efficiency, + water and wastewater management + natural resource management + +Free text to add not mentioned sub-sectors +```` + +````{grid-item-card} +:columns: 8 +OC4IDS mapping +^^^ +Project Level: Add equivalent code from ProjectSector codelist to sector array. +```json + +``` +```` + +````` -## Institutional From 16e1ab02511bc05d7a63e6d2042513503ab06144 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 2 Nov 2023 16:42:44 +1300 Subject: [PATCH 08/22] manage.py: Add lint and update-sustainability-docs commands --- manage.py | 169 +++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + 2 files changed, 170 insertions(+) diff --git a/manage.py b/manage.py index b69d5cc7..57e9eb98 100755 --- a/manage.py +++ b/manage.py @@ -1,15 +1,21 @@ #!/usr/bin/env python import csv import json +import json_merge_patch +import mdformat import re import sys import warnings +import yaml from copy import deepcopy from io import StringIO from pathlib import Path import click import requests +from collections import defaultdict +from jsonschema import FormatChecker +from jsonschema.validators import Draft4Validator as validator from ocdsextensionregistry import ProfileBuilder from ocdskit.mapping_sheet import mapping_sheet from ocdskit.schema import add_validation_properties @@ -18,6 +24,19 @@ referencedir = basedir / 'docs' / 'reference' +class Dumper(yaml.SafeDumper): + def ignore_aliases(self, data): + return True + + +def str_representer(dumper, data): + # Use the literal style on multiline strings to reduce quoting, instead of the single-quoted style (default). + return dumper.represent_scalar("tag:yaml.org,2002:str", data, style="|" if "\n" in data else None) + + +Dumper.add_representer(str, str_representer) + + def get(url): """ GETs a URL and returns the response. Raises an exception if the status code is not successful. @@ -34,6 +53,12 @@ def csv_reader(url): return csv.DictReader(StringIO(get(url).text)) +def write_yaml_file(filename, data): + with open(filename, "w") as f: + # Make it easier to see indentation. Avoid line wrapping. sort_keys is True by default. + yaml.dump(data, f, Dumper=Dumper, indent=4, width=1000, sort_keys=False) + + def coerce_to_list(data, key): """ Returns the value of the ``key`` key in the ``data`` mapping. If the value is a string, wraps it in an array. @@ -144,6 +169,18 @@ def schema_action(schema, pointer): traverse(schema_action)(*args) +# From standard-maintenance-scripts/tests/test_readme.py +def set_additional_properties(data, additional_properties): + if isinstance(data, list): + for item in data: + set_additional_properties(item, additional_properties) + elif isinstance(data, dict): + if "properties" in data: + data["additionalProperties"] = additional_properties + for value in data.values(): + set_additional_properties(value, additional_properties) + + def compare(actual, infra_list, ocds_list, prefix, suffix): """ Aborts if ``infra_list`` contains values not in ``actual``, or if ``actual`` contains values not in ``infra_list`` @@ -691,5 +728,137 @@ def copy_element(name, replacements=None, root='definitions'): f.write('\n') +@cli.command() +@click.argument("filename", type=click.Path(exists=True, dir_okay=False)) +@click.option("-a", "--additional-properties", is_flag=True, help="Allow additional properties") +def lint(filename, additional_properties): + + minimal_project = { + "id": "oc4ids-bu3kcz-1", + } + + with (basedir / 'schema' / 'project-level' / 'project-schema.json').open() as f: + schema = json.load(f) + + # Disallow additional properties + set_additional_properties(schema, additional_properties) + format_checker = FormatChecker() + + with open(filename) as f: + elements = yaml.safe_load(f) + + additional_fields = defaultdict(list) + missing_data = defaultdict(list) + + for element in elements: + identifier = element["id"] + title = element["title"] + + # Check for missing data + for key, value in element.items(): + if value == '' or value is None: + missing_data[key].append(f"{identifier} {title}") + + # Format Markdown + for key in ["disclosure format", "mapping"]: + value = element.get(key, "") + element[key] = mdformat.text(value, options={"number": True}).rstrip() + + # Format and validate JSON. + example = element["example"] + if example and example != "N/A": + try: + data = json.loads(example) + element["example"] = json.dumps(data, indent=2).replace("Infinity", "1e9999") + + release = deepcopy(minimal_project) + json_merge_patch.merge(release, data) + + for e in validator(schema, format_checker=format_checker).iter_errors(release): + if e.validator == "additionalProperties": + e.absolute_schema_path[-1] = "properties" + e.absolute_schema_path.append("") + for match in re.findall(r"'(\S+)'", e.message): + e.absolute_schema_path[-1] = match + additional_fields[ + "/".join(e.absolute_schema_path) + .replace("items/properties/", "") + .replace("properties/", "") + ].append([identifier, title]) + else: + click.echo(f"{identifier} ({title}): OC4IDS is invalid: " + f"{e.message} ({'/'.join(e.absolute_schema_path)})") + except json.decoder.JSONDecodeError as e: + click.echo(f"{identifier} ({title}): JSON is invalid: {e}: {example}") + + if additional_fields: + click.echo(f"\nAdditional fields ({len(additional_fields)}):") + click.echo(" field,id,title") + for field, occurrences in sorted(additional_fields.items(), key=lambda item: item[1]): + click.echo(f" {field}{''.join(f',{identifier},{title}' for identifier, title in occurrences)}") + + if missing_data: + for key, occurrences in missing_data.items(): + click.echo(f"\nMissing {key}:") + for occurrence in occurrences: + click.echo(f" {occurrence}") + + write_yaml_file(filename, elements) + + +@cli.command() +def update_sustainability_docs(): + """Update docs/cost/ids/sustainability.md""" + + # Load sustainability modules documentation + with (basedir / 'docs' / 'cost' / 'ids' / 'sustainability.md').open() as f: + docs = f.readlines() + + # Preserve content that appears before the generated reference content for each module + module_index = docs.index("## Economic and fiscal\n") + docs = docs[:module_index] + + # Generate mapping documentation for each module + modules = {} + with (basedir / 'mapping' / 'sustainability.yaml').open() as f: + elements = yaml.safe_load(f) + + for element in elements: + module = element.get("module") + if module not in modules: + modules[module] = [] + + title = element.get("title", "") + modules[module].extend( + [ + f"\n({title})=", + "\n\n`````{grid} 2", + f"\n\n````{{grid-item-card}} {title}", + "\n:columns: 4", + "\nCoST IDS element", + "\n^^^\n", + element.get("disclosure format", ""), + "\n````", + "\n\n````{grid-item-card}", + "\n:columns: 8", + "\nOC4IDS mapping", + "\n^^^\n", + element.get("mapping", ""), + "\n```json\n", + element.get("example", ""), + "\n```", + "\n````", + "\n\n`````\n\n" + ] + ) + + for name, content in modules.items(): + docs.append(f"## {name}\n\n"), + docs.extend(content) + + with (basedir / 'docs' / 'cost' / 'ids' / 'sustainability.md').open('w') as f: + f.writelines(docs) + + if __name__ == '__main__': cli() diff --git a/requirements.txt b/requirements.txt index 3285aa2e..99b2c46c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,7 @@ # Add your own requirements below. +mdformat sphinxcontrib-opencontracting==0.0.8 sphinxcontrib-opendataservices-jsonschema==0.5.1 sphinxcontrib-opendataservices==0.5.0 From a57a934ea16b9b9aa0a34ba84ca3353c32e72006 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 2 Nov 2023 16:47:12 +1300 Subject: [PATCH 09/22] manage.py: Sort imports --- manage.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/manage.py b/manage.py index 57e9eb98..d3b2c468 100755 --- a/manage.py +++ b/manage.py @@ -1,19 +1,19 @@ #!/usr/bin/env python import csv import json -import json_merge_patch -import mdformat import re import sys import warnings -import yaml +from collections import defaultdict from copy import deepcopy from io import StringIO from pathlib import Path import click +import json_merge_patch +import mdformat import requests -from collections import defaultdict +import yaml from jsonschema import FormatChecker from jsonschema.validators import Draft4Validator as validator from ocdsextensionregistry import ProfileBuilder From 34f460db989ddc5f73ffb01513c3b27608e4d98d Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 2 Nov 2023 16:50:51 +1300 Subject: [PATCH 10/22] Update changelog --- docs/reference/changelog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/reference/changelog.md b/docs/reference/changelog.md index e926976d..3d1a076f 100644 --- a/docs/reference/changelog.md +++ b/docs/reference/changelog.md @@ -1,6 +1,6 @@ # Changelog -## [X.X.X] - YYYY-MM-DD +## [0.9.4] - YYYY-MM-DD ### Documentation @@ -12,6 +12,7 @@ * [#371](https://github.com/open-contracting/infrastructure/pull/371) - add link to field level mapping template tutorial. * [#370](https://github.com/open-contracting/infrastructure/pull/370) - improve schema reference documentation and integrate worked example. * [#389](https://github.com/open-contracting/infrastructure/pull/389) - emphasize publishing data throughout a project's lifecycle. +* [#422](https://github.com/open-contracting/infrastructure/pull/422) - add CoST IDS sustainability modules to mapping documentation. ### Schema From fd1885cdfa3064c03fb593678177c817420461b5 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 2 Nov 2023 16:57:49 +1300 Subject: [PATCH 11/22] manage.py: Add comments --- manage.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/manage.py b/manage.py index d3b2c468..23ea5f66 100755 --- a/manage.py +++ b/manage.py @@ -742,8 +742,10 @@ def lint(filename, additional_properties): # Disallow additional properties set_additional_properties(schema, additional_properties) + format_checker = FormatChecker() + # Load sustainability modules mapping with open(filename) as f: elements = yaml.safe_load(f) @@ -810,11 +812,11 @@ def lint(filename, additional_properties): def update_sustainability_docs(): """Update docs/cost/ids/sustainability.md""" - # Load sustainability modules documentation + # Load sustainability mapping documentation with (basedir / 'docs' / 'cost' / 'ids' / 'sustainability.md').open() as f: docs = f.readlines() - # Preserve content that appears before the generated reference content for each module + # Preserve content that appears before the content generated by this function module_index = docs.index("## Economic and fiscal\n") docs = docs[:module_index] From 33c0f786595564c052479e22d35d7f66997f3a9c Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 2 Nov 2023 17:05:38 +1300 Subject: [PATCH 12/22] docs/cost/ids/sustainability.md: Correct typos --- docs/cost/ids/sustainability.md | 2 +- mapping/sustainability.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/cost/ids/sustainability.md b/docs/cost/ids/sustainability.md index 55e91880..740da4b5 100644 --- a/docs/cost/ids/sustainability.md +++ b/docs/cost/ids/sustainability.md @@ -2731,7 +2731,7 @@ For each freedom of information request, add a document, set `.documentType` to :columns: 4 CoST IDS element ^^^ -Disclose the responses provided by authorities toFreedom of Information (FoI) requests related to the project (Eg. \[Document\]). Note that FoI requests may also be known as acccess to information requests. +Disclose the responses provided by authorities to Freedom of Information (FoI) requests related to the project (Eg. \[Document\]). Note that FoI requests may also be known as access to information requests. ```` ````{grid-item-card} diff --git a/mapping/sustainability.yaml b/mapping/sustainability.yaml index 6064288d..5f9d7c7f 100644 --- a/mapping/sustainability.yaml +++ b/mapping/sustainability.yaml @@ -1623,7 +1623,7 @@ title: Answers to Freedom of information requests module: Institutional indicator: Access to information - disclosure format: Disclose the responses provided by authorities toFreedom of Information (FoI) requests related to the project (Eg. \[Document\]). Note that FoI requests may also be known as acccess to information requests. + disclosure format: Disclose the responses provided by authorities to Freedom of Information (FoI) requests related to the project (Eg. \[Document\]). Note that FoI requests may also be known as access to information requests. mapping: |- Project level: From 6bc293f306c5237a3f83daf82755d950bbfdae9a Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 2 Nov 2023 17:37:01 +1300 Subject: [PATCH 13/22] mapping/sustainability.yaml: Remove placeholder text --- mapping/sustainability.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mapping/sustainability.yaml b/mapping/sustainability.yaml index 5f9d7c7f..f81424ee 100644 --- a/mapping/sustainability.yaml +++ b/mapping/sustainability.yaml @@ -177,7 +177,7 @@ title: Environmental measures module: Environment and climate indicator: Environmental impact - disclosure format: Disclose the measures adopted by the project to mitigate and/or remedy the environmental impact (E.g. \[free text justification/explaining the measures adopted\] and document)Click here to enter text. + disclosure format: Disclose the measures adopted by the project to mitigate and/or remedy the environmental impact (E.g. \[free text justification/explaining the measures adopted\] and document)title. mapping: 'Project level: Add a document, set its `.documentType` to ''environmentalMeasures'', add a description of the environmental measures adopted to its `.description` and set `.url` to the URL of the document that describes the project''s environmental measures (if available).' example: |- { @@ -285,7 +285,7 @@ title: Climate and disaster risk assessment module: Environment and climate indicator: Climate and disaster risk - disclosure format: Clarify the type of climate and disaster risks to which the project is exposed to (E.g. \[document or free text to list and explain risks\]). This tends to be part of the appraisal documents.Click here to enter text. + disclosure format: Clarify the type of climate and disaster risks to which the project is exposed to (E.g. \[document or free text to list and explain risks\]). This tends to be part of the appraisal documents.title. mapping: 'Project level: Add a document, set its `.documentType` to ''climateAndDisasterRiskAssessment'', add a description of the type of climate and disaster risks to which the project is exposed to its `.description` and set `.url` to the URL of the risk assessment document .' example: |- { @@ -346,7 +346,7 @@ title: Forecast of greenhouse gas emissions module: Environment and climate indicator: Climate risk - disclosure format: Disclose the forecast greenhouse gas emissions related to the project, informing the calculation, the methodology applied and where the calculation can be found (E.g. \[amount\] and \[free text for methodology clarification\]). Click here to enter text. + disclosure format: Disclose the forecast greenhouse gas emissions related to the project, informing the calculation, the methodology applied and where the calculation can be found (E.g. \[amount\] and \[free text for methodology clarification\]). title. mapping: |- Project-level: @@ -420,7 +420,7 @@ title: Decommissioning plans module: Environment and climate indicator: Climate management - disclosure format: Disclose the decommissioning plans for the project assets \[document\].Click here to enter text. + disclosure format: Disclose the decommissioning plans for the project assets \[document\].title. mapping: 'Project level: Publish in `documents`, with `.documentType` set to ''decommissioningPlans'' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`.' example: |- { From 52ebd183ca53a20aad9cb65e14c4ce6873fb9708 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 2 Nov 2023 17:37:46 +1300 Subject: [PATCH 14/22] mapping/sustainability.yaml: Remove placeholder text --- docs/cost/ids/sustainability.md | 8 ++++---- mapping/sustainability.yaml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/cost/ids/sustainability.md b/docs/cost/ids/sustainability.md index 740da4b5..fee65d6c 100644 --- a/docs/cost/ids/sustainability.md +++ b/docs/cost/ids/sustainability.md @@ -368,7 +368,7 @@ Project level: :columns: 4 CoST IDS element ^^^ -Disclose the measures adopted by the project to mitigate and/or remedy the environmental impact (E.g. \[free text justification/explaining the measures adopted\] and document)Click here to enter text. +Disclose the measures adopted by the project to mitigate and/or remedy the environmental impact (E.g. \[free text justification/explaining the measures adopted\] and document). ```` ````{grid-item-card} @@ -537,7 +537,7 @@ If there is an accompanying document publish in `documents`, with `.documentType :columns: 4 CoST IDS element ^^^ -Clarify the type of climate and disaster risks to which the project is exposed to (E.g. \[document or free text to list and explain risks\]). This tends to be part of the appraisal documents.Click here to enter text. +Clarify the type of climate and disaster risks to which the project is exposed to (E.g. \[document or free text to list and explain risks\]). This tends to be part of the appraisal documents.. ```` ````{grid-item-card} @@ -628,7 +628,7 @@ If there is an accompanying document publish in `documents`, with `.documentType :columns: 4 CoST IDS element ^^^ -Disclose the forecast greenhouse gas emissions related to the project, informing the calculation, the methodology applied and where the calculation can be found (E.g. \[amount\] and \[free text for methodology clarification\]). Click here to enter text. +Disclose the forecast greenhouse gas emissions related to the project, informing the calculation, the methodology applied and where the calculation can be found (E.g. \[amount\] and \[free text for methodology clarification\]). . ```` ````{grid-item-card} @@ -733,7 +733,7 @@ Contracting process level: Publish in `documents`, with `.documentType` set to ' :columns: 4 CoST IDS element ^^^ -Disclose the decommissioning plans for the project assets \[document\].Click here to enter text. +Disclose the decommissioning plans for the project assets \[document\].. ```` ````{grid-item-card} diff --git a/mapping/sustainability.yaml b/mapping/sustainability.yaml index f81424ee..dc3e9b12 100644 --- a/mapping/sustainability.yaml +++ b/mapping/sustainability.yaml @@ -177,7 +177,7 @@ title: Environmental measures module: Environment and climate indicator: Environmental impact - disclosure format: Disclose the measures adopted by the project to mitigate and/or remedy the environmental impact (E.g. \[free text justification/explaining the measures adopted\] and document)title. + disclosure format: Disclose the measures adopted by the project to mitigate and/or remedy the environmental impact (E.g. \[free text justification/explaining the measures adopted\] and document). mapping: 'Project level: Add a document, set its `.documentType` to ''environmentalMeasures'', add a description of the environmental measures adopted to its `.description` and set `.url` to the URL of the document that describes the project''s environmental measures (if available).' example: |- { @@ -285,7 +285,7 @@ title: Climate and disaster risk assessment module: Environment and climate indicator: Climate and disaster risk - disclosure format: Clarify the type of climate and disaster risks to which the project is exposed to (E.g. \[document or free text to list and explain risks\]). This tends to be part of the appraisal documents.title. + disclosure format: Clarify the type of climate and disaster risks to which the project is exposed to (E.g. \[document or free text to list and explain risks\]). This tends to be part of the appraisal documents.. mapping: 'Project level: Add a document, set its `.documentType` to ''climateAndDisasterRiskAssessment'', add a description of the type of climate and disaster risks to which the project is exposed to its `.description` and set `.url` to the URL of the risk assessment document .' example: |- { @@ -346,7 +346,7 @@ title: Forecast of greenhouse gas emissions module: Environment and climate indicator: Climate risk - disclosure format: Disclose the forecast greenhouse gas emissions related to the project, informing the calculation, the methodology applied and where the calculation can be found (E.g. \[amount\] and \[free text for methodology clarification\]). title. + disclosure format: Disclose the forecast greenhouse gas emissions related to the project, informing the calculation, the methodology applied and where the calculation can be found (E.g. \[amount\] and \[free text for methodology clarification\]). . mapping: |- Project-level: @@ -420,7 +420,7 @@ title: Decommissioning plans module: Environment and climate indicator: Climate management - disclosure format: Disclose the decommissioning plans for the project assets \[document\].title. + disclosure format: Disclose the decommissioning plans for the project assets \[document\].. mapping: 'Project level: Publish in `documents`, with `.documentType` set to ''decommissioningPlans'' and include a short description and/or a link to a document providing details. If the details are part of a more general document indicate the relevant section of the document using `.pageStart` and `.pageEnd`.' example: |- { From a568b02a125f25902ce20febe6a7efbfc07d25cc Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Fri, 3 Nov 2023 11:07:40 +1300 Subject: [PATCH 15/22] .github/workflows/spellcheck.yml: Ignore 'TNE' --- .github/workflows/spellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 2bd39615..86e5fabe 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -10,4 +10,4 @@ jobs: with: python-version: '3.10' - run: pip install codespell - - run: codespell -S .git,docson,locale,currency.csv -L zar . + - run: codespell -S .git,docson,locale,currency.csv -L tne,zar . From c6104c6125a01841151d4f10f2d875b438014aac Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Fri, 3 Nov 2023 11:10:08 +1300 Subject: [PATCH 16/22] docs/cost/ids/core.md: Fix heading levels --- docs/cost/ids/core.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/cost/ids/core.md b/docs/cost/ids/core.md index 0155d7b9..dae8e3c1 100644 --- a/docs/cost/ids/core.md +++ b/docs/cost/ids/core.md @@ -8,7 +8,7 @@ ## Project level -## Identification +### Identification ```{csv-table-no-translate} :header-rows: 1 @@ -16,7 +16,7 @@ :file: ../../../build/current_lang/project-level-identification.csv ``` -## Preparation +### Preparation ```{csv-table-no-translate} :header-rows: 1 @@ -24,7 +24,7 @@ :file: ../../../build/current_lang/project-level-preparation.csv ``` -## Project completion +### Project completion ```{csv-table-no-translate} :header-rows: 1 @@ -32,9 +32,9 @@ :file: ../../../build/current_lang/project-level-completion.csv ``` -## Reactive disclosures +### Reactive disclosures -## Identification and preparation +#### Identification and preparation ```{csv-table-no-translate} :header-rows: 1 @@ -42,7 +42,7 @@ :file: ../../../build/current_lang/reactive-project-level-identification-preparation.csv ``` -## Completion +#### Completion ```{csv-table-no-translate} :header-rows: 1 @@ -50,7 +50,7 @@ :file: ../../../build/current_lang/reactive-project-level-completion.csv ``` -## Implementation progress reports +#### Implementation progress reports In addition to the documents listed in the mapping table, you can use OC4IDS to publish structured data on planned and actual physical and financial progress. @@ -224,7 +224,7 @@ You can use the `forecasts` array to publish progress forecasts for different po The mappings in this section relate to the `contractingProcesses` section of the OC4IDS schema, unless otherwise specified. -## Procurement +### Procurement ```{csv-table-no-translate} :header-rows: 1 @@ -232,7 +232,7 @@ The mappings in this section relate to the `contractingProcesses` section of the :file: ../../../build/current_lang/process-level-procurement.csv ``` -## Implementation +### Implementation ```{csv-table-no-translate} :header-rows: 1 @@ -240,9 +240,9 @@ The mappings in this section relate to the `contractingProcesses` section of the :file: ../../../build/current_lang/process-level-implementation.csv ``` -## Reactive disclosures +### Reactive disclosures -## Procurement +#### Procurement ```{csv-table-no-translate} :header-rows: 1 @@ -250,7 +250,7 @@ The mappings in this section relate to the `contractingProcesses` section of the :file: ../../../build/current_lang/reactive-process-level-procurement.csv ``` -## Contract +#### Contract ```{csv-table-no-translate} :header-rows: 1 @@ -258,7 +258,7 @@ The mappings in this section relate to the `contractingProcesses` section of the :file: ../../../build/current_lang/reactive-process-level-contract.csv ``` -## Implementation +#### Implementation ```{csv-table-no-translate} :header-rows: 1 From 4df60d29b313b457a3b943f510c7901edda41806 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Tue, 7 Nov 2023 10:58:00 +1300 Subject: [PATCH 17/22] docs/cost/ocds.md: Fix heading levels, add introductory sentence --- docs/cost/ocds.md | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/docs/cost/ocds.md b/docs/cost/ocds.md index 6b92fc1c..e1139f88 100644 --- a/docs/cost/ocds.md +++ b/docs/cost/ocds.md @@ -1,4 +1,4 @@ -# OCDS to OC4IDS Mapping +# OCDS to OC4IDS mapping +This page provides guidance and documents a mapping from OCDS fields and codes to OC4IDS fields and codes. The organization of the mapping tables reflects the structure of the CoST IDS. + ## Guidance -## Command-line tool and reference implementation +### Command-line tool and reference implementation OC4IDS Kit's [convert-from-ocds](https://oc4idskit.readthedocs.io/en/latest/cli.html#convert-from-ocds) command is a command-line tool and reference implementation for converting OCDS data to OC4IDS format. @@ -20,21 +22,21 @@ OC4IDS Kit's [convert-from-ocds](https://oc4idskit.readthedocs.io/en/latest/cli. However, `convert-from-ocds` does not cover all mappings, nor does it perform currency conversions. Mappings that `convert-from-ocds` does not cover are shown in *italics*. -## Mapping codelists +### Mapping codelists Mappings that depend on the specific classification or codelist used in the OCDS data are not documented in detail, as they can differ by publisher. For example, mapping to the OC4IDS projectSector codelist. -## Alternative mappings +### Alternative mappings Some mappings offer alternatives in case the primary mapping isn't available. For example, for OCDS data in which `planning.project.title` isn't available, you can set the project `title` based on the `tender.title`. In order to provide analysts with additional context, some alternative mappings copy additional fields which don't appear in OC4IDS schema. You ought to remove these fields if you plan to publish your OC4IDS data. -## OCDS extensions +### OCDS extensions Some mappings use fields from [OCDS extensions](https://standard.open-contracting.org/latest/en/guidance/map/extensions/#extensions). In these cases, the names of extensions are noted in parentheses; where possible, alternative mappings are provided that use only fields from the core OCDS schema. -## Handling conflicts and duplicates +### Handling conflicts and duplicates Implementations of the mapping ought to give consideration to: @@ -45,7 +47,7 @@ Implementations of the mapping ought to give consideration to: Read the `convert-from-ocds` [transformation notes](https://oc4idskit.readthedocs.io/en/latest/cli.html#transformation-notes) to learn about how OC4IDS Kit handles the above scenarios. -## Handling multiple currencies +### Handling multiple currencies Some mappings involve converting values in OCDS, which can be in different currencies, to a base currency. @@ -53,9 +55,9 @@ Implementations which include multiple currencies ought to give consideration to ## Mapping -## Project level +### Project level -## Identification +#### Identification ```{csv-table-no-translate} :header-rows: 1 @@ -63,7 +65,7 @@ Implementations which include multiple currencies ought to give consideration to :file: ../../build/current_lang/project-level-identification.csv ``` -## Preparation +#### Preparation ```{csv-table-no-translate} :header-rows: 1 @@ -71,7 +73,7 @@ Implementations which include multiple currencies ought to give consideration to :file: ../../build/current_lang/project-level-preparation.csv ``` -## Project completion +#### Project completion ```{csv-table-no-translate} :header-rows: 1 @@ -79,9 +81,9 @@ Implementations which include multiple currencies ought to give consideration to :file: ../../build/current_lang/project-level-completion.csv ``` -## Reactive disclosures +#### Reactive disclosures -## Identification and preparation +##### Identification and preparation ```{csv-table-no-translate} :header-rows: 1 @@ -89,7 +91,7 @@ Implementations which include multiple currencies ought to give consideration to :file: ../../build/current_lang/reactive-project-level-identification-preparation.csv ``` -## Completion +###### Completion ```{csv-table-no-translate} :header-rows: 1 @@ -97,11 +99,11 @@ Implementations which include multiple currencies ought to give consideration to :file: ../../build/current_lang/reactive-project-level-completion.csv ``` -## Process level +### Process level The mappings in this section relate to the `contractingProcesses` section of the OC4IDS schema, unless otherwise specified. -## Procurement +#### Procurement ```{csv-table-no-translate} :header-rows: 1 @@ -109,7 +111,7 @@ The mappings in this section relate to the `contractingProcesses` section of the :file: ../../build/current_lang/process-level-procurement.csv ``` -## Implementation +#### Implementation Disclosures in the implementation section of the CoST IDS relate to changes to a contract's value, duration or scope that were made after the contract was awarded. @@ -123,9 +125,9 @@ In some cases, OCDS data might include an explanation of changes in the relevant :file: ../../build/current_lang/process-level-implementation.csv ``` -## Reactive disclosures +#### Reactive disclosures -## Procurement +##### Procurement ```{csv-table-no-translate} :header-rows: 1 @@ -133,7 +135,7 @@ In some cases, OCDS data might include an explanation of changes in the relevant :file: ../../build/current_lang/reactive-process-level-procurement.csv ``` -## Contract +##### Contract ```{csv-table-no-translate} :header-rows: 1 @@ -141,7 +143,7 @@ In some cases, OCDS data might include an explanation of changes in the relevant :file: ../../build/current_lang/reactive-process-level-contract.csv ``` -## Implementation +##### Implementation ```{csv-table-no-translate} :header-rows: 1 From c71446fb5f86849bc7575b9811164ed53e27a159 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Tue, 7 Nov 2023 10:58:18 +1300 Subject: [PATCH 18/22] docs/cost/ids/core.md: Fix heading levels, add introductory sentence --- docs/cost/ids/core.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/cost/ids/core.md b/docs/cost/ids/core.md index dae8e3c1..f9cb0b20 100644 --- a/docs/cost/ids/core.md +++ b/docs/cost/ids/core.md @@ -6,6 +6,10 @@ } +This page documents a mapping from the 'core' CoST IDS elements to OC4IDS fields and codes. The organization of the mapping tables reflects the structure of the CoST IDS. + +The CoST IDS sets out a number of disclosure requirements under the heading of 'information for disclosure upon request', also known as 'reactive disclosure'. You can disclose these elements proactively using OC4IDS. Separate tables are provided for project-level and process-level reactive disclosures. + ## Project level ### Identification @@ -50,7 +54,7 @@ :file: ../../../build/current_lang/reactive-project-level-completion.csv ``` -#### Implementation progress reports +##### Implementation progress reports In addition to the documents listed in the mapping table, you can use OC4IDS to publish structured data on planned and actual physical and financial progress. From 842c6183c3349b6712ee938246259906aae68ae6 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Tue, 7 Nov 2023 10:58:30 +1300 Subject: [PATCH 19/22] docs/cost/ids/index.md: Add content --- docs/cost/ids/index.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/cost/ids/index.md b/docs/cost/ids/index.md index cafdec13..c01bfef1 100644 --- a/docs/cost/ids/index.md +++ b/docs/cost/ids/index.md @@ -1,4 +1,9 @@ -# CoST IDS to OC4IDS Mapping +# CoST IDS to OC4IDS mapping + +This section contains a mapping from the CoST IDS to OC4IDS: + +* The [core standard mapping](core) describes a mapping of the proactive and reactive disclosure elements of the 'core' CoST IDS . +* The [sustainability modules mapping](sustainability ) describes a mapping of the optional CoST IDS sustainability modules. ```{toctree} :maxdepth: 1 From 6384d14e16383dc900bea79cb43448e941d9949f Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Tue, 7 Nov 2023 10:59:04 +1300 Subject: [PATCH 20/22] docs/cost/index.md: Use sentence case, move some content to sub-pages --- docs/cost/index.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/cost/index.md b/docs/cost/index.md index 1381cf72..eacdb158 100644 --- a/docs/cost/index.md +++ b/docs/cost/index.md @@ -1,4 +1,4 @@ -# CoST IDS & OCDS Mapping +# CoST IDS & OCDS mapping -This page documents a mapping from the 'core' CoST IDS elements to OC4IDS fields and codes. The organization of the mapping tables reflects the structure of the CoST IDS. +This page documents a mapping from the "core" CoST IDS elements to OC4IDS fields and codes. The organization of the mapping tables reflects the structure of the CoST IDS. -The CoST IDS sets out a number of disclosure requirements under the heading of 'information for disclosure upon request', also known as 'reactive disclosure'. You can disclose these elements proactively using OC4IDS. Separate tables are provided for project-level and process-level reactive disclosures. +The CoST IDS sets out a number of disclosure requirements under the heading of "information for disclosure upon request," also known as "reactive disclosure." You can disclose these elements proactively using OC4IDS. Separate tables are provided for project-level and process-level reactive disclosures. ## Project level diff --git a/docs/cost/ids/index.md b/docs/cost/ids/index.md index c01bfef1..38d67264 100644 --- a/docs/cost/ids/index.md +++ b/docs/cost/ids/index.md @@ -1,9 +1,9 @@ # CoST IDS to OC4IDS mapping -This section contains a mapping from the CoST IDS to OC4IDS: +This section contains mappings from the CoST IDS to OC4IDS: -* The [core standard mapping](core) describes a mapping of the proactive and reactive disclosure elements of the 'core' CoST IDS . -* The [sustainability modules mapping](sustainability ) describes a mapping of the optional CoST IDS sustainability modules. +* The [core standard mapping](core) describes a mapping of the proactive and reactive disclosure elements of the "core" CoST IDS. +* The [sustainability modules mapping](sustainability) describes a mapping of the optional CoST IDS sustainability modules. ```{toctree} :maxdepth: 1 diff --git a/docs/cost/ocds.md b/docs/cost/ocds.md index e1139f88..eb681903 100644 --- a/docs/cost/ocds.md +++ b/docs/cost/ocds.md @@ -91,7 +91,7 @@ Implementations which include multiple currencies ought to give consideration to :file: ../../build/current_lang/reactive-project-level-identification-preparation.csv ``` -###### Completion +##### Completion ```{csv-table-no-translate} :header-rows: 1 From a198afb8f399543876b2b07ff0cd56481760c398 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Tue, 7 Nov 2023 11:49:01 +1300 Subject: [PATCH 22/22] docs/cost/ocds.md: Add note on reactive disclosures --- docs/cost/ocds.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/cost/ocds.md b/docs/cost/ocds.md index eb681903..f3492a81 100644 --- a/docs/cost/ocds.md +++ b/docs/cost/ocds.md @@ -8,6 +8,8 @@ This page provides guidance and documents a mapping from OCDS fields and codes to OC4IDS fields and codes. The organization of the mapping tables reflects the structure of the CoST IDS. +The CoST IDS sets out a number of disclosure requirements under the heading of 'information for disclosure upon request', also known as 'reactive disclosure'. You can disclose these elements proactively using OC4IDS. Separate tables are provided for project-level and process-level reactive disclosures. + ## Guidance ### Command-line tool and reference implementation