Skip to content

Adds a criteria section to the tender object and responses sections to bids, awards and contracts. Based on the EU's Core Criterion and Core Evidence Vocabulary (CCCEV).

License

Notifications You must be signed in to change notification settings

PaulBoroday/ocds_requirements_extension

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Requirements

The requirements extension is based on the EU's Core Criterion and Core Evidence Vocabulary (CCCEV) model for communicating criteria and responses.

The extension is designed to allow procuring entities or buyers to express criteria, relating to either items being procured or bidders themselves, as structured data.

Criteria can be responded to either by bidders, buyers or procuring entities, for example a buyer may respond with information about an item whilst a procuring entity may respond with information on whether a bidder is disbarred.

CCCEV Model

The CCCEV model defines the following concepts:

Criterion A criterion represents a rule or principle used to judge, evaluate or assess either an item or bidder. A criterion is satisfied when one or more of it's requirement groups are satisfied.

Requirement Group A requirement group is a collection of one or more individual requirements. A requirement group is satisfied when all of it's requirements are satisfied.

Requirement An atomic requirement which can be expressed as either an expected value or a range of accepted values.

Requirement Response A requirements response is an assertion that responds to a specific requirement.

Therefore the CCCEV model can be used to express both AND conditions, where a group of requirements must be met to satisfy a criterion, and OR conditions, where there are alternative requirements that can satisfy a criterion.

Schema

The extension introduces a new building block for each of the concepts described above, these are added to the following locations in the OCDS schema:

  • tender.criteria - an array of criteria
  • tender.criteria.requirementGroups - an array of requirement groups
  • tender.criteria.requirementGroups.requirements - an array of requirements
  • bids.requirementResponses - an array of requirement responses (Note: depends on bid extension)
  • awards.requirementResponses - an array of requirements responses
  • contracts.requirementResponses - an array or requirement responses

Example

Below is an example of requirements specified against both an item and a bidder which demonstrates both AND and OR conditions:

{
  "tender": {
    "criteria": [
      {
        "id": "0001",
        "title": "Air intake",
        "description": "The vacuum cleaner air intake must be at least 100W",
        "source": "tenderer",
        "relatesTo": "item",
        "relatedItem": "item1",
        "requirementGroups": [
          {
            "id": "0001-001",
            "description": "The vacuum cleaner air intake must be at least 100W",
            "requirements": [
              {
                "id": "0001-001-01",
                "title": "Air intake",
                "description": "Power of vacuum cleaner air intake in W",
                "dataType": "integer",
                "pattern": "[0-9]*",
                "minValue": 100
              }
            ]
          }
        ]
      },
      {
        "id": "0002",
        "title": "Warranty",
        "description": "The vacuum cleaner must have warranty support options for at least 36 months",
        "source": "tenderer",
        "relatesTo": "item",
        "relatedItem": "item1",
        "requirementGroups": [
          {
            "id": "0002-001",
            "description": "The standard warranty period for the vacuum cleaner must be at least 36 months",
            "requirements": [
              {
                "id": "0002-001-01",
                "title": "Standard warranty period",
                "description": "Length of the vacuum cleaner standard warranty period in months",
                "dataType": "integer",
                "pattern": "[0-9]*",
                "minValue": 36
              }
            ]
          },
          {
            "id": "0002-002",
            "description": "The standard warranty period for the vacuum cleaner must be at least 12 months with an option to extend to 36 months",
            "requirements": [
              {
                "id": "0002-002-01",
                "title": "Standard warranty period",
                "description": "Length of the vacuum cleaner standard warranty period in months",
                "dataType": "integer",
                "pattern": "[0-9]*",
                "minValue": 12
              },
              {
                "id": "0002-002-02",
                "title": "Extended warranty option",
                "description": "There is an extended warranty option for at least 36 months",
                "dataType": "boolean",
                "expectedValue": true
              }
            ]
          }
        ]
      },
      {
        "id": "0003",
        "title": "Years trading",
        "description": "Number of years the bidder has been trading",
        "source": "tenderer",
        "relatesTo": "tenderer",
        "requirementGroups": [
          {
            "id": "0003-001",
            "description": "Number of years the bidder has been trading",
            "requirements": [
              {
                "id": "0003-001-01",
                "title": "Years trading",
                "description": "Number of years the bidder has been trading",
                "dataType": "integer",
                "pattern": "[0-9]*",
                "minValue": 3
              }
            ]
          }
        ]
      }
    ]
  }
}

Below is an example of responses which meet the above requirements:

{
  "bids": {
    "details": [
      {
        "id": "1",
        "requirementResponses": [
          {
            "id": "air",
            "value": 125,
            "requirement": {
              "id": "0001-001-01"
            }
          },
          {
            "id": "warranty",
            "value": 36,
            "requirement": {
              "id": "0002-001-01"
            }
          },
          {
            "id": "years",
            "value": 10,
            "requirement": {
              "id": "0003-001-01"
            }
          }
        ]
      }
    ]
  }
}

Further extensions

The CCCEV model also defines a number of additional concepts including formalFrameworks, used to specify the legal instruments from criteria are derived, evidence, used both to specify and provide the evidence required to support a requirement response, and additional properties of requirements such as certificationLevel which are not currently implemented in this extension.

This extension does not describe formulae for calculating computed values, nor does it describe whether data should be published openly or not.

Issues

Report issues for this extension in the ocds-extensions repository, putting the extension's name in the issue's title.

Changelog

2020-06-04

  • Review normative and non-normative words.

2020-04-24

  • Add minProperties, minItems and/or minLength properties.

This extension was originally discussed in open-contracting/standard#223.

2019-03-20

  • Set "uniqueItems": true on array fields, and add "minLength": 1 on required string fields.

2018-12-18

  • Requirement.expectedValue and RequirementResponse.value allow boolean values.

About

Adds a criteria section to the tender object and responses sections to bids, awards and contracts. Based on the EU's Core Criterion and Core Evidence Vocabulary (CCCEV).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published