These release notes describe what's new in each version. OCDS adheres to Semantic Versioning.

Iterative improvements

Per the normative and non-normative content and changes policy, iterative improvements to non-normative content can be made outside the release cycle.


  • Getting Started section:

    • #980 Remove references to ☆ levels.

    • #1017 Add link to bulk downloads in Guidance section.

  • Guidance section:

    • #1345 Update legal references in pre-gualification guidance.

    • #986 Add implementation guidance from OCP website.

    • Add worked examples for the Map phase #947 #948 #950 #974 #990 #999 #1007 #1123.

    • Add worked examples for the Build phase #951 #997.

    • #963 Remove guidance on web discovery.

    • #986 Merge Registration page into Build page.

    • #986 #1012 Merge Publication policy and Licensing pages into Publish page.

    • #1013 Replace guidance on publication levels.

    • #1016 Add links to OCDS profiles and linked standards.

    • #1150 Align language in Build phase with language in Map phase.

    • #1193 Removed language distinguishing "core", "community", and "local" extensions.

    • #1337 Improve the structure of the Map page.

    • #1338 Improve the structure of the worked examples on the Map page.

  • #908 Rename Validator to Data Review Tool.

  • #955 Split the Guidance section into sub-sections. Add a new History section, and move the Changelog, Credits, and History and Development pages to it.

  • #958 Governance page: Change responsibility for prioritization review to OCP's Head of Data Products & Services. Change "technical team" to "standard development team".

  • #959 History section: Merge Credits and History of OCDS pages into Development and Appreciation page. Update history from present perspective.

  • #960 Support section: Merge Tools page into Support page.

  • #975 Add a Make target to generate PDFs of the documentation.

  • Copy-edit and re-organize non-normative pages #979 #1018 #1023.

  • Update the changelog #932 #976.

  • Make changes to how the documentation is built #880 #886 #889 #905 #915 #916 #923 #935 #944 #945 #946 #953 #962 #964 #1002 #1003.

[1.1.5] - 2020-08-20

  • The Translation and localization policy is amended to read "normative content will be translated into all core supported languages as soon as possible" instead of "before the release". A Spanish translation is ready for release, and a French translation will be ready as soon as possible.


  • itemClassificationScheme.csv:

    • #998 Add 'NAICS', 'PSC' and 'HS' codes.

    • #967 Remove the discouragement of the 'UNSPSC' code.

    • #1033 Add a Category column to indicate the context in which the classification scheme is used.

  • milestoneType.csv:

    • #1000 Update description of 'financing' code, and add 'payment' code.


  • #969 Clarify the instruction for setting the field.

  • #995 Clarify the instruction for setting the field.

  • #996 Fix a typo in the versionedRelease field.


  • #966 Move Governance and Deprecation pages to new Governance section.

  • #968 #1032 Use "field" to refer to OCDS fields and "property" to refer to JSON Schema properties.

  • #970 Add links to access the release schema as a CSV spreadsheet and via the Field-Level Mapping Template. Add notes to describe the alternatives for browsing the schemas.

  • #965 Release Reference page: Add extensions list for the Transaction object.

  • #970 Release Schema page: Correct the description of compiled releases.

  • #996 Record Reference page: Rewrite page to improve clarity.

  • Codelists page:

    • #971 #1032 Remove the suggestion to use X prefixes, for the reasons expressed by the IETF.

    • #972 Clarify the norms around open and closed codelists.

    • #973 Describe the openCodelist and codelist JSON Schema properties.

    • #1036 Add instruction for OCDS publishers to contact the OCDS Helpdesk to add list codes to

[1.1.4] - 2019-06-25



  • #738 1.1.3 changed the merging and versioning behaviors of Item.unit, such that it could be removed by setting it to null, and such that it was versioned as a whole. 1.1.4 restores the behaviors from 1.1.2, such that only its sub-fields can be removed by setting them to null, and such that its sub-fields are versioned individually.

    • Action: If you had upgraded to OCDS 1.1.3, then compiled releases and versioned releases that set Item.unit will likely need to be re-created to validate against the OCDS 1.1.4 schema.

  • #810,,,,, and are now versioned, consistent with the documentation.

    • Action: Versioned releases that set these fields will likely need to be re-created to validate against the OCDS 1.1.4 schema.

  • #769 The versioned release schema now matches the release schema in: having a minLength validation property for; having codelist and openCodelist properties for Tender.awardCriteria, Tender.awardCriteriaDetails, Document.documentType, Item.unit.scheme, Classification.scheme, and RelatedProcess.scheme; and having a deprecated property for Budget.source. All title and description metadata properties are removed from the versioned release schema.

  • #810 tag is now omitWhenMerged, consistent with the reference implementation in OCDS Merge.


  • #824 Canonical codelist files are available at URLs like, and translations are available at URLs like, for OCDS 1.1.4 and up.

  • #746 #842 Update the currency codelist for ISO4217 amendments 166, 167, 168 and 169.

  • #725 Add a 'plannedProcurementNotice' code to the documentType codelist, 'CUCOP' to itemClassificationScheme, 'interestedParty' to partyRole.

  • #725 Update the descriptions of the 'tenderNotice' and 'technicalSpecifications' codes in the documentType codelist to align with the text of the Agreement on Government Procurement (GPA) of the World Trade Organization (WTO).

  • #725 Apply the style guide and OCDS glossary to the 'procuringEntity' and 'supplier' codes in the partyRole codelist.

  • #725 Add examples to the description of the 'environmentalImpact' code in the documentType codelist.

  • #829 Use sentence case for code titles and end code descriptions with periods.

  • #852 Use the correct normative keywords in code descriptions.


  • #712 Add missing titles for publisher and url and description for record in the record package schema, and missing description for releases in release package schema.

  • #838 Eliminate the conflicting rule that release identifiers must be unique within release packages. Uniqueness within the scope of a release package either implies that release identifiers must be globally unique, or imposes an arbitrary restriction on the contents of release packages, as there is no rule preventing release packages from containing releases from different contracting processes. Release identifiers are only required to be locally unique within the scope of a contracting process. The ocid and id values of a release can be used together to disambiguate releases within a release package.

  • Clarify the uniqueness of release identifiers in the release schema #838 and release package schema #831.

  • #810 Add a dereferenced release schema to ease the implementation of the merge routine.

  • #810 Add "versionId": true hint to Identifier and Classification.

  • #845 Remove a reference to a closed issue and a note about a field name.

  • #855 Use the correct normative keywords in field descriptions.

  • #855 Rephrase field descriptions as definitions rather than instructions.

  • #855 Align the descriptions of the license fields in the release package schema and record package schema.


  • #772 #810 #831 Clarify the merge rules for compiled releases and versioned releases.

  • #797 Fix examples of versioned releases.

  • #831 Use the correct normative keywords in the documentation.

  • #869 Move normative statements into normative sections.

  • #835 Display the canonical schema URLs in the documentation.

  • #838 Clarify the uniqueness of release, award and contract identifiers.

  • #831 Improve the description of iterating the release id.

  • #822 Integrate the Extension Explorer.

  • #783 Add missing email address for the standard governance working group.

  • Replace ambiguous or incorrect terms:

    • #831 Use "release id" and "release date", instead of "releaseID" and "releaseDate"

    • #831 Use "ocid prefix", instead of "publisher prefix"

    • #840 Use "release package and record package", instead of "data package", to avoid confusion with Frictionless Data's Data Package specification

    • #831 Use "minor versions", instead of "decimal versions" on deprecation page

    • #823 Fix incorrect uses of "records", "codelists" and "gazetteers" on identifiers and codelists pages

  • Fix out-of-date content:

    • #831 Remove sentence implying non-existence of unit classification scheme codelist on release schema reference page

    • #831 Remove sentence using non-existent 'notice' code on release schema reference page

    • #831 Remove reference to closed issue in API section

  • Add links to:

    • #783 Community extensions relating to party details

    • #837 OCDS profiles

  • Correct typos in the documentation #692 #713 #719 #726 #732 #752 #756 #795 #867.

  • Make changes to how the documentation is built #666 #698 #708 #709 #721 #724 #727 #729 #733 #740 #747 #753 #762 #767 #783 #787 #796 #813 #836 #875.

[1.1.3] - 2018-04-16


  • #646 Disallow use of null as an entry in the array for Tender.additionalProcurementCategories.

  • #639 Make name field optional for OrganizationReference.

  • #630 Allow optional field Item.unit to be null. (Reverted in 1.1.4)

  • a75c1c5 Make record-package-schema.json use the codelist property to reference releaseTag.csv, and update the enum accordingly.


  • Update the currency codelist for ISO4217 amendment 165 (2017-12-14).


  • #603, #645 Add definitions to Release, planning.budget, Milestone, Organization.address, Organization.contactPoint, Classification, Identifier, Value and Period.

  • #578 Update the definition of the buyer field to cover goods, works and services, and multiple buyers.


  • #633 Update schema reference page to display Release.relatedProcesses, Planning.documents and Contract.relatedProcesses.

  • #634 Clarify definitions of core, community and local extensions.

  • Old and unused scripts have been removed from the documentation repository, and a number of script dependencies have been updated.


  • #40, #43, #47 Add missing definitions, codelists and enums to core extensions, correct typos in codelist filenames, disallow use of null as an item in arrays, disallow required fields from being set to null, allow optional fields to be null, use OrganizationReference instead of Organization.

[1.1.2] - 2017-11-10


  • #554 Update the currency codelist for ISO4217 amendment 163 (2017-06-09). XBT (Bitcoin) is removed from the codelist as it is not part of ISO4217.

[1.1.1] - 2017-07-31


  • #482 Allow optional field parties.role to be null.

  • #479 Remove releases as a required field in record-package-schema.json.

  • #475 Add an enum property to every field in the schema with a closed codelist.


  • #422 Include a currency codelist in the documentation and schema.

  • #471 Update the milestoneType codelist, replacing 'planning' with 'preProcurement' and 'adjudication' with 'assessment', and introducing 'approval' and 'financing'. This is an open codelist, so the old codes remain valid, but publishers able to update to the new codes should do so.

  • #473 Update the definition of the 'contractSchedule' code in the documentType codelist.


  • #480 Align the tables and text in the publication levels guidance.

  • #489 Change the milestone documents extension to a core extension. This extension is only needed by publishers with legacy data containing documents within milestones.

  • #493 Update the description of the Organization Identifier Scheme codelist, to reflect that it is now maintained by

  • #506 Remove from the utility scripts, as it is no longer required.

  • Fix typographic errors throughout the documentation and codelist descriptions.

  • Add docstrings to utility scripts.

[1.1.0] - 2017-05-01

Policy changes

  • #401 Deprecation policy - The deprecation policy has been updated to support deprecation in decimal upgrades.


Structural updates

  • #368 Updates to organization handling in OCDS - We have updated the approach to include organization information in the standard from having embedded blocks of organization information, to using embedded cross-references to a top-level 'parties' array where full organization details are stored. This change reduces duplication of organization information, and enables more flexible disclosure of information on all the parties to a contracting process, including multiple buyers.

  • #357 Amendment handling - We have replace amendment with an array of amendments, and have updated schema and guidance to remove the option of providing semi-structured changes in an amendment object. Changes between amendments should now be provided using multiple releases, with the option to explicitly declare how releases relate to an amendment included in the new amendments array.

Schema validation updates

Schema definition updates

Closed codelist updates

Open codelist updates



  • #335 Core and community extensions - We have introduced widespread use of extensions throughout the standard. An extension provides fields and data structures that are optional, either because (a) they are only relevant in particular contexts or contracting processes; or (b) they represent a 'stretch goal' for most data publishers, and so are not currently suitable for inclusion in the main standard. We divide these extensions into 'core extensions' which have wide enough relevance, and technical maturity to be included in the main standard documentation (and which are versioned along with the standard documentation), and 'community extensions' which may have less technical maturity, or which might be versioned independently of the main standard.

  • #259 Enquiries - We have introduced a core enquiries extension for providing information on enquiries received during the tender stage.

  • #342 Overall contracting process description - We have introduced a new top-level title and description for the contracting process as a core extension.

  • #274 New property of contract: extendsContractID - We have introduced a new field 'extendsContractID' to the Contract block to support contract cross-referencing between contracts.

  • #381 Lots - We have introduced a core extension to provide a model for contracting processes which are divided into lots.

  • #379 Bids and Bid Statistics - We have introduced a core extension which provides a top level Bids section, with BidStatistics and Bid building blocks for detailed information on individual bids. This supersedes the current tender/tenderers section.

  • #250 Location extension - We have moved the location extensions to become a core extension

  • #33 Participation fees (bid document and submission costs) - We have introduced a core extension for declaring the participation fees related to a contracting process.

  • #249 Extend contract with a supplier array - We have introduced a core extension to allow inclusion of supplier information at the contract level.


[1.0.3] - 2017-07-31


  • #329 Update Item.quantity to allow decimal values.

  • #253 Update Value.amount to allow negative values.

[1.0.2] - 2016-11-22


  • #362 Add a title property to all fields.

  • #221 Add the missing procurementMethodDetails field.

  • #391 Fix typo in description property of releaseTag field.

  • #271 Fix link to Fiscal Data Package.

  • #314 Add a description property to the numberOfTenderers field.

  • #244 Fix the description property of the changes field.


  • #228 Update the documentation to use "Object" not "Reference" in Format column of field tables.

  • Add CSV download links for registered ocids and publication levels.

  • Update the publication levels spreadsheet to reflect above changes.

  • Remove the old Spanish documentation translations from standard/docs/es.

[1.0.1] - 2016-03-14


  • #300 Remove "format": "uri" from publisher.scheme field.

  • #295 Allow optional fields Award.status and Contract.status to be null.

  • #267 Rename codes in documentType codelist: 'Tender notice' to 'tenderNotice', 'Award notice' to 'awardNotice', 'Contract notice' to 'contractNotice'.

  • Fix bugs in versioned release schema.


  • Remove reference to non-existent statusDescription field in awardStatus codelist.


  • Add or update title and description properties.

  • #283 Remove "mergeStrategy": "ocdsVersion" from planning.budget field.


  • Restructure the documentation, including: expanding Getting Started section, adding more examples.

  • Fix broken links.

  • Make changes to how the documentation is built, including: improving the translation process, adding some schema tests.

[1.0.0] - 2015-07-29


  • Update documentType and organizationIdentifierRegistrationAgency_iati codelists.


  • #199 Add the Award.contractPeriod field, to disclose the anticipated contract period without creating a Contract object.

  • Update the description property of the field.


  • Fix typos in Markdown text and JSON examples.

  • Add changelog.

[1.0.RC] - 2014-11-18

Changes prior to this release are not covered here. Please see the overview of changes between the beta and 1.0.RC releases.