All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

[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 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.
  • Improve the process to build the documentation #666 #698 #708 #709 #721 #724 #727 #729 #733 #740 #747 #753 #762 #767 #783 #787 #796 #813 #836.

[1.1.3] - 2018-04-16

Codelist updates

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

Schema fixes

  • #646 Disallow use of null as an item in the array for Tender.additionalProcurementCategories.
  • #639 Make name field optional for OrganizationReference.
  • #630 Allow optional field Item.unit to be null.
  • #603, #645 Add definitions to Release, planning.budget, Milestone, Organization.address, Organization.contactPoint, Classification, Identifier, Value and Period.
  • Make record-package-schema.json use the codelist property to reference releaseTag.csv, and update the enum accordingly.
  • #578 Update definition of buyer to cover goods, works and services, and multiple buyers.

Documentation fixes

  • #633 Update schema reference page to display Release.relatedProcesses, Planning.documents and Contract.relatedProcesses.
  • #634 Clarify definitions of core, community and local extensions.

Extension fixes

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

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

[1.1.2] - 2017-11-10

Codelist updates

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

[1.1.1] - 2017-07-31

Bug fixes

Minor revisions

Documentation improvements

Code and build process

  • #506 Removed from utility scripts as it is no longer required.
  • Addition of docstrings to key 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

  • #201 Tender status - New ‘planning’ and ‘withdrawn’ codes have been introduced to the tenderStatus codelist.
  • #380 Procurement method - A new code for ‘direct’ has been added the procurementMethod codelist
  • #373 Milestone status - We have updated the milestoneStatus codelist with a ‘scheduled’ entry and revised definitions
  • #297 Currency codelist external link - We have fixed the external link for currency codelists to refer to the official ISO source.

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 - updated item.quantity to support decimal values (integer -> number)
  • #253 - updated value.amount to support negative values

[1.0.2] - 2016-11-22



  • Added titles to all fields in the documentation (#362)
  • Missing field procurementMethodDetails added to schema (#221)
  • Typo fix in releaseTag (#391)
  • Fixing links to Fiscal Data Package (#271)
  • Description for numberOfTenderers (#314)
  • Fixed definition of changes (#244)
  • Updated documentation to refer to ‘Object’ not ‘Reference’ for fields (#228)

Tidy up

  • Removed the old Spanish documentation translations folders from standard/docs/es
  • Added CSV download links for registered ocids, and publication levels
  • Updated publication levels spreadsheet to reflect version 1.0.2

[1.0.1] - 2016-03-14

Updated documentation was released. This did not make any semantic changes to the standard.

[1.0] - 2015-07-29


  • contractPeriod added to award to allow the anticipated period of a contract to be recorded, without requiring the creation of a contract block. Discussed in #199
  • Updated codelists


  • Minor documentation fixes.

[1.0.RC] - 2014-11-18

Changes prior to this point are not covered by this changelog. A non-exhaustive overview of changes between the beta release and 1.0.RC can be found on the project blog.