Framework reference

../_images/disclosure-framework.png

The World Bank Framework for Disclosure in Public Private Partnership Projects provides a comprehensive overview of motivations, processes and legal frameworks for disclosure of information in Public Private Partnership projects.

This section provides a step-by-step reference resource on how all the requirements from the disclosure template in the framework can be captured as structured data and documents using OCDS for PPPs. Individual implementations of the framework may vary with respect to the elements of disclosure they prioritize.

This section should be read in conjunction with the Disclosure Framework.

The mapping for each requirement in the framework includes a guide to publication timing, indicating whether information should be Published, Repeated or Updated at each stage of the contracting process. More information on the stages of the contracting process can be found in the publication timing section.

I. Basic Project Information

PP

P

A

CC

I

R

P

R

R

R

R

R

I.1. Name, location and sector

Each project should have a name, location and sectoral classification.

This information is included in the planning/project section of each release. A detailed breakdown of each field is given below.

JSON example:

{
    "title": "Example PPP",
    "description": "The Example PPP project will guarantee the installation of a wholesale shared network that allows the provision of telecommunications services by current and future operators.",
    "id": "example_ppp",
    "uri": "http://communications.gov.example/projects/example_ppp",
    "totalValue": {
        "amount": 600000000,
        "currency": "USD"
    },
    "sector": {
        "scheme": "COFOG",
        "description": "Communication (CS)",
        "id": "04.6.0",
        "uri": "https://unstats.un.org/unsd/cr/registry/regcs.asp?Cl=4&Lg=1&Co=04.6.0"
    },
    "locations": [
        {
            "description": "Example Country",
            "gazetteer": {
                "scheme": "GEONAMES",
                "identifiers": [
                    "0000000"
                ]
            }
        }
    ]
}

Flattened example (showing top-level fields only)

planning/project/title

planning/project/description

planning/project/id

planning/project/uri

Example PPP

The Example PPP project will guarantee the installation of a wholesale shared network that allows the provision of telecommunications services by current and future operators.

example_ppp

http://communications.gov.example/projects/example_ppp

I.1.1. Project name and description

These titles and descriptions can be used by applications in summary lists, so should be kept concise and jargon free.

We recommend keeping descriptions to one paragraph or less.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

planning/project/title

[string, null]

Project title

The name of the project to which this contracting process relates. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.

planning/project/description

[string, null]

Project description

A short free text description of the project.

I.1.2. Project sector

Projects should be classified using the UN Classification of the Functions of Government Scheme (COFOG).

This can be cross-walked to most other PPP classification schemes in use, and so provides a common framework for understanding the sectoral focus of investments.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

planning/project/sector

object

Project sector

A high-level categorization of the main sector this procurement process relates to. Use of UN COFOG codes, with 'COFOG' as the classification scheme, and the numerical COFOG code is recommended for the primary sector classification.

planning/project/sector/scheme

[string, null]

Scheme

The scheme or codelist from which the classification code is taken. For line item classifications, this uses the open itemClassificationScheme codelist.

planning/project/sector/id

[string, integer, null]

ID

The classification code taken from the scheme.

planning/project/sector/description

[string, null]

Description

A textual description or title for the classification code.

planning/project/sector/uri

[string, null]

uri

URI

A URI to uniquely identify the classification code.

I.1.2.1. Project sector (additional)

One or more additional project classifications can be provided if required by a particular user of the data, or to relate the project to a national taxonomy.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

planning/project/additionalClassifications

array[Classification]

Additional sector classifications

Additional project classification, by other sector classifications, or using other classification schemes (e.g. against a strategic framework).

planning/project/additionalClassifications/0/scheme

[string, null]

Scheme

The scheme or codelist from which the classification code is taken. For line item classifications, this uses the open itemClassificationScheme codelist.

planning/project/additionalClassifications/0/id

[string, integer, null]

ID

The classification code taken from the scheme.

planning/project/additionalClassifications/0/description

[string, null]

Description

A textual description or title for the classification code.

planning/project/additionalClassifications/0/uri

[string, null]

uri

URI

A URI to uniquely identify the classification code.

Additional classification schemes can also be provided, such as project classification against the Sustainable Development Goals (SDGs), or against national frameworks.

I.1.3. Project location

The locations where a project is taking place can be specified using:

  • A gazetteer entry. For example, the GeoNames code of the administrative division where activity is taking place.

  • A GeoJSON object. Describing the boundary, or extent, of where activity will take place.

There are a range of tools available to generate GeoJSON data, such as http://geojson.io/

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

planning/project/locations

array[Delivery Location]

Project location

Information about the location where a project is taking place.

planning/project/locations/0/description

[string, null]

Description

A name or description of this location. This might include the name(s) of the location(s), or might provide a human-readable description of the location to be covered.

planning/project/locations/0/geometry

object

Geometry

We follow the GeoJSON standard to express basic location information, using longitude, latitude, and optional elevation values in the WGS84 (EPSG:4326) projection. A point location can be identified by geocoding a delivery address. For concession licenses, or other contracts covering a polygon location which is not contained in a known gazetteer, polygon and multi-polygon can be used.

planning/project/locations/0/geometry/type

[string, null]

Type

The type of GeoJSON Geometry Objects being provided. To provide longitude, latitude, and optional elevation, use 'Point', and enter an array of [longitude, latitude] or [longitude, latitude, elevation] as the value of the coordinates field: e.g. [-122.085, 37.42].

planning/project/locations/0/geometry/coordinates

array[[number, array]]

Coordinates

The relevant array of points, e.g. [longitude, latitude] or [longitude, latitude, elevation], or a nested array of points, for the GeoJSON geometry being described. The longitude and latitude must be expressed in decimal degrees in the WGS84 (EPSG:4326) projection.

planning/project/locations/0/gazetteer

object

Gazetteer

Identifiers from a gazetteer (a geographical index or directory) for the location.

planning/project/locations/0/gazetteer/scheme

[string, null]

Gazetteer scheme

The identifier of the gazetteer. The locationGazetteers.csv codelist provides details of services, where available, that can resolve a gazetteer entry to provide location names.

planning/project/locations/0/gazetteer/identifiers

array[[string]]

Identifiers

An array of one or more codes drawn from the gazetteer indicated by the scheme field.

planning/project/locations/0/uri

[string, null]

URI

A URI to a further description of the activity location. This might be a human-readable document with information on the location, or a machine-readable description of the location.

I.2. Sponsoring agency/department

I.2.1. Organization details

PP

P

A

CC

I

R

P

U

U

U

U

U

Details of the sponsoring agency or department, including name and contact details, should be provided using an Organization object in the parties array. The party's roles array should include the 'buyer' code, and the party's contactPoint field can be used to provide details of a named representative.

JSON example:

{
    "id": "XX-GOV-00000000",
    "name": "Telecoms Promoter",
    "roles": [
        "buyer"
    ],
    "identifier": {
        "scheme": "XX-GOV",
        "id": "00000000",
        "legalName": "Telecoms Promoter",
        "uri": "http://ministries.gov.example/00000000"
    },
    "address": {
        "streetAddress": "1 Other Street",
        "locality": "Capital City",
        "region": "Capital State",
        "postalCode": "CS 000000",
        "countryName": "Example Country"
    },
    "contactPoint": {
        "name": "Example PPP team",
        "email": "ppps@telecompromoter.gov.example",
        "telephone": "11 11 11 11",
        "faxNumber": "11 11 11 12",
        "url": "http://telecompromoter.gov.example"
    }
}

Flattened example (showing top-level fields only)

parties/1/id

parties/1/name

parties/1/roles

XX-GOV-00000000

Telecoms Promoter

buyer

I.2.2. Organization reference

PP

P

A

CC

I

R

P

U

U

U

U

U

A reference to the sponsoring agency or department should be provided using an OrganizationReference object in the buyer field, referencing the relevant entry in the parties section.

JSON example:

{
    "id": "XX-GOV-00000000",
    "name": "Telecoms Promoter"
}

Flattened example (showing top-level fields only)

buyer/id

buyer/name

XX-GOV-00000000

Telecoms Promoter

I.3. Project value

The value of a project can be specified at a number of points in time.

I.3.1. Planned value

PP

P

A

CC

I

R

P

R

R

R

R

The value, or range of values, anticipated during the planning stage.

Schema: Information can be provided using a Value object in the planning/project/totalValue field.

I.3.2. Tender value

The value, or range of values, in a call for tenders for the project.

Schema: Information can be provided using a Value object in the tender/value field.

I.3.3. Award value

The value of the project at time of contract award.

Schema: Information can be provided using a Value object in the awards/value field.

I.3.4. Contract value

The total value of the project agreed in the contract(s).

Schema: Information can be provided using a Value object in the contracts/value field.

I.4. Project economic and social benefits

Project need: benefits provided, economic and social (including specific information on the public interest aspect)

PP

P

A

CC

I

R

P

Information on the project need, benefits provided, and economic and social impact should be provided through:

  • A short summary text

  • A link to one or more documents that provide additional information

Links to these documents should be provided using Document objects in the planning/documents array. Each document's documentType field should be set to 'needsAssessment'.

JSON example:

{
    "id": "1",
    "documentType": "needsAssessment",
    "title": "Needs Assessment",
    "description": "The project will increase the telecommunication services coverage, promote competitive prices and enhance the quality of services according to international standards. ",
    "url": "http://communications.gov.example/example_ppp/example_ppp_needs_assessment.pdf",
    "datePublished": "2015-09-30T12:09:30-06:00",
    "format": "application/pdf",
    "language": "en",
    "author": "Example Consultancy Services Ltd"
}

Flattened example (showing top-level fields only)

planning/documents/0/id

planning/documents/0/documentType

planning/documents/0/title

planning/documents/0/description

planning/documents/0/url

planning/documents/0/datePublished

planning/documents/0/format

planning/documents/0/language

planning/documents/0/author

1

needsAssessment

Needs Assessment

The project will increase the telecommunication services coverage, promote competitive prices and enhance the quality of services according to international standards.

http://communications.gov.example/example_ppp/example_ppp_needs_assessment.pdf

2015-09-30T12:09:30-06:00

application/pdf

en

Example Consultancy Services Ltd

I.5. Project technical description

Technical description of the physical infrastructure

PP

P

A

CC

I

R

P

A technical description of the physical infrastructure should be provided through:

  • A short summary text

  • A link to one or more documents that provide additional information

Links to these documents should be provided using Document objects in the tender/documents array. Each document's documentType field should be set to 'technicalSpecifications'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

I.6. Project high level description

High-level description of the services

PP

P

A

CC

I

R

P

A high-level description of the services should be provided through:

  • A short summary text

  • A link to one or more documents that provide additional information

Links to these documents should be provided using Document objects in the tender/documents array. Each document's documentType field should be set to 'serviceDescription'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

I.7. Estimated project demand

Estimated demand to be served annually

PP

P

A

CC

I

R

P

I.7.1. Structured information on estimated demand

Structured data about estimated demand should be provided in the planning/forecast section, using an array of metrics building blocks.

A metric with the id 'demand' should be given, with a series of forecast observations that capture the estimated demand for a given period.

These estimates can be disaggregated by any number of dimensions contained as key-value pairs within the observation/dimensions object.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

planning/forecasts

array[Metric]

Forecasts

Any forecasts metrics for this results of this contracting process.

planning/forecasts/0/id

[string]

Required

Identifier

An identifier for this metric. In some cases this may be drawn from a codelist of metrics required for this type of contracting process, or in other instances may be an arbitrary identifier.

planning/forecasts/0/title

[string, null]

Title

The title of this metric

planning/forecasts/0/description

[string, null]

Description

A short description of the metric. This may include short details of measurement methods.

planning/forecasts/0/observations

array[Observation]

Observations

An array of target or actual values for this metric.

planning/forecasts/0/observations/0/id

string

Required

Identifier

A local identifier for this specific observation. This may be an arbitrary identifier, or could be a composite of the metric identifier, and the date and other dimensions of this observation.

planning/forecasts/0/observations/0/period

object

Period

The period over which this observation is measured.

planning/forecasts/0/observations/0/period/startDate

[string, null]

date-time

Start date

The start date for the period. When known, a precise start date must be provided.

planning/forecasts/0/observations/0/period/endDate

[string, null]

date-time

End date

The end date for the period. When known, a precise end date must be provided.

planning/forecasts/0/observations/0/period/maxExtentDate

[string, null]

date-time

Maximum extent

The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.

planning/forecasts/0/observations/0/period/durationInDays

[integer, null]

Duration (days)

The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, should be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, should be equal to the difference between startDate and maxExtentDate.

planning/forecasts/0/observations/0/value

object

Value

For financial metrics, the value of this forecast, target or actual observation.

planning/forecasts/0/observations/0/value/amount

[number, null]

Amount

Amount as a number.

planning/forecasts/0/observations/0/value/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

planning/forecasts/0/observations/0/measure

[string, number, null]

Measure

For non-financial metrics, the measure of this forecast, target or actual observation. Measures may be provided as free text or numerical values.

planning/forecasts/0/observations/0/unit

object

Unit

Unit

planning/forecasts/0/observations/0/unit/name

[string, null]

Unit name

The name of the unit.

planning/forecasts/0/observations/0/unit/scheme

[string, null]

Scheme

The list from which units of measure identifiers are taken. Use of the scheme 'UNCEFACT' for the UN/CEFACT Recommendation 20 list of "Codes for Units of Measure Used in International Trade" is recommended.

planning/forecasts/0/observations/0/unit/id

[string, null]

ID

The identifier from the codelist referenced in the schema property. For example, with UNCEFACT, this is the value of the 'Common Code' column. From this identifier, applications can look-up the human readable name or symbol for this unit of measure.

planning/forecasts/0/observations/0/unit/uri

[string, null]

uri

URI

If the scheme used provide a machine-readable URI for this unit of measure, this can be given.

planning/forecasts/0/observations/0/dimensions

object

Dimensions

Any number of dimensions can be recorded within this object. Dimensions names should follow the camelCase conventions of OCDS.

planning/forecasts/0/observations/0/notes

[string, null]

Notes

Any notes on this observation. This may include clarifying information.

planning/forecasts/0/observations/0/relatedImplementationMilestone

object

Related implementation milestone

A link to the milestone in the implementation section of OCDS to which this forecast, target or actual observation relates.

planning/forecasts/0/observations/0/relatedImplementationMilestone/id

string

Required

Milestone ID

The ID of the milestone being referenced, this must match the ID of a milestone described elsewhere in a release about this contracting process.

planning/forecasts/0/observations/0/relatedImplementationMilestone/title

[string, null]

Milestone title

The title of the milestone being referenced, this must match the title of a milestone described elsewhere in a release about this contracting process.

JSON example:

[
    {
        "id": "demand",
        "title": "Annual demand",
        "description": "Annual 4G traffic measured in gigabytes",
        "observations": [
            {
                "id": "2016",
                "measure": "815280000.0",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2016-01-01T00:00:00Z",
                    "endDate": "2016-12-31T23:59:59Z"
                }
            },
            {
                "id": "2017",
                "measure": "903365129.5706391",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2017-01-01T00:00:00Z",
                    "endDate": "2017-12-31T23:59:59Z"
                }
            },
            {
                "id": "2018",
                "measure": "1001480826.6399665",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2018-01-01T00:00:00Z",
                    "endDate": "2018-12-31T23:59:59Z"
                }
            },
            {
                "id": "2019",
                "measure": "1110825529.4633253",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2019-01-01T00:00:00Z",
                    "endDate": "2019-12-31T23:59:59Z"
                }
            },
            {
                "id": "2020",
                "measure": "1232747361.2976859",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2020-01-01T00:00:00Z",
                    "endDate": "2020-12-31T23:59:59Z"
                }
            },
            {
                "id": "2021",
                "measure": "1368763614.680674",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2021-01-01T00:00:00Z",
                    "endDate": "2021-12-31T23:59:59Z"
                }
            },
            {
                "id": "2022",
                "measure": "1520582872.0748835",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2022-01-01T00:00:00Z",
                    "endDate": "2022-12-31T23:59:59Z"
                }
            },
            {
                "id": "2023",
                "measure": "1690130132.8503568",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2023-01-01T00:00:00Z",
                    "endDate": "2023-12-31T23:59:59Z"
                }
            },
            {
                "id": "2024",
                "measure": "1879575370.3220415",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2024-01-01T00:00:00Z",
                    "endDate": "2024-12-31T23:59:59Z"
                }
            },
            {
                "id": "2025",
                "measure": "2091366004.3704107",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2025-01-01T00:00:00Z",
                    "endDate": "2025-12-31T23:59:59Z"
                }
            },
            {
                "id": "2026",
                "measure": "2328263846.301749",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2026-01-01T00:00:00Z",
                    "endDate": "2026-12-31T23:59:59Z"
                }
            },
            {
                "id": "2027",
                "measure": "2593387154.498728",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2027-01-01T00:00:00Z",
                    "endDate": "2027-12-31T23:59:59Z"
                }
            },
            {
                "id": "2028",
                "measure": "2890258533.752807",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2028-01-01T00:00:00Z",
                    "endDate": "2028-12-31T23:59:59Z"
                }
            },
            {
                "id": "2029",
                "measure": "3222859519.9091563",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2029-01-01T00:00:00Z",
                    "endDate": "2029-12-31T23:59:59Z"
                }
            },
            {
                "id": "2030",
                "measure": "3595692816.858707",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2030-01-01T00:00:00Z",
                    "endDate": "2030-12-31T23:59:59Z"
                }
            },
            {
                "id": "2031",
                "measure": "4013853297.6148205",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2031-01-01T00:00:00Z",
                    "endDate": "2031-12-31T23:59:59Z"
                }
            },
            {
                "id": "2032",
                "measure": "4483109048.276784",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2032-01-01T00:00:00Z",
                    "endDate": "2032-12-31T23:59:59Z"
                }
            },
            {
                "id": "2033",
                "measure": "5009993926.672642",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2033-01-01T00:00:00Z",
                    "endDate": "2033-12-31T23:59:59Z"
                }
            },
            {
                "id": "2034",
                "measure": "5601913330.538246",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2034-01-01T00:00:00Z",
                    "endDate": "2034-12-31T23:59:59Z"
                }
            },
            {
                "id": "2035",
                "measure": "6267265128.060023",
                "unit": {
                    "name": "gigabytes",
                    "id": "E34",
                    "scheme": "UNCEFACT"
                },
                "period": {
                    "startDate": "2035-01-01T00:00:00Z",
                    "endDate": "2035-12-31T23:59:59Z"
                }
            }
        ]
    }
]

Flattened example (showing top-level fields only)

planning/forecasts/id

planning/forecasts/title

planning/forecasts/description

demand

Annual demand

Annual 4G traffic measured in gigabytes

I.7.2. Estimated demand documentation

Non-structured data relating to estimated demand can be provided through:

  • A short summary text

  • A link to one or more documents that provide additional information

Links to these documents should be provided using Document objects in the planning/documents array. Each document's documentType field should be set to 'estimatedDemand'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

I.8. Project additionality

PP

P

A

CC

I

R

P

Information on the project additionality should be provided through planning documents containing:

  • A short summary text

  • A link to one or more documents that provide additional information

Descriptions should be provided for both:

  • The additionality of the project;

  • The additionality of the finance method used;

Links to these documents should be provided using Document objects in the planning/documents array. Each document's documentType field should be set to 'projectAdditionality' or 'financeAdditionality'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

I.9. Reasons for selection of PPP mode (general)

Reason for selection of PPP mode and type in brief

PP

P

A

CC

I

R

P

A short summary of the reason for the PPP selection mode should be provided through:

  • A short summary text

  • A link to one or more documents that provide additional information

Links to these documents should be provided using Document objects in the planning/documents array. Each document's documentType field should be set to 'pppModeRationale'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

I.10. Project approval dates

Dates of various approvals

PP

P

A

CC

I

R

P

Each approval during the planning stage should be provided as a Milestone object in the planning/milestones array with:

  • its type field set to 'approval'

  • its dueDate field set to the date for which the approval is scheduled

  • its status field set to 'scheduled' or 'met'

  • its dateMet field set to the date on which the approval was given

  • its documents array set to any documentation associated with the approval

JSON example:

{
    "id": "2",
    "type": "approval",
    "title": "Strategic outline case approval",
    "description": "Ministry of Finance approved the strategic outline business case for the project",
    "status": "met",
    "dueDate": "2015-01-01T00:00:00-06:00",
    "dateMet": "2015-01-01T00:00:00-06:00",
    "dateModified": "2015-01-01T00:00:00-06:00",
    "documents": [
        {
            "id": "1"
        }
    ]
}

Flattened example (showing top-level fields only)

planning/milestones/1/id

planning/milestones/1/type

planning/milestones/1/title

planning/milestones/1/description

planning/milestones/1/status

planning/milestones/1/dueDate

planning/milestones/1/dateMet

planning/milestones/1/dateModified

2

approval

Strategic outline case approval

Ministry of Finance approved the strategic outline business case for the project

met

2015-01-01T00:00:00-06:00

2015-01-01T00:00:00-06:00

2015-01-01T00:00:00-06:00

I.11. Contract milestones

Key events relating to commercial and financial close

This information can be provided as Milestone objects in the contracts/milestones array, each with its type, code and status fields set to codes from the relevant codelists and its documents array set to links to any additional documentation.

I.11.1. Contract milestones - Date of commercial close

In a financing, the point at which the commercial documentation has been executed but before conditions precedent have been satisfied or waived; before financial close. (Source)

PP

P

A

CC

I

R

P

U

U

U

This milestone should have a type of 'financing', a code of 'commercialClose' and a status of either scheduled or met with either the date that this milestone was achieved in dateMet, or the scheduled date in dueDate.

Example: See section I.10 for JSON and flattened examples of the milestones building block.

I.11.2. Contract milestones - Date of financial close

In a financing, the point at which the documentation has been executed and conditions precedent have been satisfied or waived. Drawdowns become permissible after this point. (Source)

PP

P

A

CC

I

R

P

U

U

U

To indicate the date of financial close, a milestone should be added to the contract/milestones (the contract may have a status of 'pending' up until it is signed).

The milestone should have a type of 'financing', a code of 'financialClose' and a status of either scheduled or met with either the date that this milestone was achieved in dateMet, or the scheduled date in dueDate.

Example: See section I.10 for JSON and flattened examples of the milestones building block.

I.12. Implementation milestones

Key events relating to the implementation of the project.

This information can be provided as Milestone objects in the contracts/milestones array, each with its type, code and status fields set to codes from the relevant codelists and its documents array set to links to any additional documentation.

I.12.1. Implementation milestones - Date of commencement of construction or development

PP

P

A

CC

I

R

P

U

U

U

U

U

The milestone should have a type of 'delivery', a code of 'developmentStarted' or 'constructionStarted' and a status of either scheduled or met with either the date that this milestone was achieved in dateMet, or the scheduled date in dueDate.

Example: See section I.10 for JSON and flattened examples of the milestones building block.

I.12.2. Implementation milestones - Date of completion of construction or development

PP

P

A

CC

I

R

P

U

U

U

U

U

The milestone should have a type of 'delivery', a code of 'developmentComplete' or 'constructionComplete' and a status of either scheduled or met with either the date that this milestone was achieved in dateMet, or the scheduled date in dueDate.

Example: See section I.10 for JSON and flattened examples of the milestones building block.

I.12.3. Implementation milestones - Date of commissioning

The testing and inspection of the completed works to verify that the works are ready for commercial operation. (Source)

PP

P

A

CC

I

R

P

U

U

U

U

U

The milestone should have a type of 'delivery', a code of 'commissioning' and a status of either scheduled or met with either the date that this milestone was achieved in dateMet, or the scheduled date in dueDate.

Example: See section I.10 for JSON and flattened examples of the milestones building block.

I.12.4. Implementation milestones - Date of contract expiry

PP

P

A

CC

I

R

P

U

U

U

U

U

Information on the expected contract expiry date at the tender and award stages of a contracting process should be provided using contractPeriod field in the tender and award sections respectively.

This expected date of contract expiry should be entered into the contractPeriod/endDate field.

Information on the actual contract expiry date should be provided using the period field in the contract section.

The actual date of contract expiry should be entered into the period/endDate field.

Schema: Information can be provided using a Period object in the tender/contractPeriod field.

JSON example:

{
    "contractPeriod": {
        "startDate": "2016-01-24T00:00:00Z",
        "endDate": "2036-01-23T00:00:00Z"
    }
}

Flattened example (showing top-level fields only)

tender/contractPeriod/startDate

tender/contractPeriod/endDate

2016-01-24T00:00:00Z

2036-01-23T00:00:00Z

I.13. Contract documents

Links to all contract documents

PP

P

A

CC

I

R

P

U

U

U

U

U

Links to contract documents can be provided using Document objects in the contracts/documents array. Each document's documentType field should be set to one of 'contractDraft', 'contractSigned' or 'contractSchedule'. (The contract may have a status of 'pending' up until it is signed.)

Example: See section I.4 for JSON and flattened examples of the documents building block.

I.14. Contract parties - public authority

Public authority: name of authority, name of representative, address, telephone, fax, e-mail

The APMG Public-Private Partnerships Certification Program Guide's glossary defines it as:

The unit/body/department within a government that is tendering and contracting the project. The public counterpart in the PPP contract.

I.14.1. Contract signatories

PP

P

A

CC

I

R

P

U

U

U

U

U

References to all signatories to the contract (including the public authority) should be provided using OrganizationReference objects in the contracts/signatories array, referencing the relevant entries in the parties section.

JSON example:

[
    {
        "id": "XX-GOV-12345678",
        "name": "Ministry of Communications"
    },
    {
        "id": "XX-GOV-00000000",
        "name": "Telecoms Promoter"
    },
    {
        "id": "XX-GOV-99999999",
        "name": "National Fiber Infrastructure"
    },
    {
        "id": "MEGA",
        "name": "Mega Consortium Ltd"
    }
]

Flattened example (showing top-level fields only)

contracts/0/signatories/id

contracts/0/signatories/name

XX-GOV-12345678

Ministry of Communications

XX-GOV-00000000

Telecoms Promoter

XX-GOV-99999999

National Fiber Infrastructure

MEGA

Mega Consortium Ltd

I.14.2. Organization details

PP

P

A

CC

I

R

P

U

U

U

U

U

Details of the public authority, including name and contact details, should be provided using an Organization object in the parties array. The party's roles array should include the 'buyer' code, and the party's contactPoint field can be used to provide details of a named representative.

JSON example:

{
    "id": "XX-GOV-00000000",
    "name": "Telecoms Promoter",
    "roles": [
        "buyer"
    ],
    "identifier": {
        "scheme": "XX-GOV",
        "id": "00000000",
        "legalName": "Telecoms Promoter",
        "uri": "http://ministries.gov.example/00000000"
    },
    "address": {
        "streetAddress": "1 Other Street",
        "locality": "Capital City",
        "region": "Capital State",
        "postalCode": "CS 000000",
        "countryName": "Example Country"
    },
    "contactPoint": {
        "name": "Example PPP team",
        "email": "ppps@telecompromoter.gov.example",
        "telephone": "11 11 11 11",
        "faxNumber": "11 11 11 12",
        "url": "http://telecompromoter.gov.example"
    }
}

Flattened example (showing top-level fields only)

parties/1/id

parties/1/name

parties/1/roles

XX-GOV-00000000

Telecoms Promoter

buyer

I.14.3. Organization reference

PP

P

A

CC

I

R

P

U

U

U

U

U

A reference to the public authority should be provided using an OrganizationReference object in the buyer field, referencing the relevant entry in the parties section.

JSON example:

{
    "id": "XX-GOV-00000000",
    "name": "Telecoms Promoter"
}

Flattened example (showing top-level fields only)

buyer/id

buyer/name

XX-GOV-00000000

Telecoms Promoter

I.15. Contract parties - private party

Private party: name of company or consortium, name of representative, address, telephone, fax, e-mail

The APMG Public-Private Partnerships Certification Program Guide's glossary defines it as:

The counter party of the procuring authority in the PPP contract. A private entity which has been granted the contract to construct and operate a government asset, and which is usually created under the form of a Special Purpose Vehicle or SPV.

I.15.1. Contract signatories

References to all signatories to the contract (including the private party) should be provided using OrganizationReference objects in the contracts/signatories array, referencing the relevant entries in the parties section.

JSON example:

[
    {
        "id": "XX-GOV-12345678",
        "name": "Ministry of Communications"
    },
    {
        "id": "XX-GOV-00000000",
        "name": "Telecoms Promoter"
    },
    {
        "id": "XX-GOV-99999999",
        "name": "National Fiber Infrastructure"
    },
    {
        "id": "MEGA",
        "name": "Mega Consortium Ltd"
    }
]

Flattened example (showing top-level fields only)

contracts/0/signatories/id

contracts/0/signatories/name

XX-GOV-12345678

Ministry of Communications

XX-GOV-00000000

Telecoms Promoter

XX-GOV-99999999

National Fiber Infrastructure

MEGA

Mega Consortium Ltd

I.15.2. Organization details

Details of the private party, including name and contact details, should be provided using an Organization object in the parties array. The party's roles array should include the 'privateParty' code, and the party's contactPoint field can be used to provide details of a named representative.

JSON example:

{
    "id": "MEGA",
    "name": "Mega Consortium Ltd",
    "roles": [
        "privateParty"
    ],
    "identifier": {
        "scheme": "XX-XXX",
        "id": "12345678",
        "legalName": "Mega Consortium Ltd",
        "uri": "https://opencorporates.com/companies/xx/12345678"
    },
    "address": {
        "streetAddress": "1 Company Drive",
        "locality": "Capital City",
        "region": "Capital State",
        "postalCode": "CS 123456",
        "countryName": "Example Country"
    },
    "contactPoint": {
        "name": "Enquiries team",
        "email": "enquiries@mega.example",
        "telephone": "12 34 56 78",
        "faxNumber": "12 34 56 79",
        "url": "http://mega.example"
    }
}

Flattened example (showing top-level fields only)

parties/0/id

parties/0/name

parties/0/roles

MEGA

Mega Consortium Ltd

privateParty

I.15.3. Organization reference

A reference to the private party should be provided using an OrganizationReference object in the awards/suppliers field, referencing the relevant entry in the parties section.

JSON example:

[
    {
        "id": "MEGA",
        "name": "Mega Consortium"
    }
]

Flattened example (showing top-level fields only)

awards/0/suppliers/id

awards/0/suppliers/name

MEGA

Mega Consortium

I.16. Contract parties - financiers

Financiers: name of Lead FI, other FIs, name of representative of lead FI, address, telephone, fax, e-mail

I.16.1. Organization details

Details of the financiers, including name and contact details, should be provided using Organization objects in the parties array. Each party's roles array should include the 'leadBank' or 'lender' code, as appropriate, and each party's contactPoint field can be used to provide details of a named representative.

JSON example:

{
    "id": "XX-FI-22222222",
    "name": "Big Bank Corp",
    "roles": [
        "leadBank"
    ],
    "identifier": {
        "scheme": "XX-FI",
        "id": "22222222",
        "legalName": "Big Bank Corp",
        "uri": "http://bigbank.example"
    },
    "address": {
        "streetAddress": "2 Bank Street",
        "locality": "Capital City",
        "region": "Capital State",
        "postalCode": "CS 22222",
        "countryName": "Example Country"
    },
    "contactPoint": {
        "name": "Head Office",
        "email": "enquiries@bigbank.example",
        "telephone": "22 22 22 22",
        "faxNumber": "22 22 22 23",
        "url": "http://bigbank.example"
    }
}

Flattened example (showing top-level fields only)

parties/4/id

parties/4/name

parties/4/roles

XX-FI-22222222

Big Bank Corp

leadBank

I.16.2. Contract signatories

References to all signatories to the contract (including any financiers that are signatories) should be provided using OrganizationReference objects in the contracts/signatories array, referencing the relevant entries in the parties section.

JSON example:

[
    {
        "id": "XX-GOV-12345678",
        "name": "Ministry of Communications"
    },
    {
        "id": "XX-GOV-00000000",
        "name": "Telecoms Promoter"
    },
    {
        "id": "XX-GOV-99999999",
        "name": "National Fiber Infrastructure"
    },
    {
        "id": "MEGA",
        "name": "Mega Consortium Ltd"
    }
]

Flattened example (showing top-level fields only)

contracts/0/signatories/id

contracts/0/signatories/name

XX-GOV-12345678

Ministry of Communications

XX-GOV-00000000

Telecoms Promoter

XX-GOV-99999999

National Fiber Infrastructure

MEGA

Mega Consortium Ltd

II. Procurement Information

Dates and summary details, links to all procurement documents, final feasibility study, including land acquisition, social, environmental, and rehabilitation related information, reports of independent procurement auditors (if any)

Procurement procedures can involve one or more competitive stages:

  • In a single-stage procedure, the procuring entity invites suppliers to submit bids, without submitting any prior information.

  • In a multi-stage procedure, the procuring entity invites suppliers to submit requests to participate in a first stage (pre-qualification). The procuring entity assesses the requests, and establishes a list of qualified suppliers to invite to submit bids. Qualified suppliers then submit bids in a second stage. The procuring entity assesses the bids, and awards a contract to the winning bidder.

In OCDS, the tender section represents the invitation to participate (whether to submit bids, or to submit requests to participate) and is also used to describe the procedure as a whole.

II.1. First stage

The act of testing prospective bidders to determine whether they meet the pass/fail qualification criteria in advance of issuing the request for proposals. (Source)

Use the tender section to describe the first stage of the contracting process, whether it involves the submission of bids, or requests to participate.

II.1.1. Dates - Submission period

PP

P

A

CC

I

R

P

U

Use the tender/tenderPeriod field to provide the period during which the first stage is open for submissions. tenderPeriod/endDate should contain the closing date for submissions.

Schema: Information can be provided using a Period object in the tender/tenderPeriod field.

JSON example:

{
    "startDate": "2015-10-31T00:00:00-06:00",
    "endDate": "2015-11-30T00:00:00-06:00"
}

Flattened example (showing top-level fields only)

tender/tenderPeriod/startDate

tender/tenderPeriod/endDate

2015-10-31T00:00:00-06:00

2015-11-30T00:00:00-06:00

II.1.2. Dates - Enquiry period

PP

P

A

CC

I

R

P

U

Use the tender/enquiryPeriod field to provide the period during which enquiries may be made and answered.

Schema: Information can be provided using a Period object in the tender/enquiryPeriod field.

JSON example:

{
    "startDate": "2016-03-01T01:00:00+01:00",
    "endDate": "2016-04-19T01:00:00+02:00"
}

Flattened example (showing top-level fields only)

tender/enquiryPeriod/startDate

tender/enquiryPeriod/endDate

2016-03-01T01:00:00+01:00

2016-04-19T01:00:00+02:00

II.1.4. Summary details - Submission method

PP

P

A

CC

I

R

P

U

Use the following fields in the tender section to provide information on the submission method for responses:

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

tender/submissionMethod

array[string]

Submission method

The methods by which bids are submitted, using the open submissionMethod codelist.

tender/submissionMethodDetails

[string, null]

Submission method details

Any detailed or further information on the submission method. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions.

JSON example:

{
    "submissionMethod": [
        "inPerson"
    ],
    "submissionMethodDetails": "Each contestant may submit only one request. The address for delivery of the request is: Ministry of Communications, 1 Main Street, Capital City, Capital State, CS 123456"
}

Flattened example (showing top-level fields only)

tender/submissionMethod

tender/submissionMethodDetails

inPerson

Each contestant may submit only one request. The address for delivery of the request is: Ministry of Communications, 1 Main Street, Capital City, Capital State, CS 123456

II.1.5. Summary details - Eligibility criteria

PP

P

A

CC

I

R

P

U

Use the tender section to provide information on the eligibility criteria for participants.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

tender/eligibilityCriteria

[string, null]

Eligibility criteria

A description of any eligibility criteria for potential suppliers.

JSON example:

{
    "eligibilityCriteria": "Contestants must prove their administrative, economic, financial and technical capacity with various documents established in tender rules."
}

Flattened example (showing top-level fields only)

tender/eligibilityCriteria

Contestants must prove their administrative, economic, financial and technical capacity with various documents established in tender rules.

II.1.6. Request for Qualification

The set of documents issued by the procuring authority that constitute the basis of the qualification and potentially the pre-selection of candidates (the short list). Qualified (or short-listed candidates) will then be invited to submit a proposal (or to enter into a new phase prior to bid submission, such as a dialogue phase or interactive phase). (Source)

In a single-stage procedure, the contents of the Request for Qualifications (RFQ) are embedded in the Request for Proposal.

Use Document objects in the tender/documents array to provide links to these documents. Each document's documentType field should be set to a value from the document type codelist, to identify the type of document being disclosed.

Example: See section I.4 for JSON and flattened examples of the documents building block.

II.1.7. Dates - Award period

PP

P

A

CC

I

R

P

U

Use the tender/awardPeriod field to provide the period during which an award is expected to be made.

Schema: Information can be provided using a Period object in the tender/awardPeriod field.

JSON example:

{
    "startDate": "2016-12-09T01:00:00+01:00",
    "endDate": "2016-12-09T01:00:00+01:00"
}

Flattened example (showing top-level fields only)

tender/awardPeriod/startDate

tender/awardPeriod/endDate

2016-12-09T01:00:00+01:00

2016-12-09T01:00:00+01:00

II.1.8. Dates - Contract period

PP

P

A

CC

I

R

P

U

U

U

U

U

Use the tender/contractPeriod field to provide the expected start and end dates for the contract. Use the awards/contractPeriod field to provide the actual start and end dates of the contract at the time of the contract award. Update the contracts/period field with any changes to the contract period after the award.

Schema: Information can be provided using a Period object in the tender/contractPeriod, awards/contractPeriod and contracts/period fields.

JSON example:

{
    "contractPeriod": {
        "startDate": "2016-01-24T00:00:00Z",
        "endDate": "2036-01-23T00:00:00Z"
    }
}

Flattened example (showing top-level fields only)

tender/contractPeriod/startDate

tender/contractPeriod/endDate

2016-01-24T00:00:00Z

2036-01-23T00:00:00Z

II.1.9. Summary details - Procurement method

PP

P

A

CC

I

R

P

U

Use the tender section to provide information on the procurement method.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

tender/procurementMethod

[string, null]

Procurement method

The procurement method, from the closed method codelist.

tender/procurementMethodDetails

[string, null]

Procurement method details

Additional detail on the procurement method used. This field can be used to provide the local name of the particular procurement method used.

tender/procurementMethodRationale

[string, null]

Procurement method rationale

Rationale for the chosen procurement method. This is especially important to provide a justification in the case of limited tenders or direct awards.

JSON example:

{
    "procurementMethod": "selective",
    "procurementMethodDetails": "The project will be awarded through a two-stage process"
}

Flattened example (showing top-level fields only)

tender/procurementMethod

tender/procurementMethodDetails

selective

The project will be awarded through a two-stage process

II.1.10. Other documents

PP

P

A

CC

I

R

P

U

Use Document objects in the tender/documents array to provide links to documents.

You should provide links to:

  • all procurement documents

  • feasibility studies, including cost-benefit analyses, if available

  • land acquisition, rehabilitation, social, human rights, and environmental assessments

  • reports of independent procurement auditors

A short summary of each document can be provided using its description field. Each document's documentType field should be set to a value from the document type codelist, to identify the type of document being disclosed.

Example: See section I.4 for JSON and flattened examples of the documents building block.

II.2. List of pre-qualified suppliers

Pre-qualification or shortlist.

Details of suppliers that submit a request to participate should be provided using Organization objects in the parties array.

For each request to participate:

  • Add a Bid object to the bids/details array

  • Set its id incrementally

  • Add an OrganizationReference to its tenderers array and set id and name to the supplier's id and name from the parties array

  • Set its date to the date the request was received

  • If the bidder is shortlisted or invited to submit a proposal following the pre-qualification process, set its status to 'valid'. Otherwise, set its status to 'disqualified'.

Example: See section I.14.2 for JSON and flattened examples of the organization building block.

II.3. Request for Proposal

The set of documents issued by the procuring authority that set out:

  • The basis or requirements for submitting the proposal (which documents and in which format and contents the bidder has to submit)

  • The basis of the evaluation criteria for selecting the preferred bidder or awardee

  • The PPP contract that will be signed with the successful bidder and other annexed information such as forms, templates, complementary information for reference purposes, and so on. (Source)

In a single-stage procedure, the contents of the Request for Qualifications (RFQ) are embedded in the same set of documents.

Use Document objects in the tender/documents array to provide links to these documents. Each document's documentType field should be set to a value from the document type codelist, to identify the type of document being disclosed.

Example: See section I.4 for JSON and flattened examples of the documents building block.

II.4. Evaluation criteria

Evaluation criteria: brief description with weightage

Links to these documents should be provided using Document objects in the tender/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'evaluationCriteria'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

II.5. Evaluation committee information

Brief information on constitution of the evaluation committees

Links to these documents can be provided using Document objects in the tender/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'evaluationCommittee'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

II.6. Negotiation parameters

Negotiation parameters: brief description of the parameters for negotiation with preferred proponent

Links to these documents can be provided using Document objects in the tender/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'negotiationParameters'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

II.7. Pre-bid meeting minutes

Minutes of pre-bid meetings

Links to these documents can be provided using Document objects in the tender/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'minutes'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

II.8. Contract award

II.8.1. Organization details

Details of the preferred bidder, including name and contact details, should be provided using an Organization object in the parties array. The party's roles array should include the 'supplier' code, and the party's contactPoint field can be used to provide details of a named representative.

JSON example:

{
    "id": "MEGA",
    "name": "Mega Consortium",
    "roles": [
        "supplier"
    ],
    "contactPoint": {
        "name": "Enquiries team",
        "email": "enquiries@mega.example",
        "telephone": "12 34 56 78",
        "url": "http://mega.example"
    },
    "shareholders": [
        {
            "id": "1",
            "shareholder": {
                "id": "XX-XXX-11111111",
                "name": "Alpha Holdings Ltd"
            },
            "shareholding": 0.3337,
            "votingRights": "additional",
            "votingRightsDetails": "Alpha Holdings Ltd. is entitled to 5 votes per share.",
            "notes": "Alpha Holdings Ltd. must maintain a minimum shareholding of 30% in the project company until 10 years from the date of commissioning have elapsed."
        },
        {
            "id": "2",
            "shareholder": {
                "id": "XX-XXX-22222222",
                "name": "Beta Investment Company Ltd"
            },
            "shareholding": 0.2336,
            "votingRights": "ordinary"
        },
        {
            "id": "3",
            "shareholder": {
                "id": "XX-XXX-33333333",
                "name": "Gamma Finance Corporation"
            },
            "shareholding": 0.0334,
            "votingRights": "ordinary"
        },
        {
            "id": "4",
            "shareholder": {
                "id": "XX-XXX-44444444",
                "name": "Delta Investments"
            },
            "shareholding": 0.0334,
            "votingRights": "ordinary"
        },
        {
            "id": "5",
            "shareholder": {
                "id": "XX-XXX-55555555",
                "name": "Epsilon"
            },
            "shareholding": 0.0935,
            "votingRights": "ordinary"
        },
        {
            "id": "6",
            "shareholder": {
                "id": "XX-XXX-66666666",
                "name": "Zeta Joint Investments"
            },
            "shareholding": 0.1268,
            "votingRights": "ordinary"
        },
        {
            "id": "7",
            "shareholder": {
                "id": "XX-XXX-77777777",
                "name": "Eta Fund"
            },
            "shareholding": 0.0654,
            "votingRights": "ordinary"
        },
        {
            "id": "8",
            "shareholder": {
                "id": "XX-XXX-88888888",
                "name": "Theta Cable"
            },
            "shareholding": 0.0401,
            "votingRights": "none"
        },
        {
            "id": "9",
            "shareholder": {
                "id": "XX-XXX-99999999",
                "name": "Iota Telecoms"
            },
            "shareholding": 0.0401,
            "votingRights": "none"
        }
    ]
}

Flattened example (showing top-level fields only)

parties/0/id

parties/0/name

parties/0/roles

MEGA

Mega Consortium

supplier

II.8.2. Organization reference

A reference to the preferred bidder should be provided using an OrganizationReference object in the awards/suppliers field, referencing the relevant entry in the parties section.

JSON example:

[
    {
        "id": "MEGA",
        "name": "Mega Consortium"
    }
]

Flattened example (showing top-level fields only)

awards/0/suppliers/id

awards/0/suppliers/name

MEGA

Mega Consortium

III. Risk

III.1. Individual risk allocation information

Listing of risks with information on who bears the risk. Countries, sectors, and individual projects may use different categorizations. Several risks can be further broken down into components or listed together. If within a large category of risk subcategories are allocated to different parties, it makes sense to show the subcategories clearly.

The APMG Public-Private Partnerships Certification Program Guide's glossary defines it as:

The allocation of the consequences of each risk to one of the parties in the contract, or agreeing to deal with the risk through a specified mechanism which may involve sharing the risk.

III.1.1. Structured risk allocation information

Structured information on the risk allocation should be provided using the contract/riskAllocation section.

The following information should be provided for each risk:

  • Risk category

  • Description

  • Allocation

Additional free text information on each risk allocation, for example the rationale for the allocation, can also be provided.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/riskAllocation

array[Risk]

Risk allocation

Information on the allocation of risks relating to the contract.

contracts/0/riskAllocation/0/id

[string, integer]

Required

Risk ID

A local identifier for this risk, unique within this block. This field is used to keep track of multiple revisions of a risk through the compilation from release to record mechanism.

contracts/0/riskAllocation/0/category

[string, null]

Risk category

The category of the risk.

contracts/0/riskAllocation/0/description

[string, null]

Risk description

A description for this risk.

contracts/0/riskAllocation/0/allocation

[string, null]

Risk allocation

The party which retains the risk.

contracts/0/riskAllocation/0/notes

[string, null]

Risk notes

Additional notes on the risk, for example the rationale for the allocation

JSON example:

[
    {
        "id": "1",
        "category": "all",
        "description": "Risks arising from the Project",
        "allocation": "privateParty"
    },
    {
        "id": "2",
        "category": "operationPerformance",
        "description": "Risks arising from the maintenance, use and operation of the pair of optic fiber strands (filaments) of the Backbone Network",
        "allocation": "privateParty"
    },
    {
        "id": "3",
        "category": "environmental",
        "description": "Environmental risks",
        "allocation": "privateParty"
    },
    {
        "id": "4",
        "category": "compliance",
        "description": "Risks deriving from the compliance or lack thereof of regulatory obligations related to the development of the Project",
        "allocation": "privateParty"
    },
    {
        "id": "5",
        "category": "construction",
        "description": "Risks deriving from procurement or lack thereof of the necessary licenses and permits for the Project\u2019s development",
        "allocation": "privateParty"
    },
    {
        "id": "6",
        "category": "construction",
        "description": "Risks arising from the procurement or lack thereof of rights of way required for the Project\u2019s development",
        "allocation": "privateParty"
    },
    {
        "id": "7",
        "category": "financial",
        "description": "Financial risks including interest rate risk, exchange rate risk and bankability risk",
        "allocation": "privateParty"
    },
    {
        "id": "8",
        "category": "financial",
        "description": "Risks related to the financing of the Project",
        "allocation": "privateParty"
    },
    {
        "id": "9",
        "category": "financial",
        "description": "Risks due to variations or increase in the cost of the Project\u2019s execution",
        "allocation": "privateParty"
    },
    {
        "id": "10",
        "category": "forceMajeure",
        "description": "Risks due to fortuitous or force majeure events",
        "allocation": "privateParty"
    },
    {
        "id": "11",
        "category": "governance",
        "description": "Risks deriving from the breach of any obligations assumed by subcontractors",
        "allocation": "privateParty"
    },
    {
        "id": "12",
        "category": "all",
        "description": "Others set forth in, or arising from the execution of, this Agreement",
        "allocation": "privateParty",
        "notes": "The private party assumes all risks relating to the project."
    }
]

Flattened example (showing top-level fields only)

contracts/0/riskAllocation/id

contracts/0/riskAllocation/category

contracts/0/riskAllocation/description

contracts/0/riskAllocation/allocation

contracts/0/riskAllocation/notes

1

all

Risks arising from the Project

privateParty

2

operationPerformance

Risks arising from the maintenance, use and operation of the pair of optic fiber strands (filaments) of the Backbone Network

privateParty

3

environmental

Environmental risks

privateParty

4

compliance

Risks deriving from the compliance or lack thereof of regulatory obligations related to the development of the Project

privateParty

5

construction

Risks deriving from procurement or lack thereof of the necessary licenses and permits for the Project’s development

privateParty

6

construction

Risks arising from the procurement or lack thereof of rights of way required for the Project’s development

privateParty

7

financial

Financial risks including interest rate risk, exchange rate risk and bankability risk

privateParty

8

financial

Risks related to the financing of the Project

privateParty

9

financial

Risks due to variations or increase in the cost of the Project’s execution

privateParty

10

forceMajeure

Risks due to fortuitous or force majeure events

privateParty

11

governance

Risks deriving from the breach of any obligations assumed by subcontractors

privateParty

12

all

Others set forth in, or arising from the execution of, this Agreement

privateParty

The private party assumes all risks relating to the project.

III.1.2. Additional financial modelling for risks

Links to these documents can be provided using Document objects in the contracts/documents array. Each document's documentType field should be set to 'riskProvisions'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

IV. Evaluation of PPP option

IV.1. Evaluation report

Link to evaluation report (value for money or other)

Links to these documents can be provided using Document objects in the awards/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'evaluationReports'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

IV.2. Summary data

IV.2.1. Rationale for project as PPP (specific)

State the rationale for doing the project as a PPP, including any qualitative or quantitative value-for-money or other analysis that might have been used. If nonfinancial benefits have been quantified or considered, these could be stated

Note: Choice of methodology affects the costs to the public and it is important to assure them that the PPP mode selected is the best possible in terms of cost, given equal standards of service in all modes tested.

Links to these documents can be provided using Document objects in the awards/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'valueForMoneyAnalysis'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

IV.2.2.1. Discount rate and risk premium - structured data

The discount rates used should be specified in the disclosure along with the risk premium used, if any, and an explanation for the rate of risk premium used, referring to guidance, if any available in this regard or describing project-specific circumstances that justify the risk premium rate used.

Structured information and supporting details about the discount rate and risk premium used by government to evaluate the PPP should be provided in the award/evaluationIndicators section.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

awards/0/evaluationIndicators

object

Evaluation of PPP option

Key indicators that describe how the PPP option has been evaluated by government.

awards/0/evaluationIndicators/riskPremium

[number, null]

Risk premium

The risk premium used by government when evaluating the PPP option expressed as a decimal fraction (e.g. 3.2% = 0.032). An explanation of the risk premium used should be provided in the riskPremiumDetails field.

awards/0/evaluationIndicators/riskPremiumDetails

[string, null]

Risk premium details

Further details on the risk premium used including an explanation of why it was used.

awards/0/evaluationIndicators/discountRate

[number, null]

Discount rate

The discount rate used by government when evaluating the PPP option expressed as a decimal fraction (e.g. 3.2% = 0.032). Further details can be provided in the discountRateDetails field.

awards/0/evaluationIndicators/discountRateDetails

[string, null]

Discount rate details

Further details on the discount rate used.

awards/0/evaluationIndicators/netPresentValue

object

Net present value

The discounted value of an investment's cash inflows minus the discounted value of its cash outflows. Further details can be provided in the netPresentValueRateDetails field.

awards/0/evaluationIndicators/netPresentValue/amount

[number, null]

Amount

Amount as a number.

awards/0/evaluationIndicators/netPresentValue/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

awards/0/evaluationIndicators/netPresentValueDetails

[string, null]

Net present value details

Further details on the calculation of the net present value.

JSON example:

{
    "riskPremium": 0.0092,
    "riskPremiumDetails": "Based on a market risk premium of 6.0% (per government guidelines) and an asset beta of 0.45 (per a sample of listed telecommunication network providers) the project risk allocation gives rise to a risk premium of 0.92%",
    "discountRate": 0.03,
    "discountRateDetails": "Based on the current long term public sector bond rate",
    "netPresentValue": {
        "amount": 118044591901.35034,
        "currency": "USD"
    }
}

Flattened example (showing top-level fields only)

awards/0/evaluationIndicators/riskPremium

awards/0/evaluationIndicators/riskPremiumDetails

awards/0/evaluationIndicators/discountRate

awards/0/evaluationIndicators/discountRateDetails

0.0092

Based on a market risk premium of 6.0% (per government guidelines) and an asset beta of 0.45 (per a sample of listed telecommunication network providers) the project risk allocation gives rise to a risk premium of 0.92%

0.03

Based on the current long term public sector bond rate

IV.2.2.2. Discount rate and risk premium - supporting documentation

Links to supporting documentation about the discount rate and risk premium used by government to evaluate the PPP can be provided using Document objects in the awards/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'discountRate'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

IV.2.3. Risk comparison

Risk comparison of other financing mechanisms should be specified.

Links to these documents can be provided using Document objects in the awards/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'riskComparison'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

V. Financial Information

V.1. Debt-equity ratio

Structured information and supporting details about the debt-equity ratio for the PPP should be provided in the contract/financeSummary section.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/financeSummary

object

Finance summary

Key indicators that describe the financial model of the PPP.

contracts/0/financeSummary/debtEquityRatio

[number, null]

Debt equity ratio

The debt-equity ratio of the project, expressed as a decimal value. The World Bank PPPIRC defines the debt equity ratio as 'long term debt (divided by) the shareholder equity of the project company'. Also known as 'leverage' or 'gearing'. Further details on the debt equity ratio can be provided in the debtEquityRatioDetails field.

contracts/0/financeSummary/debtEquityRatioDetails

[string, null]

Debt equity ratio details

Further details on the calculation of the debt equity ratio.

contracts/0/financeSummary/shareCapital

object

Share capital

The value of the capital in the project that comes from the issue of shares. Further details on the share capital can be provided in the shareCapitalDetails field.

contracts/0/financeSummary/shareCapital/amount

[number, null]

Amount

Amount as a number.

contracts/0/financeSummary/shareCapital/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

contracts/0/financeSummary/shareCapitalDetails

[string, null]

Share capital details

Further details on the calculation of the share capital.

contracts/0/financeSummary/subsidyRatio

[number, null]

Subsidy ratio

Subsidy as a proportion of project value, expressed as a decimal fraction (e.g. 3.2% = 0.032). Further details of the subsidy ratio can be provided in the subsidyRatioDetails field.

contracts/0/financeSummary/subsidyRatioDetails

[string, null]

Subsidy ratio details

Further details on the calculation of the subsidy ratio.

contracts/0/financeSummary/projectIRR

[number, null]

Project Internal Rate of Return

The internal rate of return of the project, expressed as a decimal fraction (e.g. 3.2% = 0.032). The APMG PPP Certification Program defines IRR as 'The rate of return of an investment calculated from its projected cash flows. The internal rate of return (IRR) is also the discount rate that equates the present value of a future stream of cash flows to the initial investment'. Further details on the project IRR can be provided in the projectIRRDetails field.

contracts/0/financeSummary/projectIRRDetails

[string, null]

Project IRR details

Further details on the calculation of the project IRR.

JSON example:

{
    "debtEquityRatio": 2.05,
    "debtEquityRatioDetails": "Until the target population coverage is reached mega Consortium must comply with a contribution of capital of at least 30% of the total value of the company"
}

Flattened example (showing top-level fields only)

contracts/0/financeSummary/debtEquityRatio

contracts/0/financeSummary/debtEquityRatioDetails

2.05

Until the target population coverage is reached mega Consortium must comply with a contribution of capital of at least 30% of the total value of the company

V.2. Share capital

Structured information and supporting details about the share capital of the PPP should be provided in the contract/financeSummary section.

Schema: See above

JSON example:

{
    "shareCapital": {
        "amount": 20000000,
        "currency": "USD"
    },
    "shareCapitalDetails": "See the contract.financing and shareholders sections for further details."
}

Flattened example (showing top-level fields only)

contracts/0/financeSummary/shareCapitalDetails

See the contract.financing and shareholders sections for further details.

V.3. Shareholders with proportion held and voting rights

V.3.1. Shareholder organization details

Details of the shareholders should be provided using Organization objects in the parties array. Each party's roles array should include the 'equityInvestor' code.

JSON example:

{
    "id": "XX-XXX-11111111",
    "name": "Alpha Holdings Ltd",
    "roles": [
        "equityInvestor"
    ],
    "identifier": {
        "scheme": "XX-XXX",
        "id": "11111111",
        "legalName": "Alpha Holdings Ltd",
        "uri": "https://opencorporates.com/companies/xx/11111111"
    },
    "address": {
        "streetAddress": "1 Bank Street",
        "locality": "Capital City",
        "region": "Capital State",
        "postalCode": "CS 111111",
        "countryName": "Example Country"
    },
    "contactPoint": {
        "name": "Bid team",
        "email": "bids@alphaholdings.example",
        "telephone": "11 11 11 11",
        "faxNumber": "11 11 11 12",
        "url": "http://bids.alphaholdings.example"
    },
    "beneficialOwnership": {
        "description": "Alpha Holdings is wholly controlled by Alpha Trust"
    }
}

Flattened example (showing top-level fields only)

parties/4/id

parties/4/name

parties/4/roles

XX-XXX-11111111

Alpha Holdings Ltd

equityInvestor

V.3.1. Proportion held and voting rights

Structured information about each shareholder on the proportion of shares held and voting rights should be provided in the entry in the parties/shareholders section.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

parties/0/shareholders

array[Shareholder]

Organization shareholders

A list of shareholders in the organization: used to provide company ownership information for firms, primarily in the case of large and complex contracts, or Public Private Partnerships, that require disclosure of this information for certain bidders or awarded parties.

parties/0/shareholders/0/id

[string]

Required

Shareholder ID

A local identifier for this shareholder, unique within this block. This field is used to keep track of multiple revisions of a shareholder through the compilation from release to record mechanism.

parties/0/shareholders/0/shareholder

object

Shareholder organization reference.

An organization reference pointing the entry in the parties section for the shareholding organization.

parties/0/shareholders/0/shareholder/name

[string, null]

Organization name

The name of the party being referenced. This must match the name of an entry in the parties section.

parties/0/shareholders/0/shareholder/id

[string, integer]

Organization ID

The id of the party being referenced. This must match the id of an entry in the parties section.

parties/0/shareholders/0/shareholder/identifier

object

Primary identifier

The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the organization identifier guidance for the preferred scheme and identifier to use.

parties/0/shareholders/0/shareholder/identifier/scheme

[string, null]

Scheme

Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the Organization Identifier Scheme codelist.

parties/0/shareholders/0/shareholder/identifier/id

[string, integer, null]

ID

The identifier of the organization in the selected scheme.

parties/0/shareholders/0/shareholder/identifier/legalName

[string, null]

Legal Name

The legally registered name of the organization.

parties/0/shareholders/0/shareholder/identifier/uri

[string, null]

uri

URI

A URI to identify the organization, such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.

parties/0/shareholders/0/shareholder/address

object

Address

(Deprecated outside the parties section)

parties/0/shareholders/0/shareholder/address/streetAddress

[string, null]

Street address

The street address. For example, 1600 Amphitheatre Pkwy.

parties/0/shareholders/0/shareholder/address/locality

[string, null]

Locality

The locality. For example, Mountain View.

parties/0/shareholders/0/shareholder/address/region

[string, null]

Region

The region. For example, CA.

parties/0/shareholders/0/shareholder/address/postalCode

[string, null]

Postal code

The postal code. For example, 94043.

parties/0/shareholders/0/shareholder/address/countryName

[string, null]

Country name

The country name. For example, United States.

parties/0/shareholders/0/shareholder/additionalIdentifiers

array[Identifier]

Additional identifiers

(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the organization identifier guidance. This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.

parties/0/shareholders/0/shareholder/additionalIdentifiers/0/scheme

[string, null]

Scheme

Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the Organization Identifier Scheme codelist.

parties/0/shareholders/0/shareholder/additionalIdentifiers/0/id

[string, integer, null]

ID

The identifier of the organization in the selected scheme.

parties/0/shareholders/0/shareholder/additionalIdentifiers/0/legalName

[string, null]

Legal Name

The legally registered name of the organization.

parties/0/shareholders/0/shareholder/additionalIdentifiers/0/uri

[string, null]

uri

URI

A URI to identify the organization, such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.

parties/0/shareholders/0/shareholder/contactPoint

object

Contact point

(Deprecated outside the parties section)

parties/0/shareholders/0/shareholder/contactPoint/name

[string, null]

Name

The name of the contact person, department, or contact point, for correspondence relating to this contracting process.

parties/0/shareholders/0/shareholder/contactPoint/email

[string, null]

Email

The e-mail address of the contact point/person.

parties/0/shareholders/0/shareholder/contactPoint/telephone

[string, null]

Telephone

The telephone number of the contact point/person. This should include the international dialing code.

parties/0/shareholders/0/shareholder/contactPoint/faxNumber

[string, null]

Fax number

The fax number of the contact point/person. This should include the international dialing code.

parties/0/shareholders/0/shareholder/contactPoint/url

[string, null]

uri

URL

A web address for the contact point/person.

parties/0/shareholders/0/shareholding

[number, null]

Shareholding

The percentage of shares held by the shareholder, expressed as a decimal value between 0 and 1.

parties/0/shareholders/0/votingRights

[string, null]

Shareholder voting rights

The type of voting rights associated with the shares held by the shareholder.

parties/0/shareholders/0/votingRightsDetails

[string, null]

Shareholder voting rights details

Detailed information about the shareholder's voting rights. This field should be completed when the shareholder voting rights are restricted, additional or enhanced.

parties/0/shareholders/0/notes

[string, null]

Shareholder notes

Additional notes on this shareholder. This field should be used to provide details on any caps on equity transfer, or lock-in arrangements, applicable to this shareholder.

JSON example:

[
    {
        "id": "1",
        "shareholder": {
            "id": "XX-XXX-11111111",
            "name": "Alpha Holdings Ltd"
        },
        "shareholding": 0.3337,
        "votingRights": "additional",
        "votingRightsDetails": "Alpha Holdings Ltd. is entitled to 5 votes per share.",
        "notes": "Alpha Holdings Ltd. must maintain a minimum shareholding of 30% in the project company until 10 years from the date of commissioning have elapsed."
    },
    {
        "id": "2",
        "shareholder": {
            "id": "XX-XXX-22222222",
            "name": "Beta Investment Company Ltd"
        },
        "shareholding": 0.2336,
        "votingRights": "ordinary"
    },
    {
        "id": "3",
        "shareholder": {
            "id": "XX-XXX-33333333",
            "name": "Gamma Finance Corporation"
        },
        "shareholding": 0.0334,
        "votingRights": "ordinary"
    },
    {
        "id": "4",
        "shareholder": {
            "id": "XX-XXX-44444444",
            "name": "Delta Investments"
        },
        "shareholding": 0.0334,
        "votingRights": "ordinary"
    },
    {
        "id": "5",
        "shareholder": {
            "id": "XX-XXX-55555555",
            "name": "Epsilon"
        },
        "shareholding": 0.0935,
        "votingRights": "ordinary"
    },
    {
        "id": "6",
        "shareholder": {
            "id": "XX-XXX-66666666",
            "name": "Zeta Joint Investments"
        },
        "shareholding": 0.1268,
        "votingRights": "ordinary"
    },
    {
        "id": "7",
        "shareholder": {
            "id": "XX-XXX-77777777",
            "name": "Eta Fund"
        },
        "shareholding": 0.0654,
        "votingRights": "ordinary"
    },
    {
        "id": "8",
        "shareholder": {
            "id": "XX-XXX-88888888",
            "name": "Theta Cable"
        },
        "shareholding": 0.0401,
        "votingRights": "none"
    },
    {
        "id": "9",
        "shareholder": {
            "id": "XX-XXX-99999999",
            "name": "Iota Telecoms"
        },
        "shareholding": 0.0401,
        "votingRights": "none"
    }
]

Flattened example (showing top-level fields only)

parties/0/shareholders/id

parties/0/shareholders/shareholding

parties/0/shareholders/votingRights

1

0.3337

additional

Alpha Holdings Ltd. is entitled to 5 votes per share.

Alpha Holdings Ltd. must maintain a minimum shareholding of 30% in the project company until 10 years from the date of commissioning have elapsed.

2

0.2336

ordinary

3

0.0334

ordinary

4

0.0334

ordinary

5

0.0935

ordinary

6

0.1268

ordinary

7

0.0654

ordinary

8

0.0401

none

9

0.0401

none

V.4. Equity transfer caps

Certain contracts provide for caps on equity transfer in different stages of the contract, especially during the construction stage and for a few years thereafter. Give details of any such provisions.

V.4.1. Documentation of equity transfer caps

Links to these documents can be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'equityTransferCaps'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

V.4.2. Individual shareholder lock in arrangements

Information on equity transfer caps or lock in arrangements applicable to a particular shareholder can be provided in the parties/shareholders/notes field.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

parties/0/shareholders/0/notes

[string, null]

Shareholder notes

Additional notes on this shareholder. This field should be used to provide details on any caps on equity transfer, or lock-in arrangements, applicable to this shareholder.

JSON example:

{
    "id": "1",
    "shareholder": {
        "id": "XX-XXX-11111111",
        "name": "Alpha Holdings Ltd"
    },
    "shareholding": 0.3337,
    "votingRights": "additional",
    "votingRightsDetails": "Alpha Holdings Ltd. is entitled to 5 votes per share.",
    "notes": "Alpha Holdings Ltd. must maintain a minimum shareholding of 30% in the project company until 10 years from the date of commissioning have elapsed."
}

Flattened example (showing top-level fields only)

parties/0/shareholders/0/id

parties/0/shareholders/0/shareholding

parties/0/shareholders/0/votingRights

parties/0/shareholders/0/votingRightsDetails

parties/0/shareholders/0/notes

1

0.3337

additional

Alpha Holdings Ltd. is entitled to 5 votes per share.

Alpha Holdings Ltd. must maintain a minimum shareholding of 30% in the project company until 10 years from the date of commissioning have elapsed.

V.5. Lender and investor information

Commercial lenders, institutional investors, bilateral or multilateral lenders, public issue of bonds, supplier credit, other

V.5.1. Organization information

Details of the lenders and investors should be provided using Organization objects in the parties array. Each party's roles array should include the 'lender' or 'equityInvestor' code, as appropriate.

JSON example:

{
    "id": "XX-FI-22222222",
    "name": "Big Bank Corp",
    "roles": [
        "leadBank"
    ],
    "identifier": {
        "scheme": "XX-FI",
        "id": "22222222",
        "legalName": "Big Bank Corp",
        "uri": "http://bigbank.example"
    },
    "address": {
        "streetAddress": "2 Bank Street",
        "locality": "Capital City",
        "region": "Capital State",
        "postalCode": "CS 22222",
        "countryName": "Example Country"
    },
    "contactPoint": {
        "name": "Head Office",
        "email": "enquiries@bigbank.example",
        "telephone": "22 22 22 22",
        "faxNumber": "22 22 22 23",
        "url": "http://bigbank.example"
    }
}

Flattened example (showing top-level fields only)

parties/4/id

parties/4/name

parties/4/roles

XX-FI-22222222

Big Bank Corp

leadBank

V.5.2. Financing information

Details of the type of finance provided by each lender or investor should be provided in the contract/finance section.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/finance

array[Financing arrangements]

Finance

An array with details of each source of finance arranged for this contract.

contracts/0/finance/0/id

string

Required

ID

An identifier for this financing arrangement.

contracts/0/finance/0/title

[string, null]

Title

A short title for this financing arrangement.

contracts/0/finance/0/description

[string, null]

Description

A short description of this financing arrangement. This may include details of lender rights, step in arrangements, exchange rate guarantees, and for syndicated loans, details of syndication and any banks who are known parties to the loan.

contracts/0/finance/0/financingParty

object

Financing party

The party providing this financing arrangement.

contracts/0/finance/0/financingParty/name

[string, null]

Organization name

The name of the party being referenced. This must match the name of an entry in the parties section.

contracts/0/finance/0/financingParty/id

[string, integer]

Organization ID

The id of the party being referenced. This must match the id of an entry in the parties section.

contracts/0/finance/0/financingParty/identifier

object

Primary identifier

The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the organization identifier guidance for the preferred scheme and identifier to use.

contracts/0/finance/0/financingParty/identifier/scheme

[string, null]

Scheme

Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the Organization Identifier Scheme codelist.

contracts/0/finance/0/financingParty/identifier/id

[string, integer, null]

ID

The identifier of the organization in the selected scheme.

contracts/0/finance/0/financingParty/identifier/legalName

[string, null]

Legal Name

The legally registered name of the organization.

contracts/0/finance/0/financingParty/identifier/uri

[string, null]

uri

URI

A URI to identify the organization, such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.

contracts/0/finance/0/financingParty/address

object

Address

(Deprecated outside the parties section)

contracts/0/finance/0/financingParty/address/streetAddress

[string, null]

Street address

The street address. For example, 1600 Amphitheatre Pkwy.

contracts/0/finance/0/financingParty/address/locality

[string, null]

Locality

The locality. For example, Mountain View.

contracts/0/finance/0/financingParty/address/region

[string, null]

Region

The region. For example, CA.

contracts/0/finance/0/financingParty/address/postalCode

[string, null]

Postal code

The postal code. For example, 94043.

contracts/0/finance/0/financingParty/address/countryName

[string, null]

Country name

The country name. For example, United States.

contracts/0/finance/0/financingParty/additionalIdentifiers

array[Identifier]

Additional identifiers

(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the organization identifier guidance. This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.

contracts/0/finance/0/financingParty/additionalIdentifiers/0/scheme

[string, null]

Scheme

Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the Organization Identifier Scheme codelist.

contracts/0/finance/0/financingParty/additionalIdentifiers/0/id

[string, integer, null]

ID

The identifier of the organization in the selected scheme.

contracts/0/finance/0/financingParty/additionalIdentifiers/0/legalName

[string, null]

Legal Name

The legally registered name of the organization.

contracts/0/finance/0/financingParty/additionalIdentifiers/0/uri

[string, null]

uri

URI

A URI to identify the organization, such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.

contracts/0/finance/0/financingParty/contactPoint

object

Contact point

(Deprecated outside the parties section)

contracts/0/finance/0/financingParty/contactPoint/name

[string, null]

Name

The name of the contact person, department, or contact point, for correspondence relating to this contracting process.

contracts/0/finance/0/financingParty/contactPoint/email

[string, null]

Email

The e-mail address of the contact point/person.

contracts/0/finance/0/financingParty/contactPoint/telephone

[string, null]

Telephone

The telephone number of the contact point/person. This should include the international dialing code.

contracts/0/finance/0/financingParty/contactPoint/faxNumber

[string, null]

Fax number

The fax number of the contact point/person. This should include the international dialing code.

contracts/0/finance/0/financingParty/contactPoint/url

[string, null]

uri

URL

A web address for the contact point/person.

contracts/0/finance/0/financeType

[string, null]

Finance type

The type of finance arranged.

contracts/0/finance/0/financeCategory

[string, null]

Finance category

The nature of the finance. This information can be used when determining the order of preference for investors to get their money back in cases of liquidation.

contracts/0/finance/0/value

object

Value

The total value of this finance.

contracts/0/finance/0/value/amount

[number, null]

Amount

Amount as a number.

contracts/0/finance/0/value/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

contracts/0/finance/0/period

object

Finance period

What period is covered by this finance.

contracts/0/finance/0/period/startDate

[string, null]

date-time

Start date

The start date for the period. When known, a precise start date must be provided.

contracts/0/finance/0/period/endDate

[string, null]

date-time

End date

The end date for the period. When known, a precise end date must be provided.

contracts/0/finance/0/period/maxExtentDate

[string, null]

date-time

Maximum extent

The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.

contracts/0/finance/0/period/durationInDays

[integer, null]

Duration (days)

The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, should be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, should be equal to the difference between startDate and maxExtentDate.

contracts/0/finance/0/interestRate

object

Interest rate

The interest rate associated with this finance.

contracts/0/finance/0/interestRate/base

[string, number, null]

Base

The variable to which an additional margin amount is added to get the Interest amount. This can be specified as a fixed number, as a known variable (e.g. LIBOR or LIBOR+1%), or can be omitted if margin specifies the entire interest rate.

contracts/0/finance/0/interestRate/margin

[number, null]

Margin

The variable added to the base to give the Interest amount expressed as a decimal fraction (e.g. 12.5% = 0.125).

contracts/0/finance/0/interestRate/fixed

[boolean, null]

Fixed rate

A boolean field. If this interest rate of fixed, set to true. Otherwise, set to false.

contracts/0/finance/0/interestRate/notes

[string, null]

Notes

Any explanatory notes concerning the interest rate.

contracts/0/finance/0/repaymentFrequency

[number, null]

Repayment frequency (days)

What is the average repayment frequency (in days) for this source of finance. For example, for yearly, use 365; for monthly repayment use 30.4; for daily use 1. User interfaces may wish to translate this into a more user-friendly presentation, such as 'daily','monthly' or 'yearly'.

contracts/0/finance/0/stepInRights

[boolean, null]

Step in rights

Does provision of this finance confer any step in rights on the financing party? Step in rights are the lender's option to assume certain contractual responsibilities of a project party through managing their contract in cases when that party is not meeting its obligations under such a contract. This is a true/false field to indicate when step in rights exist. If there are step in rights, details should be provided in the description field, and in additional contract documents.

contracts/0/finance/0/exchangeRateGuarantee

[boolean, null]

Exchange rate guarantees

Is there an associated exchange rate guarantee with this source of finance. This is a true/false field to indicate when exchange rate guarantees exist. Details of any guarantees can be provided in the finance description, or in associated documents.

contracts/0/financeSummary

object

Finance summary

Key indicators that describe the financial model of the PPP.

contracts/0/financeSummary/debtEquityRatio

[number, null]

Debt equity ratio

The debt-equity ratio of the project, expressed as a decimal value. The World Bank PPPIRC defines the debt equity ratio as 'long term debt (divided by) the shareholder equity of the project company'. Also known as 'leverage' or 'gearing'. Further details on the debt equity ratio can be provided in the debtEquityRatioDetails field.

contracts/0/financeSummary/debtEquityRatioDetails

[string, null]

Debt equity ratio details

Further details on the calculation of the debt equity ratio.

contracts/0/financeSummary/shareCapital

object

Share capital

The value of the capital in the project that comes from the issue of shares. Further details on the share capital can be provided in the shareCapitalDetails field.

contracts/0/financeSummary/shareCapital/amount

[number, null]

Amount

Amount as a number.

contracts/0/financeSummary/shareCapital/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

contracts/0/financeSummary/shareCapitalDetails

[string, null]

Share capital details

Further details on the calculation of the share capital.

contracts/0/financeSummary/subsidyRatio

[number, null]

Subsidy ratio

Subsidy as a proportion of project value, expressed as a decimal fraction (e.g. 3.2% = 0.032). Further details of the subsidy ratio can be provided in the subsidyRatioDetails field.

contracts/0/financeSummary/subsidyRatioDetails

[string, null]

Subsidy ratio details

Further details on the calculation of the subsidy ratio.

contracts/0/financeSummary/projectIRR

[number, null]

Project Internal Rate of Return

The internal rate of return of the project, expressed as a decimal fraction (e.g. 3.2% = 0.032). The APMG PPP Certification Program defines IRR as 'The rate of return of an investment calculated from its projected cash flows. The internal rate of return (IRR) is also the discount rate that equates the present value of a future stream of cash flows to the initial investment'. Further details on the project IRR can be provided in the projectIRRDetails field.

contracts/0/financeSummary/projectIRRDetails

[string, null]

Project IRR details

Further details on the calculation of the project IRR.

JSON example:

{
    "id": "1",
    "title": "Primary senior debt financing agreement",
    "description": "Big Bank Corp retains the right to step in should Mega Consortium fail to comply with the repayment schedule for a period of 3 consecutive months.",
    "financingParty": {
        "id": "XX-FI-22222222",
        "name": "Big Bank Corp"
    },
    "financeCategory": "seniorDebt",
    "value": {
        "amount": 41000000,
        "currency": "USD"
    },
    "period": {
        "startDate": "2016-01-24T00:00:00Z",
        "endDate": "2021-01-23T00:00:00Z"
    },
    "interestRate": {
        "base": "LIBOR",
        "margin": 0.03,
        "fixed": false
    },
    "stepInRights": true,
    "exchangeRateGuarantee": false,
    "repaymentFrequency": 30.4
}

Flattened example (showing top-level fields only)

contracts/0/finance/0/id

contracts/0/finance/0/title

contracts/0/finance/0/description

contracts/0/finance/0/financeCategory

contracts/0/finance/0/stepInRights

contracts/0/finance/0/exchangeRateGuarantee

contracts/0/finance/0/repaymentFrequency

1

Primary senior debt financing agreement

Big Bank Corp retains the right to step in should Mega Consortium fail to comply with the repayment schedule for a period of 3 consecutive months.

seniorDebt

True

False

30.4

V.6. Debt information

Categorize senior debit, mezzanine debit, other

Details of all debt financing should be provided in the contract/finance section.

Note: Not all fields are required or applicable to all types of financing arrangement.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/finance/0/financeType

[string, null]

Finance type

The type of finance arranged.

contracts/0/finance/0/financeCategory

[string, null]

Finance category

The nature of the finance. This information can be used when determining the order of preference for investors to get their money back in cases of liquidation.

JSON example:

{
    "financeCategory": "seniorDebt"
}

Flattened example (showing top-level fields only)

contracts/0/finance/0/financeCategory

seniorDebt

V.7. Rate information

Amount and tenor of each, fixed or floating rate

Details of interest rates relating to each finance arrangement should be provided in the contract/finance section.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/finance/0/interestRate

object

Interest rate

The interest rate associated with this finance.

contracts/0/finance/0/interestRate/base

[string, number, null]

Base

The variable to which an additional margin amount is added to get the Interest amount. This can be specified as a fixed number, as a known variable (e.g. LIBOR or LIBOR+1%), or can be omitted if margin specifies the entire interest rate.

contracts/0/finance/0/interestRate/margin

[number, null]

Margin

The variable added to the base to give the Interest amount expressed as a decimal fraction (e.g. 12.5% = 0.125).

contracts/0/finance/0/interestRate/fixed

[boolean, null]

Fixed rate

A boolean field. If this interest rate of fixed, set to true. Otherwise, set to false.

contracts/0/finance/0/interestRate/notes

[string, null]

Notes

Any explanatory notes concerning the interest rate.

JSON example:

{
    "base": "LIBOR",
    "margin": 0.03,
    "fixed": false
}

Flattened example (showing top-level fields only)

contracts/0/finance/0/interestRate/base

contracts/0/finance/0/interestRate/margin

contracts/0/finance/0/interestRate/fixed

LIBOR

0.03

False

V.8. Security information

Security and step in arrangements

V.8.1. Structured security and step in information

Details of security and step in rights relating to each financing arrangement should be provided in the contract/finance/description field, whilst the contract/finance/stepInRights flag should be set for each financing arrangement to indicate whether step in rights apply.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/finance/0/description

[string, null]

Description

A short description of this financing arrangement. This may include details of lender rights, step in arrangements, exchange rate guarantees, and for syndicated loans, details of syndication and any banks who are known parties to the loan.

contracts/0/finance/0/stepInRights

[boolean, null]

Step in rights

Does provision of this finance confer any step in rights on the financing party? Step in rights are the lender's option to assume certain contractual responsibilities of a project party through managing their contract in cases when that party is not meeting its obligations under such a contract. This is a true/false field to indicate when step in rights exist. If there are step in rights, details should be provided in the description field, and in additional contract documents.

JSON example:

{
    "description": "Big Bank Corp retains the right to step in should Mega Consortium fail to comply with the repayment schedule for a period of 3 consecutive months.",
    "stepInRights": true
}

Flattened example (showing top-level fields only)

contracts/0/finance/0/description

contracts/0/finance/0/stepInRights

Big Bank Corp retains the right to step in should Mega Consortium fail to comply with the repayment schedule for a period of 3 consecutive months.

True

V.8.2. Security and step in documentation

Links to these documents can be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'financeArrangements'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

V.9. Forecast IRR

Structured information and supporting details about the forecast IRR of the PPP should be provided in the contract/financeSummary section.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/financeSummary

object

Finance summary

Key indicators that describe the financial model of the PPP.

contracts/0/financeSummary/debtEquityRatio

[number, null]

Debt equity ratio

The debt-equity ratio of the project, expressed as a decimal value. The World Bank PPPIRC defines the debt equity ratio as 'long term debt (divided by) the shareholder equity of the project company'. Also known as 'leverage' or 'gearing'. Further details on the debt equity ratio can be provided in the debtEquityRatioDetails field.

contracts/0/financeSummary/debtEquityRatioDetails

[string, null]

Debt equity ratio details

Further details on the calculation of the debt equity ratio.

contracts/0/financeSummary/shareCapital

object

Share capital

The value of the capital in the project that comes from the issue of shares. Further details on the share capital can be provided in the shareCapitalDetails field.

contracts/0/financeSummary/shareCapital/amount

[number, null]

Amount

Amount as a number.

contracts/0/financeSummary/shareCapital/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

contracts/0/financeSummary/shareCapitalDetails

[string, null]

Share capital details

Further details on the calculation of the share capital.

contracts/0/financeSummary/subsidyRatio

[number, null]

Subsidy ratio

Subsidy as a proportion of project value, expressed as a decimal fraction (e.g. 3.2% = 0.032). Further details of the subsidy ratio can be provided in the subsidyRatioDetails field.

contracts/0/financeSummary/subsidyRatioDetails

[string, null]

Subsidy ratio details

Further details on the calculation of the subsidy ratio.

contracts/0/financeSummary/projectIRR

[number, null]

Project Internal Rate of Return

The internal rate of return of the project, expressed as a decimal fraction (e.g. 3.2% = 0.032). The APMG PPP Certification Program defines IRR as 'The rate of return of an investment calculated from its projected cash flows. The internal rate of return (IRR) is also the discount rate that equates the present value of a future stream of cash flows to the initial investment'. Further details on the project IRR can be provided in the projectIRRDetails field.

contracts/0/financeSummary/projectIRRDetails

[string, null]

Project IRR details

Further details on the calculation of the project IRR.

JSON example:

{
    "projectIRR": 0.043
}

Flattened example (showing top-level fields only)

contracts/0/financeSummary/projectIRR

0.043

VI. Government Support

VI.1. Guarantee information

Detail the type and exact details of the guarantees provided - both explicit and contingent guarantees - such as minimum revenue guarantee, exchange rate guarantee, debit repayment guarantee and other guarantees. Provide links to fiscal commitments and contingent liabilities disclosure reports, if any.

VI.1.1. Structured information on guarantees

Structured information about financial guarantees can be provided in the contract finance block, with a financeCategory code of 'guarantee'. This allows information about the party providing the guarantee, the total value, and any period it covers, to be represented.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/finance

array[Financing arrangements]

Finance

An array with details of each source of finance arranged for this contract.

contracts/0/finance/0/id

string

Required

ID

An identifier for this financing arrangement.

contracts/0/finance/0/title

[string, null]

Title

A short title for this financing arrangement.

contracts/0/finance/0/description

[string, null]

Description

A short description of this financing arrangement. This may include details of lender rights, step in arrangements, exchange rate guarantees, and for syndicated loans, details of syndication and any banks who are known parties to the loan.

contracts/0/finance/0/financingParty

object

Financing party

The party providing this financing arrangement.

contracts/0/finance/0/financingParty/name

[string, null]

Organization name

The name of the party being referenced. This must match the name of an entry in the parties section.

contracts/0/finance/0/financingParty/id

[string, integer]

Organization ID

The id of the party being referenced. This must match the id of an entry in the parties section.

contracts/0/finance/0/financingParty/identifier

object

Primary identifier

The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the organization identifier guidance for the preferred scheme and identifier to use.

contracts/0/finance/0/financingParty/identifier/scheme

[string, null]

Scheme

Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the Organization Identifier Scheme codelist.

contracts/0/finance/0/financingParty/identifier/id

[string, integer, null]

ID

The identifier of the organization in the selected scheme.

contracts/0/finance/0/financingParty/identifier/legalName

[string, null]

Legal Name

The legally registered name of the organization.

contracts/0/finance/0/financingParty/identifier/uri

[string, null]

uri

URI

A URI to identify the organization, such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.

contracts/0/finance/0/financingParty/address

object

Address

(Deprecated outside the parties section)

contracts/0/finance/0/financingParty/address/streetAddress

[string, null]

Street address

The street address. For example, 1600 Amphitheatre Pkwy.

contracts/0/finance/0/financingParty/address/locality

[string, null]

Locality

The locality. For example, Mountain View.

contracts/0/finance/0/financingParty/address/region

[string, null]

Region

The region. For example, CA.

contracts/0/finance/0/financingParty/address/postalCode

[string, null]

Postal code

The postal code. For example, 94043.

contracts/0/finance/0/financingParty/address/countryName

[string, null]

Country name

The country name. For example, United States.

contracts/0/finance/0/financingParty/additionalIdentifiers

array[Identifier]

Additional identifiers

(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the organization identifier guidance. This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.

contracts/0/finance/0/financingParty/additionalIdentifiers/0/scheme

[string, null]

Scheme

Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the Organization Identifier Scheme codelist.

contracts/0/finance/0/financingParty/additionalIdentifiers/0/id

[string, integer, null]

ID

The identifier of the organization in the selected scheme.

contracts/0/finance/0/financingParty/additionalIdentifiers/0/legalName

[string, null]

Legal Name

The legally registered name of the organization.

contracts/0/finance/0/financingParty/additionalIdentifiers/0/uri

[string, null]

uri

URI

A URI to identify the organization, such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.

contracts/0/finance/0/financingParty/contactPoint

object

Contact point

(Deprecated outside the parties section)

contracts/0/finance/0/financingParty/contactPoint/name

[string, null]

Name

The name of the contact person, department, or contact point, for correspondence relating to this contracting process.

contracts/0/finance/0/financingParty/contactPoint/email

[string, null]

Email

The e-mail address of the contact point/person.

contracts/0/finance/0/financingParty/contactPoint/telephone

[string, null]

Telephone

The telephone number of the contact point/person. This should include the international dialing code.

contracts/0/finance/0/financingParty/contactPoint/faxNumber

[string, null]

Fax number

The fax number of the contact point/person. This should include the international dialing code.

contracts/0/finance/0/financingParty/contactPoint/url

[string, null]

uri

URL

A web address for the contact point/person.

contracts/0/finance/0/financeType

[string, null]

Finance type

The type of finance arranged.

contracts/0/finance/0/financeCategory

[string, null]

Finance category

The nature of the finance. This information can be used when determining the order of preference for investors to get their money back in cases of liquidation.

contracts/0/finance/0/value

object

Value

The total value of this finance.

contracts/0/finance/0/value/amount

[number, null]

Amount

Amount as a number.

contracts/0/finance/0/value/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

contracts/0/finance/0/period

object

Finance period

What period is covered by this finance.

contracts/0/finance/0/period/startDate

[string, null]

date-time

Start date

The start date for the period. When known, a precise start date must be provided.

contracts/0/finance/0/period/endDate

[string, null]

date-time

End date

The end date for the period. When known, a precise end date must be provided.

contracts/0/finance/0/period/maxExtentDate

[string, null]

date-time

Maximum extent

The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.

contracts/0/finance/0/period/durationInDays

[integer, null]

Duration (days)

The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, should be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, should be equal to the difference between startDate and maxExtentDate.

contracts/0/finance/0/interestRate

object

Interest rate

The interest rate associated with this finance.

contracts/0/finance/0/repaymentFrequency

[number, null]

Repayment frequency (days)

What is the average repayment frequency (in days) for this source of finance. For example, for yearly, use 365; for monthly repayment use 30.4; for daily use 1. User interfaces may wish to translate this into a more user-friendly presentation, such as 'daily','monthly' or 'yearly'.

contracts/0/finance/0/stepInRights

[boolean, null]

Step in rights

Does provision of this finance confer any step in rights on the financing party? Step in rights are the lender's option to assume certain contractual responsibilities of a project party through managing their contract in cases when that party is not meeting its obligations under such a contract. This is a true/false field to indicate when step in rights exist. If there are step in rights, details should be provided in the description field, and in additional contract documents.

contracts/0/finance/0/exchangeRateGuarantee

[boolean, null]

Exchange rate guarantees

Is there an associated exchange rate guarantee with this source of finance. This is a true/false field to indicate when exchange rate guarantees exist. Details of any guarantees can be provided in the finance description, or in associated documents.

contracts/0/financeSummary

object

Finance summary

Key indicators that describe the financial model of the PPP.

contracts/0/financeSummary/debtEquityRatio

[number, null]

Debt equity ratio

The debt-equity ratio of the project, expressed as a decimal value. The World Bank PPPIRC defines the debt equity ratio as 'long term debt (divided by) the shareholder equity of the project company'. Also known as 'leverage' or 'gearing'. Further details on the debt equity ratio can be provided in the debtEquityRatioDetails field.

contracts/0/financeSummary/debtEquityRatioDetails

[string, null]

Debt equity ratio details

Further details on the calculation of the debt equity ratio.

contracts/0/financeSummary/shareCapital

object

Share capital

The value of the capital in the project that comes from the issue of shares. Further details on the share capital can be provided in the shareCapitalDetails field.

contracts/0/financeSummary/shareCapital/amount

[number, null]

Amount

Amount as a number.

contracts/0/financeSummary/shareCapital/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

contracts/0/financeSummary/shareCapitalDetails

[string, null]

Share capital details

Further details on the calculation of the share capital.

contracts/0/financeSummary/subsidyRatio

[number, null]

Subsidy ratio

Subsidy as a proportion of project value, expressed as a decimal fraction (e.g. 3.2% = 0.032). Further details of the subsidy ratio can be provided in the subsidyRatioDetails field.

contracts/0/financeSummary/subsidyRatioDetails

[string, null]

Subsidy ratio details

Further details on the calculation of the subsidy ratio.

contracts/0/financeSummary/projectIRR

[number, null]

Project Internal Rate of Return

The internal rate of return of the project, expressed as a decimal fraction (e.g. 3.2% = 0.032). The APMG PPP Certification Program defines IRR as 'The rate of return of an investment calculated from its projected cash flows. The internal rate of return (IRR) is also the discount rate that equates the present value of a future stream of cash flows to the initial investment'. Further details on the project IRR can be provided in the projectIRRDetails field.

contracts/0/financeSummary/projectIRRDetails

[string, null]

Project IRR details

Further details on the calculation of the project IRR.

VI.1.2. Guarantee documentation

Links to documentation or reports on each guarantee should be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'guarantee'.

VI.2. Grant/Subsidy information

VI.2.1. Subsidy as a proportion of project value

VI.2.1. Structured information on subsidy as a proportion of project value

Structured information and supporting details about the subsidy ratio for the PPP should be provided in the contract/financeSummary section.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/financeSummary/subsidyRatio

[number, null]

Subsidy ratio

Subsidy as a proportion of project value, expressed as a decimal fraction (e.g. 3.2% = 0.032). Further details of the subsidy ratio can be provided in the subsidyRatioDetails field.

contracts/0/financeSummary/subsidyRatioDetails

[string, null]

Subsidy ratio details

Further details on the calculation of the subsidy ratio.

JSON example:

{
    "subsidyRatio": 0,
    "subsidyRatioDetails": "No government subsidy is provided for the project"
}

Flattened example (showing top-level fields only)

contracts/0/financeSummary/subsidyRatio

contracts/0/financeSummary/subsidyRatioDetails

0

No government subsidy is provided for the project

VI.2.1. Supporting documentation on subsidy as a proportion of project value

Links to these documents can be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'grants'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VI.2.2. Supporting documentation on capital subsidies

Capital subsidies paid during construction with periodicity or milestones

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'grants'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VI.2.3. Supporting documentation on operating subsidies

Operating subsidies and their periodicity or milestones

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to a value from the document type codelist, to identify the type of document being disclosed.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VI.3. Service payment information

These are payments made by the public authority or purchaser to the private provider for infrastructure services (applicable in PFI type projects)

VI.3.1. Structured information on individual service payments

Structured information on actual individual service payments can be provided in the contract/implementation/transactions section.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/implementation/transactions

array[Transaction information]

Transactions

A list of the spending transactions made against this contract

contracts/0/implementation/transactions/0/id

[string, integer]

Required

ID

A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference.

contracts/0/implementation/transactions/0/source

[string, null]

uri

Data source

Used to point either to a corresponding Fiscal Data Package, IATI file, or machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.

contracts/0/implementation/transactions/0/date

[string, null]

date-time

Date

The date of the transaction

contracts/0/implementation/transactions/0/value

object

Value

The value of the transaction.

contracts/0/implementation/transactions/0/value/amount

[number, null]

Amount

Amount as a number.

contracts/0/implementation/transactions/0/value/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

contracts/0/implementation/transactions/0/payer

object

Payer

An organization reference for the organization from which the funds in this transaction originate.

contracts/0/implementation/transactions/0/payer/name

[string, null]

Organization name

The name of the party being referenced. This must match the name of an entry in the parties section.

contracts/0/implementation/transactions/0/payer/id

[string, integer]

Organization ID

The id of the party being referenced. This must match the id of an entry in the parties section.

contracts/0/implementation/transactions/0/payer/identifier

object

Primary identifier

The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the organization identifier guidance for the preferred scheme and identifier to use.

contracts/0/implementation/transactions/0/payer/identifier/scheme

[string, null]

Scheme

Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the Organization Identifier Scheme codelist.

contracts/0/implementation/transactions/0/payer/identifier/id

[string, integer, null]

ID

The identifier of the organization in the selected scheme.

contracts/0/implementation/transactions/0/payer/identifier/legalName

[string, null]

Legal Name

The legally registered name of the organization.

contracts/0/implementation/transactions/0/payer/identifier/uri

[string, null]

uri

URI

A URI to identify the organization, such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.

contracts/0/implementation/transactions/0/payer/address

object

Address

(Deprecated outside the parties section)

contracts/0/implementation/transactions/0/payer/address/streetAddress

[string, null]

Street address

The street address. For example, 1600 Amphitheatre Pkwy.

contracts/0/implementation/transactions/0/payer/address/locality

[string, null]

Locality

The locality. For example, Mountain View.

contracts/0/implementation/transactions/0/payer/address/region

[string, null]

Region

The region. For example, CA.

contracts/0/implementation/transactions/0/payer/address/postalCode

[string, null]

Postal code

The postal code. For example, 94043.

contracts/0/implementation/transactions/0/payer/address/countryName

[string, null]

Country name

The country name. For example, United States.

contracts/0/implementation/transactions/0/payer/additionalIdentifiers

array[Identifier]

Additional identifiers

(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the organization identifier guidance. This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.

contracts/0/implementation/transactions/0/payer/additionalIdentifiers/0/scheme

[string, null]

Scheme

Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the Organization Identifier Scheme codelist.

contracts/0/implementation/transactions/0/payer/additionalIdentifiers/0/id

[string, integer, null]

ID

The identifier of the organization in the selected scheme.

contracts/0/implementation/transactions/0/payer/additionalIdentifiers/0/legalName

[string, null]

Legal Name

The legally registered name of the organization.

contracts/0/implementation/transactions/0/payer/additionalIdentifiers/0/uri

[string, null]

uri

URI

A URI to identify the organization, such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.

contracts/0/implementation/transactions/0/payer/contactPoint

object

Contact point

(Deprecated outside the parties section)

contracts/0/implementation/transactions/0/payer/contactPoint/name

[string, null]

Name

The name of the contact person, department, or contact point, for correspondence relating to this contracting process.

contracts/0/implementation/transactions/0/payer/contactPoint/email

[string, null]

Email

The e-mail address of the contact point/person.

contracts/0/implementation/transactions/0/payer/contactPoint/telephone

[string, null]

Telephone

The telephone number of the contact point/person. This should include the international dialing code.

contracts/0/implementation/transactions/0/payer/contactPoint/faxNumber

[string, null]

Fax number

The fax number of the contact point/person. This should include the international dialing code.

contracts/0/implementation/transactions/0/payer/contactPoint/url

[string, null]

uri

URL

A web address for the contact point/person.

contracts/0/implementation/transactions/0/payee

object

Payee

An organization reference for the organization which receives the funds in this transaction.

contracts/0/implementation/transactions/0/payee/name

[string, null]

Organization name

The name of the party being referenced. This must match the name of an entry in the parties section.

contracts/0/implementation/transactions/0/payee/id

[string, integer]

Organization ID

The id of the party being referenced. This must match the id of an entry in the parties section.

contracts/0/implementation/transactions/0/payee/identifier

object

Primary identifier

The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the organization identifier guidance for the preferred scheme and identifier to use.

contracts/0/implementation/transactions/0/payee/identifier/scheme

[string, null]

Scheme

Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the Organization Identifier Scheme codelist.

contracts/0/implementation/transactions/0/payee/identifier/id

[string, integer, null]

ID

The identifier of the organization in the selected scheme.

contracts/0/implementation/transactions/0/payee/identifier/legalName

[string, null]

Legal Name

The legally registered name of the organization.

contracts/0/implementation/transactions/0/payee/identifier/uri

[string, null]

uri

URI

A URI to identify the organization, such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.

contracts/0/implementation/transactions/0/payee/address

object

Address

(Deprecated outside the parties section)

contracts/0/implementation/transactions/0/payee/address/streetAddress

[string, null]

Street address

The street address. For example, 1600 Amphitheatre Pkwy.

contracts/0/implementation/transactions/0/payee/address/locality

[string, null]

Locality

The locality. For example, Mountain View.

contracts/0/implementation/transactions/0/payee/address/region

[string, null]

Region

The region. For example, CA.

contracts/0/implementation/transactions/0/payee/address/postalCode

[string, null]

Postal code

The postal code. For example, 94043.

contracts/0/implementation/transactions/0/payee/address/countryName

[string, null]

Country name

The country name. For example, United States.

contracts/0/implementation/transactions/0/payee/additionalIdentifiers

array[Identifier]

Additional identifiers

(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the organization identifier guidance. This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.

contracts/0/implementation/transactions/0/payee/additionalIdentifiers/0/scheme

[string, null]

Scheme

Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the Organization Identifier Scheme codelist.

contracts/0/implementation/transactions/0/payee/additionalIdentifiers/0/id

[string, integer, null]

ID

The identifier of the organization in the selected scheme.

contracts/0/implementation/transactions/0/payee/additionalIdentifiers/0/legalName

[string, null]

Legal Name

The legally registered name of the organization.

contracts/0/implementation/transactions/0/payee/additionalIdentifiers/0/uri

[string, null]

uri

URI

A URI to identify the organization, such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.

contracts/0/implementation/transactions/0/payee/contactPoint

object

Contact point

(Deprecated outside the parties section)

contracts/0/implementation/transactions/0/payee/contactPoint/name

[string, null]

Name

The name of the contact person, department, or contact point, for correspondence relating to this contracting process.

contracts/0/implementation/transactions/0/payee/contactPoint/email

[string, null]

Email

The e-mail address of the contact point/person.

contracts/0/implementation/transactions/0/payee/contactPoint/telephone

[string, null]

Telephone

The telephone number of the contact point/person. This should include the international dialing code.

contracts/0/implementation/transactions/0/payee/contactPoint/faxNumber

[string, null]

Fax number

The fax number of the contact point/person. This should include the international dialing code.

contracts/0/implementation/transactions/0/payee/contactPoint/url

[string, null]

uri

URL

A web address for the contact point/person.

contracts/0/implementation/transactions/0/uri

[string, null]

uri

Linked spending information

A URI pointing directly to a machine-readable record about this spending transaction.

contracts/0/implementation/transactions/0/amount

object

Amount

(Deprecated in 1.1. Use transaction.value instead) The value of the transaction. A negative value indicates a refund or correction.

contracts/0/implementation/transactions/0/amount/amount

[number, null]

Amount

Amount as a number.

contracts/0/implementation/transactions/0/amount/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

contracts/0/implementation/transactions/0/providerOrganization

object

Provider organization

(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.

contracts/0/implementation/transactions/0/providerOrganization/scheme

[string, null]

Scheme

Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the Organization Identifier Scheme codelist.

contracts/0/implementation/transactions/0/providerOrganization/id

[string, integer, null]

ID

The identifier of the organization in the selected scheme.

contracts/0/implementation/transactions/0/providerOrganization/legalName

[string, null]

Legal Name

The legally registered name of the organization.

contracts/0/implementation/transactions/0/providerOrganization/uri

[string, null]

uri

URI

A URI to identify the organization, such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.

contracts/0/implementation/transactions/0/receiverOrganization

object

Receiver organization

(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.

contracts/0/implementation/transactions/0/receiverOrganization/scheme

[string, null]

Scheme

Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the Organization Identifier Scheme codelist.

contracts/0/implementation/transactions/0/receiverOrganization/id

[string, integer, null]

ID

The identifier of the organization in the selected scheme.

contracts/0/implementation/transactions/0/receiverOrganization/legalName

[string, null]

Legal Name

The legally registered name of the organization.

contracts/0/implementation/transactions/0/receiverOrganization/uri

[string, null]

uri

URI

A URI to identify the organization, such as those provided by Open Corporates or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.

JSON example:

{
    "id": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3",
    "source": "http://finance.example.gov/spending/a94a8fe5ccb19ba61c4c0873d391e987982fbbd3",
    "date": "2017-04-01T00:00:00-06:00",
    "value": {
        "amount": 100000,
        "currency": "USD"
    },
    "payer": {
        "id": "MEGA",
        "name": "Mega Consortium"
    },
    "payee": {
        "id": "XX-GOV-99999999",
        "name": "National Fiber Infrastructure"
    },
    "uri": "http://finance.example.gov/spending/a94a8fe5ccb19ba61c4c0873d391e987982fbbd3",
    "relatedImplementationMilestone": {
        "id": "7",
        "title": "Fiber Network Access"
    }
}

Flattened example (showing top-level fields only)

contracts/0/implementation/transactions/0/id

contracts/0/implementation/transactions/0/source

contracts/0/implementation/transactions/0/date

contracts/0/implementation/transactions/0/uri

a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

http://finance.example.gov/spending/a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

2017-04-01T00:00:00-06:00

http://finance.example.gov/spending/a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

VI.3.2. Structured information on total service payments

Total payments and periodicity

Structured information on total service payments can be provided in the contract/implementation/charges section.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/implementation/charges

array[Charge]

Charges

Information on the revenue to be raised through charges, as set out in the contract or as subsequently revised during the life of the project.

contracts/0/implementation/charges/0/id

string

Required

Charge identifier

A local identifier for this specific charge. This field is used to keep track of revisions of a charge across multiple OCDS releases.

contracts/0/implementation/charges/0/title

[string, null]

Charge title

A descriptive title for this charge.

contracts/0/implementation/charges/0/paidBy

[string, null]

Paid by

Is this a user charge (paid by businesses or citizens using the facilities provided by the contract), or a charge paid by the government?

contracts/0/implementation/charges/0/period

object

Period

The period to which this charge applies.

contracts/0/implementation/charges/0/period/startDate

[string, null]

date-time

Start date

The start date for the period. When known, a precise start date must be provided.

contracts/0/implementation/charges/0/period/endDate

[string, null]

date-time

End date

The end date for the period. When known, a precise end date must be provided.

contracts/0/implementation/charges/0/period/maxExtentDate

[string, null]

date-time

Maximum extent

The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.

contracts/0/implementation/charges/0/period/durationInDays

[integer, null]

Duration (days)

The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, should be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, should be equal to the difference between startDate and maxExtentDate.

contracts/0/implementation/charges/0/estimatedValue

object

Estimated value

What is the estimated total value to be raised from this charge during this period.

contracts/0/implementation/charges/0/estimatedValue/amount

[number, null]

Amount

Amount as a number.

contracts/0/implementation/charges/0/estimatedValue/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

contracts/0/implementation/charges/0/actualValue

object

Actual value

In the implementation section, this field may be updated with the total revenue raised from this charge during this period.

contracts/0/implementation/charges/0/actualValue/amount

[number, null]

Amount

Amount as a number.

contracts/0/implementation/charges/0/actualValue/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

contracts/0/implementation/charges/0/notes

[string, null]

Notes

Any notes on this charge. This may include clarifying information.

JSON example:

[
    {
        "id": "2016-user",
        "title": "User charges for calendar year 2016 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 1019100000,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2016-01-01T00:00:00Z",
            "endDate": "2016-12-31T23:59:59Z"
        }
    },
    {
        "id": "2017-user",
        "title": "User charges for calendar year 2017 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 1129206411.9632988,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2017-01-01T00:00:00Z",
            "endDate": "2017-12-31T23:59:59Z"
        }
    },
    {
        "id": "2018-user",
        "title": "User charges for calendar year 2018 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 1251851033.2999582,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2018-01-01T00:00:00Z",
            "endDate": "2018-12-31T23:59:59Z"
        }
    },
    {
        "id": "2019-user",
        "title": "User charges for calendar year 2019 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 1388531911.8291566,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2019-01-01T00:00:00Z",
            "endDate": "2019-12-31T23:59:59Z"
        }
    },
    {
        "id": "2020-user",
        "title": "User charges for calendar year 2020 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 1540934201.6221073,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2020-01-01T00:00:00Z",
            "endDate": "2020-12-31T23:59:59Z"
        }
    },
    {
        "id": "2021-user",
        "title": "User charges for calendar year 2021 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 1710954518.3508425,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2021-01-01T00:00:00Z",
            "endDate": "2021-12-31T23:59:59Z"
        }
    },
    {
        "id": "2022-user",
        "title": "User charges for calendar year 2022 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 1900728590.0936043,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2022-01-01T00:00:00Z",
            "endDate": "2022-12-31T23:59:59Z"
        }
    },
    {
        "id": "2023-user",
        "title": "User charges for calendar year 2023 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 2112662666.062946,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2023-01-01T00:00:00Z",
            "endDate": "2023-12-31T23:59:59Z"
        }
    },
    {
        "id": "2024-user",
        "title": "User charges for calendar year 2024 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 2349469212.9025517,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2024-01-01T00:00:00Z",
            "endDate": "2024-12-31T23:59:59Z"
        }
    },
    {
        "id": "2025-user",
        "title": "User charges for calendar year 2025 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 2614207505.463013,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2025-01-01T00:00:00Z",
            "endDate": "2025-12-31T23:59:59Z"
        }
    },
    {
        "id": "2026-user",
        "title": "User charges for calendar year 2026 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 2910329807.877187,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2026-01-01T00:00:00Z",
            "endDate": "2026-12-31T23:59:59Z"
        }
    },
    {
        "id": "2027-user",
        "title": "User charges for calendar year 2027 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 3241733943.1234097,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2027-01-01T00:00:00Z",
            "endDate": "2027-12-31T23:59:59Z"
        }
    },
    {
        "id": "2028-user",
        "title": "User charges for calendar year 2028 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 3612823167.191009,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2028-01-01T00:00:00Z",
            "endDate": "2028-12-31T23:59:59Z"
        }
    },
    {
        "id": "2029-user",
        "title": "User charges for calendar year 2029 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 4028574399.8864455,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2029-01-01T00:00:00Z",
            "endDate": "2029-12-31T23:59:59Z"
        }
    },
    {
        "id": "2030-user",
        "title": "User charges for calendar year 2030 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 4494616021.073383,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2030-01-01T00:00:00Z",
            "endDate": "2030-12-31T23:59:59Z"
        }
    },
    {
        "id": "2031-user",
        "title": "User charges for calendar year 2031 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 5017316622.018526,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2031-01-01T00:00:00Z",
            "endDate": "2031-12-31T23:59:59Z"
        }
    },
    {
        "id": "2032-user",
        "title": "User charges for calendar year 2032 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 5603886310.34598,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2032-01-01T00:00:00Z",
            "endDate": "2032-12-31T23:59:59Z"
        }
    },
    {
        "id": "2033-user",
        "title": "User charges for calendar year 2033 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 6262492408.340802,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2033-01-01T00:00:00Z",
            "endDate": "2033-12-31T23:59:59Z"
        }
    },
    {
        "id": "2034-user",
        "title": "User charges for calendar year 2034 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 7002391663.172808,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2034-01-01T00:00:00Z",
            "endDate": "2034-12-31T23:59:59Z"
        }
    },
    {
        "id": "2035-user",
        "title": "User charges for calendar year 2035 resulting from 4G, 3G, voice and SMS tariffs",
        "estimatedValue": {
            "amount": 7834081410.075029,
            "currency": "USD"
        },
        "paidBy": "user",
        "period": {
            "startDate": "2035-01-01T00:00:00Z",
            "endDate": "2035-12-31T23:59:59Z"
        }
    }
]

Flattened example (showing top-level fields only)

contracts/0/implementation/charges/id

contracts/0/implementation/charges/title

contracts/0/implementation/charges/paidBy

2016-user

User charges for calendar year 2016 resulting from 4G, 3G, voice and SMS tariffs

user

2017-user

User charges for calendar year 2017 resulting from 4G, 3G, voice and SMS tariffs

user

2018-user

User charges for calendar year 2018 resulting from 4G, 3G, voice and SMS tariffs

user

2019-user

User charges for calendar year 2019 resulting from 4G, 3G, voice and SMS tariffs

user

2020-user

User charges for calendar year 2020 resulting from 4G, 3G, voice and SMS tariffs

user

2021-user

User charges for calendar year 2021 resulting from 4G, 3G, voice and SMS tariffs

user

2022-user

User charges for calendar year 2022 resulting from 4G, 3G, voice and SMS tariffs

user

2023-user

User charges for calendar year 2023 resulting from 4G, 3G, voice and SMS tariffs

user

2024-user

User charges for calendar year 2024 resulting from 4G, 3G, voice and SMS tariffs

user

2025-user

User charges for calendar year 2025 resulting from 4G, 3G, voice and SMS tariffs

user

2026-user

User charges for calendar year 2026 resulting from 4G, 3G, voice and SMS tariffs

user

2027-user

User charges for calendar year 2027 resulting from 4G, 3G, voice and SMS tariffs

user

2028-user

User charges for calendar year 2028 resulting from 4G, 3G, voice and SMS tariffs

user

2029-user

User charges for calendar year 2029 resulting from 4G, 3G, voice and SMS tariffs

user

2030-user

User charges for calendar year 2030 resulting from 4G, 3G, voice and SMS tariffs

user

2031-user

User charges for calendar year 2031 resulting from 4G, 3G, voice and SMS tariffs

user

2032-user

User charges for calendar year 2032 resulting from 4G, 3G, voice and SMS tariffs

user

2033-user

User charges for calendar year 2033 resulting from 4G, 3G, voice and SMS tariffs

user

2034-user

User charges for calendar year 2034 resulting from 4G, 3G, voice and SMS tariffs

user

2035-user

User charges for calendar year 2035 resulting from 4G, 3G, voice and SMS tariffs

user

VI.3.3. Service payment calculation methodology

Methodology for calculating payments

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'servicePayments'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VI.3.4. Service payment indexation

Indexation used

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'servicePayments'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VI.4. Land leases, asset transfers information

  • Land transferred on lease or other basis by government: give details of property numbers with the quantum of land transferred, zoning information, conditions of transfer

  • Equipment transfers: details of equipment with conditions of transfer

  • Human resources/personnel transfers: details and conditions of transfer

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'lease' or 'assetTransfer'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VI.5. Other support

  • Non-complete clauses

  • Provision for revenue shortfall loan

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'otherGovernmentSupport'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VI.6. Revenue share information

  • Revenue share on base case

  • Revenue share on upside

  • Links to graphs: annual concessionaire payments to government

VI.6.1. Revenue share agreed in contract

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'revenueShare'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VI.6.2. Revenue share in operation during contract

Links to these documents should be provided using Document objects in the contracts/implementation/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'revenueShare'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VII. Tariffs

VII.1. Tariffs and pricing

This information will be required only where the infrastructure is financed partly or fully through the levy of user charges

Structured information on the tariffs defined in the contract and subsequent revisions to tariffs can be provided in the implementation section using the tariffs extension. Tariffs and pricing schedules can also be provided as documents.

VII.1.1. Structured tariff and pricing information

Structured information on the tariffs defined in the contract should be provided in the contract/tariffs section and subsequent revisions to tariffs can be provided in the implementation/tariffs section.

Information on who pays the tariff can be modelled using a dimension in cases where different charges apply to different parties.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/implementation/tariffs

array[Tariff]

Tariffs

The tariffs as they apply during the life of the project. Also known as tolls or user charges. These may be initially copied from the contract section, and then updated with any revisions over the lifetime of the implementation phase.

contracts/0/implementation/tariffs/0/id

string

Required

Tariff identifier

A local identifier for this specific tariff. This field is used to keep track of revisions of a tariff across multiple OCDS releases.

contracts/0/implementation/tariffs/0/title

[string, null]

Tariff title

The title of this tariff.

contracts/0/implementation/tariffs/0/paidBy

[string, null]

Paid by

Is this a user charge (paid by businesses or citizens using the facilities provided by the contract), or a charge paid by the government?

contracts/0/implementation/tariffs/0/period

object

Tariff period

The period to which this tariff applies.

contracts/0/implementation/tariffs/0/period/startDate

[string, null]

date-time

Start date

The start date for the period. When known, a precise start date must be provided.

contracts/0/implementation/tariffs/0/period/endDate

[string, null]

date-time

End date

The end date for the period. When known, a precise end date must be provided.

contracts/0/implementation/tariffs/0/period/maxExtentDate

[string, null]

date-time

Maximum extent

The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.

contracts/0/implementation/tariffs/0/period/durationInDays

[integer, null]

Duration (days)

The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, should be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, should be equal to the difference between startDate and maxExtentDate.

contracts/0/implementation/tariffs/0/value

object

Tariff value

The price per unit of this tariff.

contracts/0/implementation/tariffs/0/value/amount

[number, null]

Amount

Amount as a number.

contracts/0/implementation/tariffs/0/value/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

contracts/0/implementation/tariffs/0/unit

object

Tariff unit

The unit against which this tariff is charged.

contracts/0/implementation/tariffs/0/unit/name

[string, null]

Unit name

The name of the unit that the tariff is charged against. E.g. tonnes,

contracts/0/implementation/tariffs/0/unit/scheme

[string, null]

Scheme

The list from which units of measure identifiers are taken. Use of the scheme 'UNCEFACT' for the UN/CEFACT Recommendation 20 list of "Codes for Units of Measure Used in International Trade" is recommended.

contracts/0/implementation/tariffs/0/unit/id

[string, null]

ID

The identifier from the codelist referenced in the schema property. For example, with UNCEFACT, this is the value of the 'Common Code' column. From this identifier, applications can look-up the human readable name or symbol for this unit of measure.

contracts/0/implementation/tariffs/0/unit/uri

[string, null]

uri

URI

If the scheme used provide a machine-readable URI for this unit of measure, this can be given.

contracts/0/implementation/tariffs/0/dimensions

object

Tariff dimensions

Used to capture the different breakdowns in tariff charges. Any number of dimensions can be recorded within this object. Dimensions names should follow the camelCase conventions of OCDS.

contracts/0/implementation/tariffs/0/notes

[string, null]

Tariff notes

Any notes on this tariff line item. This may include clarifying information.

JSON example:

[
    {
        "id": "1",
        "title": "Wholesale 4G price per gigabyte",
        "value": {
            "amount": 1.25,
            "currency": "USD"
        },
        "period": {
            "startDate": "2016-01-24T00:00:00Z",
            "endDate": "2036-01-23T00:00:00Z"
        },
        "unit": {
            "name": "gigabytes",
            "scheme": "UNCEFACT",
            "id": "E34"
        }
    },
    {
        "id": "2",
        "title": "Wholesale 3G price per gigabyte",
        "value": {
            "amount": 0.75,
            "currency": "USD"
        },
        "period": {
            "startDate": "2016-01-24T00:00:00Z",
            "endDate": "2036-01-23T00:00:00Z"
        },
        "unit": {
            "name": "gigabytes",
            "scheme": "UNCEFACT",
            "id": "E34"
        }
    },
    {
        "id": "3",
        "title": "Wholesale call price per minute",
        "value": {
            "amount": 0.001,
            "currency": "USD"
        },
        "period": {
            "startDate": "2016-01-24T00:00:00Z",
            "endDate": "2036-01-23T00:00:00Z"
        },
        "unit": {
            "name": "minute [unit of time]",
            "scheme": "UNCEFACT",
            "id": "MIN"
        }
    },
    {
        "id": "4",
        "title": "Wholesale sms price per message",
        "value": {
            "amount": 0.0005,
            "currency": "USD"
        },
        "period": {
            "startDate": "2016-01-24T00:00:00Z",
            "endDate": "2036-01-23T00:00:00Z"
        },
        "unit": {
            "name": "message",
            "scheme": "UNCEFACT",
            "id": "NF"
        }
    }
]

Flattened example (showing top-level fields only)

contracts/0/implementation/tariffs/id

contracts/0/implementation/tariffs/title

1

Wholesale 4G price per gigabyte

2

Wholesale 3G price per gigabyte

3

Wholesale call price per minute

4

Wholesale sms price per message

VII.1.2. Tariff and pricing documentation

Tariffs and pricing schedules defined in the contract can be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'tariffs'.

Subsequent revisions to tariffs and pricing schedules can similarly be provided using Document objects in the contracts/implementation/documents array.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VII.2. Tariff setting methodology

Methodology for tariff setting/pricing

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'tariffMethod'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VII.3. Tariff review mechanism

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to a value from the document type codelist, to identify the type of document being disclosed.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VII.4. Tariff change illustrations

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to 'tariffIllustration'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VIII. Contract Termination

VIII.1. Events of default and termination payments

Describe key events of default under two major categories: concessionaires events of default and public authority's events of default. State the termination payments against each, stating clearly the methodology used for total payments. The following format may be used:

Provision for contract termination should be provided using Document objects in the contracts/documents array. A short summary of each document should be provided using its description field. Each document's documentType field should be set to 'termination'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

VIII.2. Handover information

State details of hand over of assets back to state, condition of assets, and any other conditions relating to hand over. Include details of provision for continuity of service

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document should be provided using its description field. Each document's documentType field should be set to 'handover'.

Example: See section I.4 for JSON and flattened examples of the documents building block.

IX. Renegotiations

IX.1. Contract variation details

State variations to contract, if any, after signing of the original contract detailing each change against original provisions. State in addition the details of renegotiations and circumstances leading to renegotiations. State specifically any change due to the renegotiated clauses in the following: roles and responsibilities relating to the project, risk allocation, fiscal exposure, that is, any change in fiscal commitments and contingent liabilities with a rationale for agreeing to the change.

JSON example:

{
    "date": "2020-01-24T00:00:00Z",
    "rationale": "The contract was extended in accordance with the provisions in section X.",
    "id": "1",
    "description": "This amendment extends the Example PPP contract to 2046-01-23.",
    "amendsReleaseID": "5.1.1",
    "releaseID": "7.1.1"
}

Flattened example (showing top-level fields only)

contracts/0/amendments/0/date

contracts/0/amendments/0/rationale

contracts/0/amendments/0/id

contracts/0/amendments/0/description

contracts/0/amendments/0/amendsReleaseID

contracts/0/amendments/0/releaseID

2020-01-24T00:00:00Z

The contract was extended in accordance with the provisions in section X.

1

This amendment extends the Example PPP contract to 2046-01-23.

5.1.1

7.1.1

IX.1.1. Contract documents

The amended contract should be provided using a Document object in the contracts/documents array. A short summary of the variations to the contract should be provided using the document's description field. The document's documentType field should be set to a value from the document type codelist, to identify the type of document being disclosed.

IX.1.2. Description

Nature of Variation

A description of the nature of the variation should be provided in the amendment/description field.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/amendments/0/description

[string, null]

Description

A free text, or semi-structured, description of the changes made in this amendment.

IX.1.3. Rationale

Rationale for variation

A rationale for the variation should be provided in the amendment/rationale field.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/amendments/0/rationale

[string, null]

Rationale

An explanation for the amendment.

IX.1.4. Parties

Change in roles and responsibilities of the parties due to the variation, if any

Structured information on changes to the roles and responsibilities of the parties due to the variation should be provided by updating the relevant Organization objects in the parties array.

IX.1.5. Risk allocation

Change in original risk allocation due to the variation, if any

Structured information on changes to the original risk allocation due to the variation should be provided by updating the contract/riskAllocation section.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/riskAllocation

array[Risk]

Risk allocation

Information on the allocation of risks relating to the contract.

contracts/0/riskAllocation/0/id

[string, integer]

Required

Risk ID

A local identifier for this risk, unique within this block. This field is used to keep track of multiple revisions of a risk through the compilation from release to record mechanism.

contracts/0/riskAllocation/0/category

[string, null]

Risk category

The category of the risk.

contracts/0/riskAllocation/0/description

[string, null]

Risk description

A description for this risk.

contracts/0/riskAllocation/0/allocation

[string, null]

Risk allocation

The party which retains the risk.

contracts/0/riskAllocation/0/notes

[string, null]

Risk notes

Additional notes on the risk, for example the rationale for the allocation

IX.1.6. Fiscal commitments

Change in original fiscal commitments or contingent liabilities of government due to the variation, if any

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document should be provided using its description field. Each document's documentType field should be set to a value from the document type codelist, to identify the type of document being disclosed.

Example: See section I.4 for JSON and flattened examples of the documents building block.

IX.1.6. Costs

Change in capital or operational costs due to the variation, if any

Links to these documents should be provided using Document objects in the contracts/documents array. A short summary of each document should be provided using its description field. Each document's documentType field should be set to a value from the document type codelist, to identify the type of document being disclosed.

Example: See section I.4 for JSON and flattened examples of the documents building block.

IX.1.7. Tariffs

Change in tariffs or service levels due to the variation, if any

Structured information on changes to the tariffs should be provided by updating the contract/implementation/tariffs section.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/implementation/tariffs

array[Tariff]

Tariffs

The tariffs as they apply during the life of the project. Also known as tolls or user charges. These may be initially copied from the contract section, and then updated with any revisions over the lifetime of the implementation phase.

contracts/0/implementation/tariffs/0/id

string

Required

Tariff identifier

A local identifier for this specific tariff. This field is used to keep track of revisions of a tariff across multiple OCDS releases.

contracts/0/implementation/tariffs/0/title

[string, null]

Tariff title

The title of this tariff.

contracts/0/implementation/tariffs/0/paidBy

[string, null]

Paid by

Is this a user charge (paid by businesses or citizens using the facilities provided by the contract), or a charge paid by the government?

contracts/0/implementation/tariffs/0/period

object

Tariff period

The period to which this tariff applies.

contracts/0/implementation/tariffs/0/period/startDate

[string, null]

date-time

Start date

The start date for the period. When known, a precise start date must be provided.

contracts/0/implementation/tariffs/0/period/endDate

[string, null]

date-time

End date

The end date for the period. When known, a precise end date must be provided.

contracts/0/implementation/tariffs/0/period/maxExtentDate

[string, null]

date-time

Maximum extent

The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.

contracts/0/implementation/tariffs/0/period/durationInDays

[integer, null]

Duration (days)

The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, should be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, should be equal to the difference between startDate and maxExtentDate.

contracts/0/implementation/tariffs/0/value

object

Tariff value

The price per unit of this tariff.

contracts/0/implementation/tariffs/0/value/amount

[number, null]

Amount

Amount as a number.

contracts/0/implementation/tariffs/0/value/currency

[string, null]

Currency

The currency of the amount, from the closed currency codelist.

contracts/0/implementation/tariffs/0/unit

object

Tariff unit

The unit against which this tariff is charged.

contracts/0/implementation/tariffs/0/unit/name

[string, null]

Unit name

The name of the unit that the tariff is charged against. E.g. tonnes,

contracts/0/implementation/tariffs/0/unit/scheme

[string, null]

Scheme

The list from which units of measure identifiers are taken. Use of the scheme 'UNCEFACT' for the UN/CEFACT Recommendation 20 list of "Codes for Units of Measure Used in International Trade" is recommended.

contracts/0/implementation/tariffs/0/unit/id

[string, null]

ID

The identifier from the codelist referenced in the schema property. For example, with UNCEFACT, this is the value of the 'Common Code' column. From this identifier, applications can look-up the human readable name or symbol for this unit of measure.

contracts/0/implementation/tariffs/0/unit/uri

[string, null]

uri

URI

If the scheme used provide a machine-readable URI for this unit of measure, this can be given.

contracts/0/implementation/tariffs/0/dimensions

object

Tariff dimensions

Used to capture the different breakdowns in tariff charges. Any number of dimensions can be recorded within this object. Dimensions names should follow the camelCase conventions of OCDS.

contracts/0/implementation/tariffs/0/notes

[string, null]

Tariff notes

Any notes on this tariff line item. This may include clarifying information.

IX.1.8. Service levels

Structured information on changes to services levels should be provided by updating the Metric objects in the contracts/agreedMetrics array.

IX.1.9. Date

Date of variation

The date of the variation should be provided using the amendment/date field.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/amendments/0/date

[string, null]

date-time

Amendment date

The date of this amendment.

X. Performance Information

X.1. Actual annual demand

State the actual annual measured levels of demand or stated levels of demand in the providers report or contract managers report. Use the following format

Structured data about estimated demand should be provided using Metric objects in the contracts/implementation/metrics array.

A metric with an id of 'demand' should be given, with a series of observations that capture the actual demand for a given period. These estimates can be disaggregated by any number of dimensions contained as key-value pairs within each observation's dimensions object.

JSON example:

[
    {
        "id": "coverageNational",
        "title": "National Coverage",
        "description": "National Coverage Percentage. 4 MB/s down and 1 MB/s up should be provided.",
        "observations": [
            {
                "id": "coverageNational-2018-01",
                "period": {
                    "startDate": "2018-01-01T00:00:00-06:00",
                    "endDate": "2018-01-01T23:59:59-06:00"
                },
                "measure": "28.000000000000004",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            },
            {
                "id": "coverageNational-2018-02",
                "period": {
                    "startDate": "2018-02-01T00:00:00-06:00",
                    "endDate": "2018-02-01T23:59:59-06:00"
                },
                "measure": "28.75456422322693",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            },
            {
                "id": "coverageNational-2018-03",
                "period": {
                    "startDate": "2018-03-01T00:00:00-06:00",
                    "endDate": "2018-03-01T23:59:59-06:00"
                },
                "measure": "30.02900516763217",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            },
            {
                "id": "coverageNational-2018-04",
                "period": {
                    "startDate": "2018-04-01T00:00:00-06:00",
                    "endDate": "2018-04-01T23:59:59-06:00"
                },
                "measure": "31.463691974769038",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            },
            {
                "id": "coverageNational-2018-05",
                "period": {
                    "startDate": "2018-05-01T00:00:00-06:00",
                    "endDate": "2018-05-01T23:59:59-06:00"
                },
                "measure": "32.37392627895544",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            },
            {
                "id": "coverageNational-2018-06",
                "period": {
                    "startDate": "2018-06-01T00:00:00-06:00",
                    "endDate": "2018-06-01T23:59:59-06:00"
                },
                "measure": "33.58096581192749",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            },
            {
                "id": "coverageNational-2018-07",
                "period": {
                    "startDate": "2018-07-01T00:00:00-06:00",
                    "endDate": "2018-07-01T23:59:59-06:00"
                },
                "measure": "34.12218312917134",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            },
            {
                "id": "coverageNational-2018-08",
                "period": {
                    "startDate": "2018-08-01T00:00:00-06:00",
                    "endDate": "2018-08-01T23:59:59-06:00"
                },
                "measure": "35.49034585116197",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            },
            {
                "id": "coverageNational-2018-09",
                "period": {
                    "startDate": "2018-09-01T00:00:00-06:00",
                    "endDate": "2018-09-01T23:59:59-06:00"
                },
                "measure": "36.01369729178532",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            },
            {
                "id": "coverageNational-2018-10",
                "period": {
                    "startDate": "2018-10-01T00:00:00-06:00",
                    "endDate": "2018-10-01T23:59:59-06:00"
                },
                "measure": "37.59796116097293",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            },
            {
                "id": "coverageNational-2018-11",
                "period": {
                    "startDate": "2018-11-01T00:00:00-06:00",
                    "endDate": "2018-11-01T23:59:59-06:00"
                },
                "measure": "38.801825097556254",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            },
            {
                "id": "coverageNational-2018-12",
                "period": {
                    "startDate": "2018-12-01T00:00:00-06:00",
                    "endDate": "2018-12-01T23:59:59-06:00"
                },
                "measure": "39.13330020944114",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            },
            {
                "id": "coverageNational-2019-01",
                "period": {
                    "startDate": "2019-01-01T00:00:00-06:00",
                    "endDate": "2019-01-01T23:59:59-06:00"
                },
                "measure": "40.62244603673527",
                "unit": {
                    "name": "percent",
                    "id": "P1",
                    "scheme": "UNCEFACT"
                },
                "dimensions": {
                    "region": "National"
                }
            }
        ]
    }
]

Flattened example (showing top-level fields only)

contracts/0/implementation/metrics/id

contracts/0/implementation/metrics/title

contracts/0/implementation/metrics/description

coverageNational

National Coverage

National Coverage Percentage. 4 MB/s down and 1 MB/s up should be provided.

X.2. Actual annual revenue

Recommended only where revenue share clauses or other related clauses such as MRGs are present in the contract.

X.2.1. Structured information on annual revenues

State the actual annual total revenues reported in the financial statements and reports.

Structured data about aggregated annual revenues can be provided using Metric objects in the contracts/implementation/metrics array.

A metric with an id of 'revenue' should be given, with a series of observations that capture the actual revenue for a given period. These estimates can be disaggregated by any number of dimensions contained as key-value pairs within each observation's dimensions object.

Example: See section X.1 for JSON and flattened examples of the metrics building block.

X.2.2. Financial statements

Provide links to audited financial statements of the provider company.

Links to these documents should be provided using Document objects in the contracts/implementation/documents array. A short summary of each document can be provided using its description field. Each document's documentType field should be set to a value from the document type codelist, to identify the type of document being disclosed.

Example: See section I.4 for JSON and flattened examples of the documents building block.

X.3. Actual IRR

Recommended only where there is government equity investment or other form of government support that is substantial

Structured data about actual IRR can be provided using Metric objects in the contracts/implementation/metrics array.

A metric with an id of 'IRR' should be given, with a series of observations that capture the actual revenue for a given period. These estimates can be disaggregated by any number of dimensions contained as key-value pairs within each observation's dimensions object.

Example: See section X.1 for JSON and flattened examples of the metrics building block.

X.4. Actual KPI performance

State actual year-wise performance here against each of 10-12 identified key performance indicators

Structured data about actual performance against KPIs can be provided using Metric objects in the contracts/implementation/metrics array.

These estimates can be disaggregated by any number of dimensions contained as key-value pairs within each observation's dimensions object.

Example: See section X.1 for JSON and flattened examples of the metrics building block.

X.5. Performance failure information

State instances of performance failure during the year and the penalty or abatement. Provide information on the provision of the contract as well as the actual penalties imposed.

Structured data about actual performance failures, penalties and abatements and those provided for in the contract can be provided in the contract/implementation/performanceFailures section.

Schema: Information can be provided using the following OCDS fields.

Title

Description

Type

Format

Required

contracts/0/implementation/performanceFailures

array[Performance failure disclosure]

Performance failure disclosures

An array of performance failure disclosures, detailing performance failures for different periods and categories.

contracts/0/implementation/performanceFailures/0/id

string

Required

Identifier

A local identifier for this specific category and period of performance failure. This field is used to keep track of revisions of a charge across multiple OCDS releases.

contracts/0/implementation/performanceFailures/0/period

object

Performance failure period

The reporting period for these performance failures.

contracts/0/implementation/performanceFailures/0/period/startDate

[string, null]

date-time

Start date

The start date for the period. When known, a precise start date must be provided.

contracts/0/implementation/performanceFailures/0/period/endDate

[string, null]

date-time

End date

The end date for the period. When known, a precise end date must be provided.

contracts/0/implementation/performanceFailures/0/period/maxExtentDate

[string, null]

date-time

Maximum extent

The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.

contracts/0/implementation/performanceFailures/0/period/durationInDays

[integer, null]

Duration (days)

The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, should be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, should be equal to the difference between startDate and maxExtentDate.

contracts/0/implementation/performanceFailures/0/category

[string, null]

Performance failure category

The category into which these performance failures fall.

contracts/0/implementation/performanceFailures/0/events

[number, null]

Number of events

The number of performance failures for the given period and category.

contracts/0/implementation/performanceFailures/0/penaltyContracted

[string, null]

Contracted penalty

A free text description of the penalty or abatement provided for in the contract for this period, category and number of performance failures.

contracts/0/implementation/performanceFailures/0/penaltyImposed

[string, null]

Penalty imposed

A free text description of the penalty or abatement imposed for this period, category and number of performance failures.

contracts/0/implementation/performanceFailures/0/penaltyPaid

[boolean, null]

Penalty paid

A yes/no field indicating whether the penalty imposed for this period, category and number of performance failures has been paid.

JSON example:

[
    {
        "id": "1",
        "period": {
            "startDate": "2018-01-01T00:00:00Z",
            "endDate": "2018-12-31T23:59:59Z"
        },
        "category": "Service outages outside of scheduled maintenance",
        "events": 6,
        "penaltyContracted": "The developer will be subject to a penalty of $50,000 for each service outage outside of scheduled maintenance",
        "penaltyImposed": "300000.0",
        "penaltyPaid": true
    }
]

Flattened example (showing top-level fields only)

contracts/0/implementation/performanceFailures/id

contracts/0/implementation/performanceFailures/category

contracts/0/implementation/performanceFailures/events

contracts/0/implementation/performanceFailures/penaltyContracted

contracts/0/implementation/performanceFailures/penaltyImposed

contracts/0/implementation/performanceFailures/penaltyPaid

1

Service outages outside of scheduled maintenance

6

The developer will be subject to a penalty of $50,000 for each service outage outside of scheduled maintenance

300000.0

True

X.6. Performance assessment reports

Provide links to audit report, independent performance assessments of the the independent engineer and any other performance reports available for the project.

Links to these documents should be provided using Document objects in the contracts/implementation/documents array. A short summary of each document should be provided using its description field. Each document's documentType field should be set to a value from the document type codelist, to identify the type of document being disclosed.

Example: See section I.4 for JSON and flattened examples of the documents building block.