Skip to content

Commit

Permalink
Merge pull request #49 from open-contracting-extensions/224-lot-final…
Browse files Browse the repository at this point in the history
…Status

add finalStatus and finalStatusDetails
  • Loading branch information
odscjen authored May 7, 2024
2 parents 351346a + 08c21e7 commit 6b7dbbd
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 11 deletions.
26 changes: 15 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ If a contracting process is divided into lots, then you should add each lot to t

If a contracting process is not divided into lots, then you should nonetheless add a single, virtual lot. If a data element can be mapped to either a `tender` field or a `tender.lots` field, you should map it to the `tender.lots` field. In this way, information is accessible at the same location for all contracting processes, regardless of whether the process is actually divided into lots.

## Modelling
## Modeling

The lots extension maintains the overall structure of an OCDS release, with items, documents and milestones nested immediately within `tender`, `awards` and `contracts` sections, but it introduces an array of Lots in the `tender` section, and the ability to cross-reference a specific `relatedLot` for each item, and an array of `relatedLots` for documents, milestones and awards.

Expand Down Expand Up @@ -40,15 +40,15 @@ Documents and milestones may have a `relatedLots` field. Those without this fiel

The items within an award should have a `relatedLot` field. Publishers may also reference all the lots an award relates to at the award level using `relatedLots`.

## How to set `tender.status` if lots' statuses differ?
## How to set the `tender.finalStatus` field if the lots' final statuses differ?

`tender.status` and `tender.lots.status` use the closed tenderStatus.csv codelist. This codelist progresses from planning statuses ('planning', 'planned'), to 'active' status, and then result statuses ('complete', 'cancelled', 'unsuccessful').
The `tender.finalStatus` and `tender.lots.finalStatus` fields use the closed `tenderFinalStatus.csv` codelist. This codelist covers the possible end result statuses ('complete', 'cancelled', 'unsuccessful'). Prior to reaching a result, the statuses of the tender and its lots can be inferred from the relevant date fields.

* If any lot's status is 'active', then `tender.status` should be 'active', to indicate that some lots are awaiting results.
* If all lots' status are a result status, then `tender.status` describes the aggregate result:
* If at least one lot's status is 'complete', then `tender.status` should be 'complete', to indicate that there is at least one award.
* Otherwise, if at least one lot's status is 'unsuccessful', then `tender.status` should be 'unsuccessful', to indicate that the procedure was completed but unsuccessfully.
* Otherwise, If all lots' status are 'cancelled', then `tender.status` should be 'cancelled', to indicate that the procedure was discontinued as a whole.
* If any lot has no final status, then `tender.finalStatus` should not be set, to indicate that some lots are awaiting results.
* If all lots have a final status, then `tender.finalStatus` describes the aggregate result:
* If at least one lot's final status is 'complete', then `tender.finalStatus` should be 'complete', to indicate that there is at least one award.
* Otherwise, if at least one lot's final status is 'unsuccessful', then `tender.finalStatus` should be 'unsuccessful', to indicate that the procedure was completed but unsuccessfully.
* Otherwise, If all lots' final status are 'cancelled', then `tender.finalStatus` should be 'cancelled', to indicate that the procedure was discontinued as a whole.

## Examples

Expand Down Expand Up @@ -121,7 +121,6 @@ Although part of the same tender, the buyer is willing to award these different
],
"title": "Architectural services",
"description": "For architectural services delivered in the project",
"status": "active",
"value": {
"currency": "GBP",
"amount": 200000
Expand Down Expand Up @@ -169,7 +168,6 @@ Although part of the same tender, the buyer is willing to award these different
],
"title": "Civil engineering services",
"description": "For civil engineering services delivered in the project",
"status": "active",
"value": {
"currency": "GBP",
"amount": 400000
Expand Down Expand Up @@ -217,7 +215,6 @@ Although part of the same tender, the buyer is willing to award these different
],
"title": "Structural engineering",
"description": "For structural engineering consultancy delivered in the project",
"status": "active",
"value": {
"currency": "GBP",
"amount": 600000
Expand Down Expand Up @@ -302,6 +299,13 @@ Report issues for this extension in the [ocds-extensions repository](https://git

## Changelog

### v1.2

* Add fields:
* `Lot.finalStatus`
* `Lot.finalStatusDetails`
* Deprecate `Lot.status`

### Unreleased

* Add fields:
Expand Down
28 changes: 28 additions & 0 deletions release-schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,34 @@
"complete",
"withdrawn",
null
],
"deprecated": {
"description": "This field is deprecated, because the same information can be provided by filling in the relevant date fields.",
"deprecatedVersion": "1.2"
}
},
"finalStatus": {
"title": "Final status",
"description": "The final status of the lot, using the closed [tenderFinalStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#tender-final-status) codelist.",
"type": [
"string",
"null"
],
"codelist": "tenderFinalStatus.csv",
"openCodelist": false,
"enum": [
"complete",
"cancelled",
"unsuccessful",
null
]
},
"finalStatusDetails": {
"title": "Final status details",
"description": "Additional details on the final status of the lot. This field can be used to provide the local name of the final status.",
"type": [
"string",
"null"
]
},
"value": {
Expand Down

0 comments on commit 6b7dbbd

Please sign in to comment.