CoST IDS & OCDS Mapping

CoST – the Infrastructure Transparency Initiative (CoST) is the leading global initiative improving transparency and accountability in public infrastructure.

The CoST approach is based on four core features:

  • Disclosure - where procuring entities are asked to follow the CoST Infrastructure Data Standard. This describes 40 items of data that should be proactively disclosed at key stages of an infrastructure project cycle.

  • Assurance - an independent review of the disclosed data by assurance teams based within CoST national programmes. Teams may identify key issues of concern analyzing the data that has been disclosed, and will put technical terms into plain language to allow stakeholders to understand the issues, and hold decision makers to account.

  • Multi-stakeholder working - each CoST national programme is managed by a stakeholder group including government, private sector and civil society.

  • Social accountability - raising awareness of key issues arising from the assurance process, and engaging civil society and media to hold decision makers to account.

The 'Infrastructure Data Standard' is a framework for disclosure which has been adapted by a range of CoST national programmes, who have variously prioritized different elements based on their local needs, or who have included additional elements that they wish to monitor: particularly additional kinds of documentation that should be provided for each infrastructure project.

You can read more about the Infrastructure Data Standard on the CoST website.

Frameworks and standards

There is an important distinction between the Infrastructure Data Standard (IDS) and the Open Contracting Data Standard (OCDS). IDS provides a framework to identify categories of information that should be disclosed. OCDS describes specific fields and how they should be structured as data.

The Open Contracting for Infrastructure Data Standard (OC4IDS) documented on this site acts as a bridge between the IDS framework, and the idea of a more structured technical data standard.

The following tables document two mappings:

  • The CoST IDS to OC4IDS 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 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.

The mapping tables use / notation to reference fields in OCDS data, e.g. /tender/status, and . notation to reference fields in the OC4IDS schema, e.g. .budget.approvalDate.

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

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

CoST IDS element

CoST IDS draft definition

Mapping to OC4IDS

Project owner

Name of the sponsoring Government department

Project Level: Add an Organization object to parties with 'publicAuthority' included in its .roles. Set publicAuthority.name and publicAuthority.id to the .name and .id of the object.

Sector

Develop a list of sectors relevant to country e.g. housing, transport, energy, water etc.

Project Level: Map to the projectSector codelist and publish one or more values in sector. Publish any additional sector classifications from local or other global codelists in additionalClassifications.

Subsector

Develop a subset for each sector e.g. Transport could be subdivided into national highway, local road, railway, port, airport etc.

Project Level: Publish in additionalClassifications

Project name

Specify the project name

Project Level: Publish in title

Project Location

Briefly specify location of the project

Project Level: Publish using the locations fields as an address, geometry (point/line/polygon) or gazetteer entry

Purpose

Specify the socio-economic purpose of the project

Project Level: Publish in purpose; if classified against a codelist, also publish in additionalClassifications.

Project description

Concise description and details of the project

Project Level: Publish in description

Preparation

CoST IDS element

CoST IDS draft definition

Mapping to OC4IDS

Project Scope (main output)

Main outputs from the project that are being taken forward into construction (type, quantity, unit)

Project Level: Publish in documents, with .documentType set to 'projectScope' and include a short description and/or a link to a document providing details

Environmental impact

Briefly describe the environmental impacts and mitigation measures for this project 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.

Project Level: Publish in documents, with .documentType set to 'environmentalImpact' and include a short description and/or a link to a document providing details.

Land and settlement impact

State the amount of land and property that was acquired for the project e.g. 25km2 land, and related impacts e.g. archaeological issues (moved Saxon burial site), local/indigenous settlements (relocated 5 indigenous villages of 500 villagers each), impacts on local businesses e.g. (30 business properties purchased).

Project Level: Publish in documents, with .documentType set to 'landAndSettlementImpact' and include a short description and/or a link to a document providing details.

Contact details

Postal and electronic address of the Project Owner

Project Level: Publish in the .address and .contactPoint of the party with 'publicAuthority' included in its .roles

Funding sources

Name the funding organization(s)/sources of funding

Project Level: If a funding organization is the project owner, add 'funder' to the .roles of the existing entry in parties. Otherwise, add a new entry to parties for each funding organization with 'funder' included in its .roles. When information on the amount provided by each funder is available, use budget.budgetBreakdown to provide details

Project Budget

Specify the projected costs/allocated budget for the project (currency and amount). The budget includes land / property acquisition, environmental mitigation measures, H&S provisions, client, consultant & contractor costs, VAT etc.

Project Level: Publish in budget.amount

Project budget approval date

Date project budget was authorized

Project Level: Publish in budget.approvalDate and include additional document with .documentType of 'budgetApproval' if required

Project completion

CoST IDS element

CoST IDS draft definition

Mapping to OC4IDS

Project status (current)

The current stage of the project. Select from identification, preparation, construction, completion, completed or cancelled.

Project Level: Publish in status

Project completion cost

State projected or actual completion cost (currency and amount)

Project Level: Publish in completion.finalValue

Completion date

State projected or actual completion date

Project Level: Publish in completion.endDate

Project Scope at completion (projected)

Indicate projected or actual scope of project. Aim is to show if the completed project scope differs from the original project scope. Specify main outputs (type, quantity, unit)

Project Level: Publish free text as completion.finalScope and/or include document with .documentType of projectScope and dates and descriptions that show this is final scope at completion

Reasons for project changes

Summary of primary reasons for any changes in scope, time and cost

Project Level: Publish using completion.endDateDetails, completion.finalValueDetails and completion.finalScopeDetails

Reference to audit and evaluation reports

Reference to publicly available technical and financial audits

Project Level: Publish in documents, with .documentType set to 'financialAuditReport' or 'technicalAuditReport' and include a short description and/or a link to a document providing details

Reactive disclosures

Identification and preparation

CoST IDS element

Description

Mapping to OC4IDS

Multi-year programme & Budget

A detailed breakdown of the budget by period and/or participating funders.

For each year, add a BudgetBreakdown object to the budget.BudgetBreakdown array and set its fields as follows:

  • Set its id to the year, e.g. ‘2020’

  • 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

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.

and set .documentType to 'feasibilityStudy'.

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: and set .documentType to ‘environmentalImpact’.

Social impact assessment: 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’.

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.

and set .documentType to ‘resettlementPlan’.

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

  • Set its .name to the name of the procuring entity

  • Set its .role to ‘procuringEntity’

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

Financial agreement

Loan or donation agreement with financing conditions.

and set .documentType to ‘financialAgreement’.

Procurement plan

Documentation that sets out the basis for this particular contracting process.

and set .documentType to ‘procurementPlan’.

Project approval decision

Additional details about the approval of the budget.

and set .documentType to ‘budgetApproval’.

Completion

CoST IDS element

Description

Mapping to OC4IDS

Implementation progress reports

Planned and actual physical and financial progress over time.

Documents

Physical progress reports: and set .documentType to 'physicalProgressReport'.

Financial progress reports: and set .documentType to 'financialProgressReport'.

Data

See

Budget amendment decision

Document accrediting the approval of budget expansion or extension for this project.

and set .documentType to 'budgetAmendmentApproval'.

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.

and set .documentType to 'projectCompletionReport'.

Project evaluation report

Generally published at the conclusion of a project, providing a technical and financial summary of delivery

and set .documentType to 'projectEvaluation'.

Technical audit reports

Documentation of checks that construction work has been undertaken as specified.

and set .documentType to 'technicalAuditReport'.

Financial audit reports

Documentation of checks that a project's financial statements are correct and complete.

and set .documentType to 'financialAuditReport'.

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 required 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:

{
  "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:

{
  "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:

{
  "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

CoST IDS element

CoST IDS draft definition

Mapping to OC4IDS

Procuring entity

Enter name of the organization carrying out the procurement

Project Level: Add an entry to parties with 'procuringEntity' included in its .roles | Contracting process: Record the name and identifier in .summary.tender.procuringEntity

Procuring entity contact details

Postal and Electronic address

Project Level: Publish the postal address in parties.address and the electronic address in parties.contactPoint

Contract administrative entity

Enter name of the organization carrying out the contract administrative entity if different from the Procuring Entity

Project Level: Add an entry to parties with 'administrativeEntity' included in its .roles | Contracting process: Record the name and identifier in .summary.tender.administrativeEntity

Contract status

Select from pre-award, active or closed

Contracting process: Publish in .summary.status using the contractingProcessStatus codelist

Procurement process

Develop a list such as International Competitive Bidding, National Competitive Bidding, Donor Procurement Rules, Framework, Direct Award

Contracting process: Publish in .summary.tender.procurementMethodDetails and map to .summary.tender.procurementMethod

Contract type

Develop a list such as Design, Supervision, Design & Supervision, Design & Build, Construction

Contracting process: Add one or more values to the .summary.nature array. (e.g. ["design", "build"] for a design and build contract)

Number of firms tendering

Number of firms who submit a tender

Contracting process: Publish in .summary.tender.numberOfTenderers

Cost estimate

Currency and amount of the original pre-tender estimate of the contract

Contracting process: Publish in .summary.tender.costEstimate

Contract title

The formal name of the contract

Contracting process: Publish in .summary.title

Contract firm(s)

Legal name of supplier

Project Level: Add an entries to parties with 'supplier' included in their .roles | Contracting process: Add the names and identifiers to the .summary.suppliers array

Contract price

Currency and price at contract award

Contracting process: Publish in .summary.contractValue

Contract scope of work

Main outputs from the contract e.g. detailed design, supervision, project management and or type, quantity, unit for construction

Contracting process: Publish in .summary.description. Additionally detailed documentation may be provided as documents within linked releases

Contract start date and contract period (duration)

Enter dates and Number of weeks from contract start date to (anticipated) completion date

Contracting process: Publish in .summary.contractPeriod

Implementation

CoST IDS element

CoST IDS draft definition

Mapping to OC4IDS

Variation to contract price

Difference between the price at contract award and the current projected price

Contracting process: For each variation, publish an entry with a .date and .description in .summary.modifications with .type of 'value'. Provide the contract value before the variation in .oldContractValue and the contract value after the variation in .newContractValue

Escalation of contract price

Escalation to date of the price of materials, labour, equipment etc. due to fluctuations in inflation, currency etc.

Contracting process: For each escalation, publish an entry with a .date and .description in .summary.modifications with .type of 'value'. Provide the contract value before the escalation in .oldContractValue and the contract value after the escalation in .newContractValue

Variation to contract duration

Difference between original duration at contract award and the current projected duration in weeks.

Contracting process: For each variation, publish an entry with a .date and .description in .summary.modifications with .type of 'duration'. Provide the contract period before the variation in .oldContractPeriod and the contract period after the variation in .newContractPeriod

Variation to contract scope

Any changes between original scope at contract award and the current scope

Contracting process: For each variation, publish an entry with a .date and .description in .summary.modifications with .type of 'scope'

Reasons for price changes

Summary of reasons for primary changes (e.g. variations) that then lead to changes in contract price, major price fluctuations and accumulative increase or decrease in price.

Contracting process: For each variation, provide a .rationale in .summary.modifications.

Reasons for scope and duration changes

Summary of reasons for primary changes (e.g. variations) that then lead to changes in the scope and duration.

Contracting process: For each variation, provide a .rationale in .summary.modifications.

Reactive disclosures

Procurement

CoST IDS element

Description

Mapping to OC4IDS

Contract officials and roles

Name and position of the public official in charge of administration of the contract(s).

From the parties array, get the Organization object whose role is 'administrativeEntity'. If none exists yet:

  • Add an Organization object to the parties array

  • Set its .name to the name of the administrative entity

  • Set its .role to 'administrativeEntity'

Add a Person object to the organization's .people array and:

  • Set its .id incrementally

  • Set its .name to the contract official's name

  • Set its .jobTitle to the contract official's job title

Procurement method

Specify tendering method using the method codelist (open, selective, limited, direct).

Set .summary.tender.procurementMethod to a value from the Method codelist.

Tender documents

Documentation for potential suppliers, describing the goals of the contract (e.g. goods and services to be procured), and the bidding process.

and set .documentType to 'biddingDocuments'.

Tender evaluation results

Documentation on the evaluation of the bids and the application of the evaluation criteria, including the justification for the award.

and set .documentType to 'evaluationReports'.

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.

and set .documentType to 'projectDesignReport'.

Contract

CoST IDS element

Description

Mapping to OC4IDS

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.

and set .documentType to 'contractSigned'.

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:

and set .documentType to 'incorporationCertificate'.

Data:

Add an Organization object to the parties array and:

  • Set its .role to 'supplier'

  • Set its .identifier.id to the registration number

  • Set its .identifier.scheme to the code from org-id.guide for the register the identifier is drawn from

  • Set its .id

Specifications and drawings

Detailed technical information about goods or services to be provided.

and set .documentType to 'technicalSpecifications'.

Implementation

CoST IDS element

Description

Mapping to OC4IDS

List of variations, changes, amendments

Details of changes to the duration, price, scope or other significant features of the contracting process

For each variation, change or amendment, publish an entry with a .date and .description in .summary.modifications.

Set .type based on the type of change and provide the relevant before/after values in .oldContractPeriod, .oldContractValue, ``.newContractPeriod and .newContractValue.

List of escalation approvals

Documentation of one or more approved escalations of the contract price during the project life-cycle.

and set .documentType to 'escalationApprovals'.

Quality assurance reports

Documentation identifying deficiencies in designs, specifications, standards, methods, procedures and practices, and identifying best practices.

and set .documentType to 'qualityAssuranceReport'.

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:

and set .documentType to 'paymentCertificate'.

Contract amendments

A legal document that changes or adds to the terms of an existing contract.

and set .documentType to 'contractAmendment'.

OCDS to OC4IDS Mapping

Guidance

Command-line tool and reference implementation

OCDS Kit's convert-to-oc4ids command is a command-line tool and reference implementation for converting OCDS data to OC4IDS format.

convert-to-oc4ids covers most mappings in the following categories:

  • project-level identification

  • project-level preparation

  • process-level procurement

However, convert-to-oc4ids does not cover all mappings, nor does it perform currency conversions. Mappings which convert-to-oc4ids 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 may differ by publisher. For example, mapping to the OC4IDS projectSector codelist.

Alternative mappings

Some mappings offer optional alternatives in case the primary mapping isn't available. For example, for OCDS data in which planning.project.title isn't available, you can optionally set the project title based on the tender.title.

In order to provide analysts with additional context, alternative mappings may copy additional fields which don't appear in OC4IDS schema. You should remove these fields if you plan to publish your OC4IDS data.

OCDS extensions

Some mappings use fields from OCDS 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 should 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 Organizations 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-to-oc4ids transformation notes to learn about how OCDS Kit handles the above scenarios.

Handling multiple currencies

Some mappings involve converting values in OCDS, which may be in different currencies, to a base currency.

Implementations which include multiple currencies should give consideration to value dating. One approach is to use the compiled release's date.

Mapping

Project level

Identification

CoST IDS element

CoST IDS draft definition

Mapping from OCDS

Project owner

Name of the sponsoring Government department

Check the /parties array for Organization objects with 'buyer' in /roles. Copy each object to the parties array in OC4IDS and add 'publicAuthority' to its .roles. If there is more than one public authority, do not set publicAuthority.name and publicAuthority.id; otherwise, set them to the public authority's .name and .id.

Sector

Develop a list of sectors relevant to country e.g. housing, transport, energy, water etc.

Copy the Classification object from /planning/project/sector (Project extension) to the additionalClassifications array. Additionally, map the classification used in OCDS to the projectSector codelist and publish one or more values in sector.

Subsector

Develop a subset for each sector e.g. Transport could be subdivided into national highway, local road, railway, port, airport etc.

Copy each Classification object from the /planning/project/additionalClassifications array (Project extension) to the additionalClassifications array.

Project name

Specify the project name

Set title to the value of /planning/project/title (Project extension); if not available, optionally use /tender/title.

Project Location

Briefly specify location of the project

Copy each Location object from /planning/project/locations (Project extension) to the locations array; if not available, optionally use /tender/items/deliveryLocation or /tender/items/deliveryAddress (Location extension). Add an .id to each Location object.

Purpose

Specify the socio-economic purpose of the project

Set purpose to the value of /planning/rationale; if not available, optionally check the /planning/documents array for Document objects with /type set to 'needsAssessment' and copy each object to the documents array.

Project description

Concise description and details of the project

Set description to the value of /planning/project/description (Project extension); if not available, optionally use /tender/description.

Preparation

CoST IDS element

CoST IDS draft definition

Mapping from OCDS

Project Scope (main output)

Main outputs from the project that are being taken forward into construction (type, quantity, unit)

Check the /planning/documents array for Document objects with /type set to 'projectScope' and copy each object to the documents array; if not available, optionally copy Item objects from /tender/items to contractingProcesses.summary.tender.items and copy Milestone objects from /tender/milestones to contractingProcesses.summary.tender.milestones.

Environmental impact

Briefly describe the environmental impacts and mitigation measures for this project 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.

Check the /planning/documents array for Document objects with /type set to 'environmentalImpact'. Copy each object to the documents array.

Land and settlement impact

State the amount of land and property that was acquired for the project e.g. 25km2 land, and related impacts e.g. archaeological issues (moved Saxon burial site), local/indigenous settlements (relocated 5 indigenous villages of 500 villagers each), impacts on local businesses e.g. (30 business properties purchased).

Check the /planning/documents array for Document objects with /type set to 'landAndSettlementImpact'. Copy each object to the documents.

Contact details

Postal and electronic address of the Project Owner

Check the /parties array for Organization objects with /role set to 'buyer'. Copy each object to the parties array in OC4IDS and add 'publicAuthority' to its .roles.

Funding sources

Name the funding organization(s)/sources of funding

Check the /parties array for Organization objects referenced in /planning/budgetBreakdown/sourceParty (Budget breakdown extension), copy each object to the parties array in OC4IDS and add 'funder' to its .roles; if not available, check the /parties array for parties with 'funder' in /roles and copy each object to the parties array in OC4IDS.

Project Budget

Specify the projected costs/allocated budget for the project (currency and amount). The budget includes land / property acquisition, environmental mitigation measures, H&S provisions, client, consultant & contractor costs, VAT etc.

If the project has only one contracting process, set budget.amount and budget.currency in OC4IDS to the values of /budget/amount and /budget/currency. If the project has more than one contracting process and the value of /budget/currency is the same in all contracting processes, set budget.amount in OC4IDS to the sum of the value of /budget/amount in each contracting process and set budget.currency in OC4IDS to the value of /budget/currency. Otherwise, convert the values of /budget/amount in each contracting process to a base currency, set budget.amount in OC4IDS to the sum of the converted values and set budget.currency in OC4IDS to the base currency.

Project budget approval date

Date project budget was authorized

Check the /planning/documents array for Document objects with /type set to 'budgetApproval' and copy each object to the documents array; if not available, optionally check /planning/milestones for Milestone objects with /type set to 'approval' and set budget/approvalDate to the value of /dateMet.

Project completion

CoST IDS element

CoST IDS draft definition

Mapping from OCDS

Project status (current)

The current stage of the project. Select from identification, preparation, construction, completion, completed or cancelled.

Infer from /tag of most recent release.

Project completion cost

State projected or actual completion cost (currency and amount)

Infer projected cost from /contracts/value and infer actual cost from /contracts/implementation/finalValue (Contract completion extension); if not available, infer from total of /contracts/implementation/transactions/value.

Completion date

State projected or actual completion date

Infer from /contracts/implementation/endDate (Contract completion extension); if not available, infer from /contracts/period/endDate.

Project Scope at completion (projected)

Indicate projected or actual scope of project. Aim is to show if the completed project scope differs from the original project scope. Specify main outputs (type, quantity, unit)

Check /planning/documents for documents with /type set to projectScope or infer from /contracts/items or /contracts/implementation/milestones.

Reasons for project changes

Summary of primary reasons for any changes in scope, time and cost

Infer from /contracts/implementation/endDateDetails and /contracts/implementation/finalValueDetails (Contract completion extension); if not available, infer from /contracts/amendments.

Reference to audit and evaluation reports

Reference to publicly available technical and financial audits

Check the /contracts/implementation/documents array for Document objects with /type set to 'finalAudit'. Copy each such object to the documents array.

Reactive disclosures
Identification and preparation

CoST IDS element

Description

Mapping from OCDS

Multi-year programme & Budget

A detailed breakdown of the budget by period and/or participating funders.

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.

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.).

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.

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)

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.

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.

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.

Check the /planning/documents array for Document objects with .documentType set to ‘budgetApproval’ and copy each object to the documents array.

Completion

CoST IDS element

Description

Mapping from OCDS

Implementation progress reports

Planned and actual physical and financial progress over time.

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.

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.

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

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.

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.

Check the /contracts/implementation array for Document objects with .documentType set to ‘financialAuditReport’ and copy each object to the documents array.

Process level

The mappings in this section relate to the contractingProcesses section of the OC4IDS schema, unless otherwise specified.

Procurement

CoST IDS element

CoST IDS draft definition

Mapping from OCDS

Procuring entity

Enter name of the organization carrying out the procurement

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.

Procuring entity contact details

Postal and Electronic address

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.

Contract administrative entity

Enter name of the organization carrying out the contract administrative entity if different from the Procuring Entity

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.administrativeEntity.name and .summary.tender.administrativeEntity.id; otherwise, set them to the procuring entity's .name and .id.

Contract status

Select from pre-award, active or closed

Set .summary.status to a value from the contractingProcessStatus codelist according to the business logic in the codelist.

Procurement process

Develop a list such as International Competitive Bidding, National Competitive Bidding, Donor Procurement Rules, Framework, Direct Award

Set .summary.tender.procurementMethod and .summary.tender.procurementMethodDetailsto the values of /tender/procurementMethod and /tender/procurementMethodDetails respectively.

Contract type

Develop a list such as Design, Supervision, Design & Supervision, Design & Build, Construction

Map from /tender/items/classification or /tender/items/additionalClassifications or infer from /tender/description.

Number of firms tendering

Number of firms who submit a tender

Set .summary.numberOfTenderers to the value of /tender/numberOfTenderers.

Cost estimate

Currency and amount of the original pre-tender estimate of the contract

Check the individual releases for the contracting process and set .summary.tender.costEstimate to the value of /tender/value in the most recent release with /tender/status set to 'planning'.

Contract title

The formal name of the contract

If the contracting process has only one Contract object in /contracts, set .summary.title to the value of the contract's /title; if not available and the contracting process has only one Award object in /awards, use its /title. Otherwise, use /tender/title.

Contract firm(s)

Legal name of supplier

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 .name and .id of the OrganizationReference to the .name and .id of the Organization.

Contract price

Currency and price at contract award

If the value of /value/currency is the same for all Award objects in /awards, set .summary.contractValue.amount to the sum of /value/amount in each Award object and set .summary.contractValue.currency to the value of /value/currency. Otherwise, convert /value/amount in each Award object to a base currency, set .summary.contractValue.amount to the sum of the converted values and set .summary.contractValue.currency to the base currency.

Contract scope of work

Main outputs from the contract e.g. detailed design, supervision, project management and or type, quantity, unit for construction

If there is more than one Contract object in /contracts or more than one Award object in /awards, set .summary.description to the value of /tender/description; if unavailable and if there is only one Item object in /tender/items, then set .summary.description to the value of the item's /description.

Otherwise, if there is only one Award or Contract object with a /description field, set .summary.description to the value of the object's /description.

Otherwise, if there is only one Item with a /description field in /awards/items and /contracts/items, set .summary.description to the value of the item's /description.

Contract start date and contract period (duration)

Enter dates and Number of weeks from contract start date to (anticipated) completion date

Set .summary.contractPeriod.startDate to the earliest /contractPeriod/startDate of all Award objects in /awards and set .summary.contractPeriod.endDate to the latest /contractPeriod/endDate of all Award objects in /awards; if not available, set .summary.contractPeriod to the value of /tender/contractPeriod.

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). The specific fields to monitor for changes between releases are described in the mapping table below.

In some cases, OCDS data may include an explanation of changes in the relevant amendments block. In other cases, the reason may need to be manually entered.

CoST IDS element

CoST IDS draft definition

Mapping from OCDS

Variation to contract price

Difference between the price at contract award and the current projected price

Monitor /contracts/value for changes. Copy /contracts/amendments/description to .description and /date to .date.

Escalation of contract price

Escalation to date of the price of materials, labour, equipment etc. due to fluctuations in inflation, currency etc.

Monitor /contracts/value for changes. Copy /contracts/amendments/description to .description and /date to .date.

Variation to contract duration

Difference between original duration at contract award and the current projected duration in weeks.

Monitor /contracts/period for changes. Copy /contracts/amendments/description to .description and /date to .date.

Variation to contract scope

Any changes between original scope at contract award and the current scope

Monitor /contracts/description, /contracts/items and /contracts/implementation/milestones for changes. Copy /contracts/amendments/description to .description and /date to .date.

Reasons for price changes

Summary of reasons for primary changes (e.g. variations) that then lead to changes in contract price, major price fluctuations and accumulative increase or decrease in price.

Copy contracts/amendments/rationale to .rationale.

Reasons for scope and duration changes

Summary of reasons for primary changes (e.g. variations) that then lead to changes in the scope and duration.

Copy contracts/amendments/rationale to .rationale.

Reactive disclosures
Procurement

CoST IDS element

Description

Mapping from OCDS

Contract officials and roles

Name and position of the public official in charge of administration of the contract(s).

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 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.

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.

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.

Check the /planning/documents array for Document objects with .documentType set to ‘projectDesignReport’ and copy each object to the .summary.documents array.

Contract

CoST IDS element

Description

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.

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.

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.

Check the /contracts/documents array for Document objects with /type set to ‘technicalSpecifications’ and copy each object to the .summary.documents array.

Implementation

CoST IDS element

Description

Mapping from OCDS

List of variations, changes, amendments

Details of changes to the duration, price, scope or other significant features of the contracting process

Monitor the following fields for changes:

  • /contracts/value

  • /contracts/period

  • /contracts/description

  • /contracts/items

  • /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.

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.

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

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.

Check the /contracts/documents array for Document objects with .documentType set to ‘contractAmendment’ and copy each object to the .summary.documents array.