Schema reference

The tables below describe each of the fields and objects in OC4IDS. To see how they fit together, consult the schema browser.

Project

Title

Description

Type

Format

Required

id

string

Required

Identifier or Reference

A unique identifier or reference number for this infrastructure project, composed of a project identifier prefix and a local project identifier. For more information, see the project identifier guidance.

updated

string

date-time

Last updated

The date on which project-level information was last updated. This should not be changed when constituent contracting processes information changes, unless this project-level data has been updated as a result, or to provide explanations or justifications for those changes.

title

string

Project title

The title of the project.

description

string

Project description

A description of this project. This should usually be no longer than a single paragraph.

status

string

Status

The current phase or status of this project, from the projectStatus codelist.

period

object

Project period

The period over which this project is planned to run. This may be updated during the preparation phase as information becomes available to more accurately specify anticipated start and end dates, but should not be updated during the implementation or completion phases. The planned completion date of the project should be provided in period.endDate, which can be compared with the actual completion date in completion.endDate

See Period

sector

array[string]

Project sector

One or more values from the projectSector codelist representing the sector(s) this project relates to. More detailed sector breakdown information can be provided using the pattern [sector].[subsector]. Where subsector codes are used the parent code should also be included, e.g. ['transport', 'transport.air']

purpose

string

Project purpose

The socioeconomic purpose of this project.

additionalClassifications

array[Classification]

Additional classifications

One or more additional project classifications can be provided to describe the social or economic focus of the project. This classification may take place against a locally developed codelist, or a globally established codelist.

See Classification

type

string

Project type

Whether the primary focus of this project is the construction of a new asset or the rehabilitation or replacement of an existing asset, from the projectType codelist.

relatedProjects

array[Related project]

Related projects

References to projects related to the same set of infrastructure assets as this project. For example, a project for the replacement of a bridge might reference the earlier project for its initial construction.

See RelatedProject

assetLifetime

object

Asset lifetime

The anticipated lifetime of the asset after this project is completed. This may be provided as either explicit dates or an estimated duration.

See Period

locations

array[Delivery Location]

Project locations

Information about the location where a project is taking place. One or more locations may be provided, or the location may be described in a number of different ways, such as a point location for the central location of construction, and a gazetteer entry to describe the region where the project is taking place.

See Location

budget

object

Total project value

Specify the projected costs or allocated budget for the project (currency and amount). This cost should include land and property acquisition, environmental mitigation measures, health and safety provisions, client, consultant and contractor costs, as well as applicable taxes. Where this value includes costs incurred directly by the project owner or other agencies, which are not subject to procurement, then this value is likely to be higher than the sum of all the linked contracting processes. To indicate the profile of a budget over time, or the budget coming from different sources, the extended budgetBreakdown section may be used.

budget/amount

object

Amount

The projected costs or allocated budget for the project.

See Value

budget/requestDate

string

date-time

Request date

The date on which the project budget was requested.

budget/approvalDate

string

date-time

Approval date

The date on which the project budget was approved. Where documentary evidence for this exists, it may be included among the project documents with the documentType set to 'budgetApproval'.

budget/budgetBreakdown

array[Detailed budget breakdown]

Budget breakdown

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

See BudgetBreakdown

forecasts

array[Metric]

Forecasts

Forecast metrics for this project, such as planned physical or financial progress over time.

See Metric

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 project, or in other instances may be an arbitrary identifier.

forecasts/0/title

[string]

Title

The title of this metric

forecasts/0/description

[string]

Description

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

forecasts/0/observations

array[Observation]

Observations

An array of target or actual values for this metric.

See Observation

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.

forecasts/0/observations/0/period

object

Period

The period over which this observation is measured.

See Period

forecasts/0/observations/0/period/startDate

[string]

date-time

Start date

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

forecasts/0/observations/0/period/endDate

[string]

date-time

End date

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

forecasts/0/observations/0/period/maxExtentDate

[string]

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.

forecasts/0/observations/0/period/durationInDays

[integer]

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.

forecasts/0/observations/0/value

object

Value

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

See Value

forecasts/0/observations/0/value/amount

[number]

Amount

Amount as a number.

forecasts/0/observations/0/value/currency

[string]

Currency

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

forecasts/0/observations/0/measure

[string, number]

Measure

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

forecasts/0/observations/0/unit

object

Unit

Unit

forecasts/0/observations/0/unit/name

[string]

Unit name

The name of the unit.

forecasts/0/observations/0/unit/scheme

[string]

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.

forecasts/0/observations/0/unit/id

string

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.

forecasts/0/observations/0/unit/uri

[string]

uri

URI

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

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.

forecasts/0/observations/0/notes

[string]

Notes

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

parties

array[Organization]

Parties

Information on the parties (organizations, economic operators and other participants) who are involved in the project and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.

See Organization

publicAuthority

object

Public authority

The name and identifier of the public authority that is tendering and contracting the project. The full details of the entity should be added to the project-level parties array with a role of 'publicAuthority'.

See OrganizationReference

publicAuthority/name

[string]

Organization name

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

publicAuthority/id

string

Organization ID

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

documents

array[Document]

Documents

Documentation related to this project. Entries may include a short text summary (plain text, HTML or Markdown), and/or a link to a specific document accessible on the web.

At the identification phase, a project scope (documentType: projectScope) is expected. At the preparation phase, environmental impact (documentType: environmentalImpact) and land and settlement impact (documentType: landAndSettlementImpact) documentation is expected. During implementation, procurement documents should be shared at the contracting process level, but key documents may also be provided here. At the completion phase, final audit (documentType: finalAudit) and evaluation (documentType: projectEvaluation) reports and documents are expected.

See Document

contractingProcesses

array[Contracting process]

Contracting processes

A single project may have a number of related contracting processes (design, construction, monitoring etc.). Project-level data should contain

(a) an index of those contracting process;

(b) the latest summary information about them;

(c) a change history with explanations for any major modifications to contract duration, price or scope.

Where OCDS data is published on each contracting process, a link should be provided to each available release of OCDS data (e.g. to each notice or updated notice), and this OCDS data may be used to automatically populate the summary information.

See ContractingProcess

metrics

array[Metric]

Metrics

Actual metrics for this project, such as the actual physical or financial progress over time.

See Metric

metrics/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 project, or in other instances may be an arbitrary identifier.

metrics/0/title

[string]

Title

The title of this metric

metrics/0/description

[string]

Description

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

metrics/0/observations

array[Observation]

Observations

An array of target or actual values for this metric.

See Observation

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

metrics/0/observations/0/period

object

Period

The period over which this observation is measured.

See Period

metrics/0/observations/0/period/startDate

[string]

date-time

Start date

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

metrics/0/observations/0/period/endDate

[string]

date-time

End date

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

metrics/0/observations/0/period/maxExtentDate

[string]

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.

metrics/0/observations/0/period/durationInDays

[integer]

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.

metrics/0/observations/0/value

object

Value

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

See Value

metrics/0/observations/0/value/amount

[number]

Amount

Amount as a number.

metrics/0/observations/0/value/currency

[string]

Currency

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

metrics/0/observations/0/measure

[string, number]

Measure

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

metrics/0/observations/0/unit

object

Unit

Unit

metrics/0/observations/0/unit/name

[string]

Unit name

The name of the unit.

metrics/0/observations/0/unit/scheme

[string]

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.

metrics/0/observations/0/unit/id

string

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.

metrics/0/observations/0/unit/uri

[string]

uri

URI

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

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

metrics/0/observations/0/notes

[string]

Notes

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

completion

object

Completion

This information is provided at project completion, and reflects the final timing and values relating to the project. The reason for any variation (not already explained) between the anticipated project scope, period and value should be detailed.

completion/endDate

string

date-time

End date

The actual completion date for the project (compare with the endDate in project period).

completion/endDateDetails

string

End date details

Details related to the endDate. This may be a justification for the project's completion date being different than in the original project.

completion/finalValue

object

Final value

The total cost of this project at completion (compare with project budget).

See Value

completion/finalValue/amount

[number]

Amount

Amount as a number.

completion/finalValue/currency

[string]

Currency

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

completion/finalValueDetails

string

Final value details

Details related to the final value. This may be a justification for the completed project's value being different than in the original or latest revised budget.

completion/finalScope

string

Final scope

A short description of the final scope of the project at completion.

completion/finalScopeDetails

string

Final scope details

A reason, explanation or justification for any variation between the anticipated scope (compare to the projectScope document) and the final scope at completion. If appropriate, additional details may be included in the documents section, with a title indicating that these documents will describe and differences between the planned and completed scope of work.

ContractingProcess

Title

Description

Type

Format

Required

id

string

Required

Identifier

An identifier for this contracting process. If this contracting process has been assigned an Open Contracting Identifier (OCID) by an external platform (e.g. national procurement system), that OCID must be recorded here. If information about this contracting process has been entered manually, or from a non-OCDS system, then an identifier may be created by the system data is entered into, following the guidance for creating contracting process identifiers.

summary

object

Summary

Summary information about a contracting process, including a log of changes over time.

See ContractingProcessSummary

releases

array[Release]

Linked releases

The information known about a contracting process changes over time, both as new information becomes available, and as changes are made (such as amendments to scope and value). In the OCDS, each new update of information is known as a 'release'.

This section provides space to record a link to each available release.

See LinkedRelease

ContractingProcessSummary

Title

Description

Type

Format

Required

ocid

string

Open Contracting Identifier

If this contracting process has been assigned an Open Contracting Identifier (OCID) by an external platform (e.g. national procurement system), that OCID must be recorded here. Otherwise this field should be omitted.

externalReference

string

External reference

If this contracting process is identified by some external reference number it may be recorded here.

nature

array[[string]]

Nature

Whether this contracting process relates to the design, construction and/or supervision of the project, from the contractNature codelist. More than one value may be provided if the contract is for both design and construction, or both design and supervision, etc.

title

string

Title

The formal name of this contracting process. Once set, this should not normally by changed.

description

string

Description

The description should summarize the purpose of this contract and the initial scope of the work to be carried out under the contract.

status

string

Status

The status of this contracting process. Drawn from the contractingProcessStatus codelist.

tender

object

Tender

The activities undertaken in order to enter into a contract.

tender/procurementMethod

string

Procurement method

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

tender/procurementMethodDetails

string

Procurement method details

Additional detail on the procurement method used. This field should be used to record an agreed list of procurement process types, such as: International Competitive Bidding, National Competitive Bidding, Donor Procurement Rules, Framework or Direct Award.

tender/costEstimate

object

Cost estimate

The pre-tender estimated value of the contracting process.

See Value

tender/costEstimate/amount

[number]

Amount

Amount as a number.

tender/costEstimate/currency

[string]

Currency

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

tender/numberOfTenderers

number

Number of tenderers

The number of parties who placed a bid during this contracting process.

tender/tenderers

array[Organization reference]

Tenderers

All parties who submit a bid on a tender. More detailed information on bids and the bidding organization can be provided using the bid extension in a linked OCDS release.

See OrganizationReference

tender/tenderers/0/name

[string]

Organization name

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

tender/tenderers/0/id

string

Organization ID

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

tender/procuringEntity

object

Procuring entity

The name and identifier of the procuring entity responsible for this contracting process. The full details of the entity should be added to the project-level parties array with a role of 'procuringEntity'.

See OrganizationReference

tender/procuringEntity/name

[string]

Organization name

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

tender/procuringEntity/id

string

Organization ID

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

tender/administrativeEntity

object

Administrative entity

The name and identifier of the entity responsible for contract administration if this is different from the procuring entity. The full details of the entity should be added to the project-level parties array with a role of 'administrativeEntity'.

See OrganizationReference

tender/administrativeEntity/name

[string]

Organization name

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

tender/administrativeEntity/id

string

Organization ID

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

suppliers

array[Organization reference]

Suppliers

The name and identifier for each supplier for this contracting process. The full details of each supplier should be added to the project-level parties array with a role of 'supplier'.

See OrganizationReference

suppliers/0/name

[string]

Organization name

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

suppliers/0/id

string

Organization ID

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

contractValue

object

Contract value

The initial value of the contract. Changes to the initial value of the contract should be recorded in modifications.

See Value

contractValue/amount

[number]

Amount

Amount as a number.

contractValue/currency

[string]

Currency

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

contractPeriod

object

Contract period

The initial duration of the contract. Changes to the initial duration of the contract should be recorded in modifications.

See Period

contractPeriod/startDate

[string]

date-time

Start date

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

contractPeriod/endDate

[string]

date-time

End date

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

contractPeriod/maxExtentDate

[string]

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.

contractPeriod/durationInDays

[integer]

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.

finalValue

object

Final value

This should be provided when the contracting process is complete. This may be derived from the sum of contract.implementation.transactions values in linked OCDS data where available. In other cases, it may need to be identified and entered manually based on other project documentation.

See Value

finalValue/amount

[number]

Amount

Amount as a number.

finalValue/currency

[string]

Currency

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

documents

array[Document]

Documents

Additional documentation about this contracting process may be provided here, including reports and evaluations produced through a monitoring process, or links to web pages where further information about this process can be found. Where OCDS releases are published, further documents may be found by looking at the published releases.

See Document

modifications

array[Modification]

Modifications

Details of changes to the duration, price, scope or other significant features of the contracting process should be logged here.

See Modification

modifications/0/id

string

Required

Identifier

A local identifier for this modification.

modifications/0/date

[string]

date-time

Date

The date this modification was recorded.

modifications/0/description

[string]

Description

Details of the modification. This may be free text, or may be generated automatically and provide a structured description of the change.

modifications/0/rationale

[string]

Rationale

A summary of the reasons which have led to this modification to the originally planned scope, period or value.

modifications/0/type

[string]

Type

A value from the modificationType codelist, indicating whether the modification relates to the duration, value, scope or other aspect of the contract.

modifications/0/releaseID

[string]

Release ID

The identifier for the OCDS release this modification relates to. The referenced release should appear in the list of linked releases for this contracting process.

modifications/0/oldContractValue

object

Old contract value

Contract value before the modification, taking into account any prior modifications.

See Value

modifications/0/oldContractValue/amount

[number]

Amount

Amount as a number.

modifications/0/oldContractValue/currency

[string]

Currency

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

modifications/0/newContractValue

object

New contract value

Contract value after the modification.

See Value

modifications/0/newContractValue/amount

[number]

Amount

Amount as a number.

modifications/0/newContractValue/currency

[string]

Currency

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

modifications/0/oldContractPeriod

object

Old contract period

Contract period before the modification, taking into account any prior modifications.

See Period

modifications/0/oldContractPeriod/startDate

[string]

date-time

Start date

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

modifications/0/oldContractPeriod/endDate

[string]

date-time

End date

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

modifications/0/oldContractPeriod/maxExtentDate

[string]

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.

modifications/0/oldContractPeriod/durationInDays

[integer]

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.

modifications/0/newContractPeriod

object

New contract period

Contract period after the modification.

See Period

modifications/0/newContractPeriod/startDate

[string]

date-time

Start date

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

modifications/0/newContractPeriod/endDate

[string]

date-time

End date

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

modifications/0/newContractPeriod/maxExtentDate

[string]

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.

modifications/0/newContractPeriod/durationInDays

[integer]

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.

transactions

array[Transaction information]

Transactions

The spending transactions made against this contracting process.

See Transaction

transactions/0/id

string

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.

transactions/0/source

[string]

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.

transactions/0/date

[string]

date-time

Date

The date of the transaction

transactions/0/value

object

Value

The value of the transaction.

See Value

transactions/0/value/amount

[number]

Amount

Amount as a number.

transactions/0/value/currency

[string]

Currency

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

transactions/0/payer

object

Payer

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

See OrganizationReference

transactions/0/payer/name

[string]

Organization name

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

transactions/0/payer/id

string

Organization ID

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

transactions/0/payee

object

Payee

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

See OrganizationReference

transactions/0/payee/name

[string]

Organization name

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

transactions/0/payee/id

string

Organization ID

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

transactions/0/uri

[string]

uri

Linked spending information

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

LinkedRelease

Title

Description

Type

Format

Required

id

string

Required

ID

A unique identifier for this update of information. This should be taken from the OCDS release.id, if available.

tag

array[string]

Release tag

One or more values from the releaseTag codelist used to indicate the information contained in this release, and the stage of the contracting process it represents. This should be filled from the OCDS release.tag, if available.

date

string

date-time

Required

Date

The effective date of this release/update. This should be filled from the OCDS release.date, if available.

url

string

uri

Required

URL

A URL (web link) to a release package containing the OCDS release, if available.

Components

Address

We use properties from schema.org and vCard for address components. In the event source data cannot be broken down into these parts, data SHOULD contain at least a streetAddress value and postal code.

When working with data, users should be aware that addresses may not always be broken down using all the properties the specification provides.

Title

Description

Type

Format

Required

streetAddress

[string]

Street address

The street address. For example, 1600 Amphitheatre Pkwy.

locality

[string]

Locality

The locality. For example, Mountain View.

region

[string]

Region

The region. For example, CA.

postalCode

[string]

Postal code

The postal code. For example, 94043.

countryName

[string]

Country name

The country name. For example, United States.

BudgetBreakdown

A budget breakdown is provided through an array of BudgetBreakdown objects, each of which represents budget for a particular period, from a particular source, or a combination of the two.

See the documentation of the OCDS Budget Breakdown extension for more details of this data model. BudgetBreakdown can also be extended further to include budget classifications data following the pattern described in the OCDS Budgets and Spend extension.

Title

Description

Type

Format

Required

id

string

Required

Identifier

An identifier for this particular budget entry.

description

[string]

Description

A short free text description of this budget entry.

amount

object

Amount

The value of the budget line item.

See Value

amount/amount

[number]

Amount

Amount as a number.

amount/currency

[string]

Currency

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

uri

[string]

uri

Linked budget information

A URI pointing directly to a machine-readable information about this budget entry.

period

object

Budget period

The period covered by this budget entry.

See Period

period/startDate

[string]

date-time

Start date

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

period/endDate

[string]

date-time

End date

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

period/maxExtentDate

[string]

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.

period/durationInDays

[integer]

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.

sourceParty

object

Source party

An organization reference, linking to the entry in the parties section describing the organization providing the funds for this part of the budget. The party must have the 'funder' role. If the budget amount is positive, this indicates a flow of resources from the party to the contracting process. If the budget amount is negative, it indicates a payment from the contracting process to this party.

See OrganizationReference

sourceParty/name

[string]

Organization name

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

sourceParty/id

string

Organization ID

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

Classification

A classification consists of an identifier for the codelist (the scheme) and a code from that codelist (the id), and then a human-readable label for the classification (the description).

Title

Description

Type

Format

Required

scheme

[string]

Scheme

The scheme or codelist from which the classification code is taken.

id

string

ID

The classification code taken from the scheme.

description

[string]

Description

A textual description or title for the classification code.

uri

[string]

uri

URI

A URI to uniquely identify the classification code.

For example:

{
    "scheme":"COFOG",
    "id":"05.2",
    "description":"Waste water management"
}

ContactPoint

Title

Description

Type

Format

Required

name

[string]

Name

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

email

[string]

Email

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

telephone

[string]

Telephone

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

faxNumber

[string]

Fax number

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

url

[string]

uri

URL

A web address for the contact point/person.

Document

For each document the following structured information may be provided.

Title

Description

Type

Format

Required

id

string

Required

ID

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

documentType

[string]

Document type

A classification of the document described, using the open documentType codelist.

title

[string]

Title

The document title.

description

[string]

Description

Where a link to a full document is provided, the description should provide a 1 - 3 paragraph summary of the information the document contains, and the pageStart field should be used to make sure readers can find the correct section of the document containing more information. Where there is no linked document available, the description field may contain all the information required by the current documentType.

Line breaks in text (represented in JSON using \n\n) must be respected by systems displaying this information, and systems may also support basic HTML tags (H1-H6, B, I, U, strong, A and optionally IMG) or markdown syntax for formatting.

url

[string]

uri

URL

This should be a direct link to the document or web page where the information described by the current documentType exists.

datePublished

[string]

date-time

Date published

The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.

dateModified

[string]

date-time

Date modified

Date that the document was last modified

format

[string]

Format

The format of the document, using the open IANA Media Types codelist (see the values in the 'Template' column), or using the 'offline/print' code if the described document is published offline. For example, web pages have a format of 'text/html'.

language

[string]

Language

The language of the linked document using either two-letter ISO639-1, or extended BCP47 language tags. The use of lowercase two-letter codes from ISO639-1 is recommended unless there is a clear user need for distinguishing the language subtype.

pageStart

[string]

Page start

When the information referenced exists within a large document, indicate the first page on which it can be found. This should refer to the printed page number, not the page number reported by software applications.

pageEnd

[string]

Page end

When the information referenced exists within a large document, indicate the last page on which it can be found. This should refer to the printed page number, not the page number reported by software applications.

accessDetails

[string]

Access details

A description of any special arrangements needed to access this document, for example: registering for access, paying a fee, or visiting a location to inspect the document.

author

[string]

Author

The names of the authors of the document.

Identifier

Use of stable official organization identifiers can help join up data between systems.

Organization identifiers should be constructed by collecting an official company (or government body) registration number for the organization, and then finding the org-id.guide list code for the list this identifier is taken from to use in the scheme field.

For example, if identifying a company in Colombia, look up its identifier in the Unified Commercial and Social Registry and use the list code CO-RUE.

Title

Description

Type

Format

Required

scheme

[string]

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.

id

string

ID

The identifier of the organization in the selected scheme.

legalName

[string]

Legal Name

The legally registered name of the organization.

uri

[string]

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.

Location

A project may have one or more locations. Locations may be expressed in a number of different ways, using one or more of:

  • A point location or geometry (e.g. trace of a road, or polygon giving the boundary of a site);

  • A gazetteer entry (e.g. town name);

  • An address.

Title

Description

Type

Format

Required

id

string

Required

Identifier

A local identifier for this location, unique within the array this location appears in.

description

[string]

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.

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.

geometry/type

[string]

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

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.

gazetteer

object

Gazetteer

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

gazetteer/scheme

[string]

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.

gazetteer/identifiers

array[[string]]

Identifiers

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

uri

[string]

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.

address

object

Address

A physical address where works will take place.

See Address

Modification

For each modification, the following structured information may be provided.

Title

Description

Type

Format

Required

id

string

Required

Identifier

A local identifier for this modification.

date

[string]

date-time

Date

The date this modification was recorded.

description

[string]

Description

Details of the modification. This may be free text, or may be generated automatically and provide a structured description of the change.

rationale

[string]

Rationale

A summary of the reasons which have led to this modification to the originally planned scope, period or value.

type

[string]

Type

A value from the modificationType codelist, indicating whether the modification relates to the duration, value, scope or other aspect of the contract.

releaseID

[string]

Release ID

The identifier for the OCDS release this modification relates to. The referenced release should appear in the list of linked releases for this contracting process.

oldContractValue

object

Old contract value

Contract value before the modification, taking into account any prior modifications.

See Value

oldContractValue/amount

[number]

Amount

Amount as a number.

oldContractValue/currency

[string]

Currency

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

newContractValue

object

New contract value

Contract value after the modification.

See Value

newContractValue/amount

[number]

Amount

Amount as a number.

newContractValue/currency

[string]

Currency

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

oldContractPeriod

object

Old contract period

Contract period before the modification, taking into account any prior modifications.

See Period

oldContractPeriod/startDate

[string]

date-time

Start date

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

oldContractPeriod/endDate

[string]

date-time

End date

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

oldContractPeriod/maxExtentDate

[string]

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.

oldContractPeriod/durationInDays

[integer]

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.

newContractPeriod

object

New contract period

Contract period after the modification.

See Period

newContractPeriod/startDate

[string]

date-time

Start date

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

newContractPeriod/endDate

[string]

date-time

End date

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

newContractPeriod/maxExtentDate

[string]

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.

newContractPeriod/durationInDays

[integer]

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.

Organization

For each organization, provide as much structured data as you can.

Title

Description

Type

Format

Required

name

[string]

Common name

A common name for this organization or other participant in the contracting process. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization or entity is known. This field may also include details of the department or sub-unit involved in this contracting process.

id

string

Entity ID

The ID used for cross-referencing to this party from other sections of the release. This field may be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}).

identifier

object

Primary identifier

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

See Identifier

additionalIdentifiers

array[Identifier]

Additional identifiers

A list of additional / supplemental identifiers for the organization or participant, 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.

See Identifier

address

object

Address

An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting process.

See Address

contactPoint

object

Contact point

Contact details that can be used for this party.

See ContactPoint

roles

array[string]

Party roles

The party's role(s) in the project, using the open partyRole codelist.

people

array[Person]

People

People associated with, representing, or working on behalf of this organization in respect of this project.

See Person

people/0/id

string

Required

Identifier

A local identifier for this person.

people/0/name

string

Name

The full name of the person.

people/0/jobTitle

string

Job title

The job title of the person (for example, Financial Manager).

OrganizationReference

Title

Description

Type

Format

Required

name

[string]

Organization name

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

id

string

Organization ID

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

Period

Dates MUST be expressed using a full ISO 8601 date-time including a timezone. E.g.:

2018-09-18T11:26:04+01:00

Where the source system does not contain time information, a judgment should be made as to the relevant time to attach (e.g. start of the day; end of the working day etc.).

Title

Description

Type

Format

Required

startDate

[string]

date-time

Start date

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

endDate

[string]

date-time

End date

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

maxExtentDate

[string]

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.

durationInDays

[integer]

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.

Person

Use this object when you need to disclose the details of people associated with, representing or working on behalf of an organization involved in the project.

Title

Description

Type

Format

Required

id

string

Required

Identifier

A local identifier for this person.

name

string

Name

The full name of the person.

jobTitle

string

Job title

The job title of the person (for example, Financial Manager).

RelatedProject

A reference to a project related to the same set of infrastructure assets as the current project.

Title

Description

Type

Format

Required

id

string

Required

Relationship ID

A local identifier for this relationship, unique within this array.

scheme

string

Scheme

The identification scheme used by this cross-reference, using the open relatedProjectScheme codelist.

identifier

string

Identifier

The identifier of the related project. If the scheme is 'oc4ids', this must be an OC4IDS project ID.

relationship

string

Relationship

The type of relationship, using the open relatedProject codelist.

title

string

Related project title

The title of the related project. If referencing an OC4IDS project, this should match the value of the title field of the related project.

uri

string

uri

Related project URI

A URI pointing to a machine-readable document or project package containing the identified related project.

Transaction

A spending transaction related to a contracting process.

Title

Description

Type

Format

Required

id

string

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.

source

[string]

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.

date

[string]

date-time

Date

The date of the transaction

value

object

Value

The value of the transaction.

See Value

value/amount

[number]

Amount

Amount as a number.

value/currency

[string]

Currency

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

payer

object

Payer

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

See OrganizationReference

payer/name

[string]

Organization name

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

payer/id

string

Organization ID

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

payee

object

Payee

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

See OrganizationReference

payee/name

[string]

Organization name

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

payee/id

string

Organization ID

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

uri

[string]

uri

Linked spending information

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

Value

All values should be published along with their currency using the following structure.

Title

Description

Type

Format

Required

amount

[number]

Amount

Amount as a number.

currency

[string]

Currency

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