diff --git a/docs/_static/i18n.csv b/docs/_static/i18n.csv index 47fee24f..21d3fc95 100644 --- a/docs/_static/i18n.csv +++ b/docs/_static/i18n.csv @@ -490,6 +490,13 @@ social/consultationMeetings/publicOffice/organization/id,Organization ID,True, social/consultationMeetings/publicOffice/jobTitle,Job title,True, environment,Environment,False, environment/goals,Environmental goals,False, +environment/hasImpactAssessment,Has impact assessment,False, +environment/impactCategories,Impact categories,False, +environment/impactCategories,Classification,False, +environment/impactCategories/scheme,Scheme,False, +environment/impactCategories/id,ID,True, +environment/impactCategories/description,Description,True, +environment/impactCategories/uri,URI,False, environment/abatementCost,Abatement cost,False, environment/abatementCost,Value,False, environment/abatementCost/amount,Amount,False, diff --git a/docs/cost/ids/sustainability.md b/docs/cost/ids/sustainability.md index d3d5dea3..fe34aa9d 100644 --- a/docs/cost/ids/sustainability.md +++ b/docs/cost/ids/sustainability.md @@ -330,14 +330,17 @@ 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. +If an environmental impact assessment was conducted: -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. +- Set `.environment.hasImpactAssessment` to `true`. +- Add a `Classification` object to the `.environment.impactCategories` array, set its `.scheme` to "ifc-environmental-social" and set its `.id` to the letter for the category into which the project falls. + +If an environmental impact assessment was not conducted, set `environmental.hasImpactAssessment` to `false`. ```json { "environment": { "hasImpactAssessment": true, - "impactClassifications": [ + "impactCategories": [ { "scheme": "ifc-environmental-social", "id": "a" diff --git a/docs/examples/blank.json b/docs/examples/blank.json index a4796409..ada8b3ed 100644 --- a/docs/examples/blank.json +++ b/docs/examples/blank.json @@ -537,6 +537,13 @@ "goals": [ "string" ], + "hasImpactAssessment": "boolean", + "impactCategories": [ + { + "scheme": "string", + "id": "string" + } + ], "abatementCost": { "amount": "number", "currency": "string from currency codelist" diff --git a/docs/examples/example.json b/docs/examples/example.json index 8abae6e7..1520f29f 100644 --- a/docs/examples/example.json +++ b/docs/examples/example.json @@ -1068,6 +1068,13 @@ "goals": [ "climateChangeMitigation" ], + "hasImpactAssessment": true, + "impactCategories": [ + { + "scheme": "ifc-environmental-social", + "id": "a" + } + ], "abatementCost": { "amount": 12.29, "currency": "USD" diff --git a/docs/reference/changelog.md b/docs/reference/changelog.md index db113cd1..f20ddfa0 100644 --- a/docs/reference/changelog.md +++ b/docs/reference/changelog.md @@ -38,6 +38,8 @@ * `maintenancePeriod` * `decommissioningPeriod` * [#431](https://github.com/open-contracting/infrastructure/pull/431) - `environment.goals` + * [#441](https://github.com/open-contracting/infrastructure/pull/441) - `environment.hasImpactAssessment` + * [#441](https://github.com/open-contracting/infrastructure/pull/441) - `environment.impactCategories` * [#442](https://github.com/open-contracting/infrastructure/pull/442) - `environment.abatementCost` * [#434](https://github.com/open-contracting/infrastructure/pull/434) - `contractingProcesses.summary.tender.sustainability` * [#428](https://github.com/open-contracting/infrastructure/pull/428) - `lobbyingMeetings` diff --git a/docs/reference/schema.md b/docs/reference/schema.md index 6ab3acd2..4941eb3d 100644 --- a/docs/reference/schema.md +++ b/docs/reference/schema.md @@ -324,6 +324,7 @@ Each `Period` has the following fields: This sub-schema is referenced by the following properties: * [`additionalClassifications`](project-schema.json,,additionalClassifications) +* [`environment/impactCategories`](project-schema.json,,environment/impactCategories) Each `Classification` has the following fields: @@ -346,6 +347,11 @@ Each `Classification` has the following fields: :title: additionalClassifications ``` +```{jsoninclude} ../../docs/examples/example.json +:jsonpointer: /projects/0/environment/impactCategories +:title: environment/impactCategories +``` + ```` ````` diff --git a/mapping/sustainability.yaml b/mapping/sustainability.yaml index 43893016..2588f413 100644 --- a/mapping/sustainability.yaml +++ b/mapping/sustainability.yaml @@ -158,14 +158,17 @@ 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. + If an environmental impact assessment was conducted: - 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. + - Set `.environment.hasImpactAssessment` to `true`. + - Add a `Classification` object to the `.environment.impactCategories` array, set its `.scheme` to "ifc-environmental-social" and set its `.id` to the letter for the category into which the project falls. + + If an environmental impact assessment was not conducted, set `environmental.hasImpactAssessment` to `false`. example: |- { "environment": { "hasImpactAssessment": true, - "impactClassifications": [ + "impactCategories": [ { "scheme": "ifc-environmental-social", "id": "a" diff --git a/schema/project-level/codelists/classificationScheme.csv b/schema/project-level/codelists/classificationScheme.csv index 9258445d..6057f7d9 100644 --- a/schema/project-level/codelists/classificationScheme.csv +++ b/schema/project-level/codelists/classificationScheme.csv @@ -1,3 +1,4 @@ Code,Title,Description,Source,Category sdg,Sustainable Development Goals,"The Sustainable Development Goals are a collection of 17 interlinked goals set by the United Nations General Assembly and designed to be a ""blueprint to achieve a better and more sustainable future for all"".",https://sdgs.un.org/goals,purpose sdgTarget,Sustainable Development Goal Targets,The Sustainable Development Goal Targets are specific targets for each Sustainable Development Goal.,https://sdgs.un.org/goals,purpose +ifc-environmental-social,International Finance Corporation’s Policy on environmental and social sustainability,"As part of the review of environmental and social risks and impacts of a proposed investment, IFC uses a process of environmental and social categorization to reflect the magnitude of risks and impacts.",https://www.ifc.org/en/insights-reports/2012/publications-policy-sustainability-2012,purpose diff --git a/schema/project-level/project-schema.json b/schema/project-level/project-schema.json index 0ca5a842..4157cc8a 100644 --- a/schema/project-level/project-schema.json +++ b/schema/project-level/project-schema.json @@ -368,6 +368,21 @@ "openCodelist": false, "minItems": 1 }, + "hasImpactAssessment": { + "title": "Has impact assessment", + "description": "Whether an environmental impact assessment has been conducted.", + "type": "boolean" + }, + "impactCategories": { + "title": "Impact categories", + "description": "The categories of the environmental impact of the project.", + "type": "array", + "items": { + "$ref": "#/definitions/Classification" + }, + "uniqueItems": true, + "minItems": 1 + }, "abatementCost": { "title": "Abatement cost", "description": "The lifetime abatement cost of the project, measured in cost per tonne of CO2 equivalent emissions. That is, the additional cost of reducing greenhouse gas emissions by one tonne compared to the most likely alternative scenario.",