Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify contracting process, record and ocid, define planning process (866) #1216

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
1792be4
Definition of contracting process
JachymHercher Feb 14, 2021
325b528
Define OCDS record
JachymHercher Feb 14, 2021
95431f4
Wording cleanup
JachymHercher Feb 14, 2021
5792f97
Distinguish contracting / planning definitions
JachymHercher Feb 14, 2021
5d8fb0b
Update definition of OCID
JachymHercher Feb 14, 2021
d5d1a73
generated by script
JachymHercher Feb 14, 2021
36c2f4f
Update changelog.md
JachymHercher Feb 14, 2021
588097f
Define contracting process, planning process and record. Modify defin…
JachymHercher Feb 27, 2021
56b2edd
typo
JachymHercher Jul 14, 2021
e6bc88b
Change Guidance and smaller things
JachymHercher Jul 17, 2021
f895e98
Update documentation wording
JachymHercher Jul 17, 2021
b611dc2
Update guidance about the releaseTag
JachymHercher Jul 17, 2021
dcc2802
Uncompatible --> incompatible
JachymHercher Jul 28, 2021
a8acac6
uncompatible --> incompatible
JachymHercher Jul 28, 2021
530e2fd
Under OCDS --> In OCDS
JachymHercher Jul 28, 2021
f74e0ce
Under OCDS --> In OCDS
JachymHercher Jul 28, 2021
76413ea
Update general scope
JachymHercher Jul 29, 2021
ff68caf
Merge 1.2-dev into 866-clarify-contracting-process-record-define-plan…
jpmckinney Jul 30, 2021
210e1aa
guidance/map/related_processes: Remove "initiation"
jpmckinney Jul 30, 2021
21f4243
Fix "Merge 1.2-dev into 866-clarify-contracting-process-record-define…
jpmckinney Jul 30, 2021
3199e1a
build: Run manage.py pre-commit
jpmckinney Jul 30, 2021
8d99b3b
guidance/map/contracting_planning_processes: Remove TODO
jpmckinney Jul 30, 2021
607f28a
Fix internal links
jpmckinney Jul 30, 2021
7a666d6
Use "[open contracting] process identifier" or "process identifier" i…
jpmckinney Jul 30, 2021
9943e8b
guidance/map/contracting_planning_processes: Copy-edit. Use the conce…
jpmckinney Jul 30, 2021
2f0b3e7
guidance/map/unsuccessful_processes: Copy-edit
jpmckinney Jul 30, 2021
257a279
schema/identifiers: Relax the language of "contracting process" when …
jpmckinney Jul 30, 2021
7fb579d
schema: Fix "record" -> "compiled release"
jpmckinney Jul 30, 2021
91538c6
build: Run manage.py pre-commit
jpmckinney Jul 30, 2021
1b881d2
schema/identifiers: Fix path to schema file
jpmckinney Jul 30, 2021
1d74326
contracting_planning_processes: update image
yolile Jul 30, 2021
c211c6c
contracting_planning_processes: fix image letter case
yolile Jul 30, 2021
4abc3af
schema: Review description of release and ocid
jpmckinney Jul 30, 2021
aabdd31
schema,guidance: Avoid use of "OCDS process". Processes are real-worl…
jpmckinney Jul 30, 2021
55b08f7
build: Run manage.py pre-commit
jpmckinney Jul 30, 2021
b873e81
Use "open contracting process identifier" consistently, instead of "O…
jpmckinney Jul 30, 2021
b6013c8
record package schema: Defer to the description of a release/ocid in …
jpmckinney Jul 30, 2021
0691040
Fix broken internal links
jpmckinney Jul 30, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified docs/_static/png/contracting_process.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/getting_started/quality.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Understanding all of the challenges above, we understand that increasing the tra

All OCDS publications ought to meet the following criteria:

1. **Registered**: The data uses a [registered OCID prefix](../schema/identifiers.md#contracting-process-identifier-ocid).
1. **Registered**: The data uses a [registered OCID prefix](../schema/identifiers.md#open-contracting-process-identifier-ocid).
1. **Discoverable**: It is possible to discover the data by navigating a website whose homepage is indexed by popular web search engines.
1. **Retrievable**: It is possible to automate the download of all the data, either using an HTML page listing bulk download URLs, or using only machine-readable data as input.
1. **Reviewable**: The [OCDS Data Review Tool](https://standard.open-contracting.org/review/) is able to report results on the data.
Expand Down
2 changes: 1 addition & 1 deletion docs/getting_started/releases_and_records.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Releases follow the [release schema](../schema/reference). The schema covers the

#### Identifiers

Each release contains an [ocid](../schema/identifiers.md#contracting-process-identifier-ocid) to identify the contracting process it relates to. An ocid is composed of a prefix and an unique process identifier chosen by the publisher.
Each release contains an [ocid](../schema/identifiers.md#open-contracting-process-identifier-ocid) to identify the contracting process it relates to. An ocid is composed of a prefix and an unique process identifier chosen by the publisher.

A release also needs a release identifier, unique in the scope of the contracting process. A release id can be built in several ways. Publishers can use any generation strategy, as long as the ids don’t collide within the same process.

Expand Down
2 changes: 1 addition & 1 deletion docs/guidance/build.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ As you complete this phase, you can:

## Register an OCID prefix

The [identifiers](../../schema/identifiers) reference page describes the contracting process identifier (`ocid`) and how ocid prefixes are used to ensure `ocid`s are globally unique.
The [identifiers](../../schema/identifiers) reference page describes the open contracting process identifier (`ocid`) and how ocid prefixes are used to ensure `ocid`s are globally unique.

To publish OCDS data, you need to register an ocid prefix.

Expand Down
2 changes: 1 addition & 1 deletion docs/guidance/build/change_history.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ So far, the council used a single procurement system to manage the process. The

The council now uses a separate financial system to manage payments. The financial system publishes the new OCDS release.

The procurement system and the financial system share a common contracting process identifier. This means that the two systems can publish releases using the same `ocid`.
The procurement system and the financial system share a common identifier for contracting processes. This means that the two systems can publish releases using the same `ocid`.

The new release uses the 'implementation' tag. The `contracts.implementation.transactions` section includes the details of the payment.

Expand Down
4 changes: 2 additions & 2 deletions docs/guidance/build/hosting.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ When the suggested limits entail publication of multiple files, publishers ought
For releases, publishers can:

1. Segment by **release date** - placing all the releases from a given day, month or year in the same file;
1. Segment by **contracting process identifier** - placing all the releases related to a given set of contract process identifiers together in the same package;
1. Segment by **open contracting process identifier** - placing all the releases related to a given set of process identifiers together in the same package;

For records, publishers can segment by the first **release date** associated with a contracting process, or by **contracting process identifier.**
For records, publishers can segment by the first **release date** associated with a contracting process, or by **open contracting process identifier.**

Following these approaches will avoid release and records 'jumping' between files when the bulk files are updated.

Expand Down
1 change: 1 addition & 0 deletions docs/guidance/map.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ Mapping data to OCDS is not always obvious. Please refer to our how-to guides an
:maxdepth: 2
:titlesonly:

map/contracting_planning_processes
map/unsuccessful_processes
map/related_processes
map/pre-qualification
Expand Down
29 changes: 29 additions & 0 deletions docs/guidance/map/contracting_planning_processes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Contracting processes and planning processes

OCDS recognizes two types of processes: contracting processes and planning processes. In OCDS, a given process is uniquely identified by an [open contracting process identifier](../../schema/identifiers.md#open-contracting-process-identifier-ocid) (`ocid`). This section helps map your contracting activities (most often procurement procedures) to their OCDS representation.

OCDS defines a contracting process as:

> All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.

> Procedures that failed and were restarted are considered new processes.

> Boundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).

OCDS defines a planning process as:

> All the actions aimed at planning one or more contracting processes. This covers, for example, establishing the rationale for the procurement, giving the market a general description of the purchase, getting the necessary budget, forecasting and conducting market research.

> Planning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.

![Contracting Process](../../_static/png/contracting_process.png)

A planning process ought to have its `releaseTag` set to 'planning' (or 'planningUpdate'). A contracting process can have `releaseTag` set to [any other value from the codelist](../../schema/codelists.md#release-tag). A planning process should not contain the `releaseTag` 'tender' even if it contains a `tender` object. The two processes ought to be linked together using the `relatedProcesses` array in the releases for the contracting process, with the 'planning' code in the related process' `relationship` array.

```{note}
We recommend publishing data about planning and contracting processes under separate `ocid`s, following the definitions above. That said, publications that combine planning and contracting data under a single `ocid` remain conformant in OCDS 1.2. A required separation can be considered for OCDS 2.0.
```

```{note}
In OCDS 1.2 and earlier, it is not possible to publish all information about multi-stage procedures under a single `ocid`. There is guidance on how to deal with this for [framework agreements](related_processes) and for [pre-qualification and pre-selection](pre-qualification). If you want to disclose this type of information (including other types of multi-stage procedures, such as competitive dialogues and innovation partnerships), [contact the OCDS Helpdesk](../../support/index). The approach to modelling multi-stage procedures in a future, backwards-incompatible version of the standard is under discussion on [GitHub](https://github.com/open-contracting/standard/issues/440).
```
2 changes: 1 addition & 1 deletion docs/guidance/map/pre-qualification.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Pre-qualification and pre-selection
# Processes with pre-qualification and pre-selection

In single-stage procedures, procuring entities invite suppliers to bid without submitting any prior information. Such procedures are straightforward to model in OCDS.

Expand Down
5 changes: 1 addition & 4 deletions docs/guidance/map/related_processes.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,7 @@ In OCDS, a contracting process brings together, under a single identifier, the i
* What was the total value of spending that resulted from this award?
* Was a renewal of this contract signed?

In some cases, complex contracting processes cannot be represented under a single identifier under OCDS' model, because:

* There are multiple competitive stages: for example, when a framework agreement involves second-stage competitions.
* The procurement systems used at different stages of the process are managed by different bodies, and cannot be integrated.
In some cases, complex contracting processes cannot be represented under a single identifier, because there are multiple stages. For example, this is the case when a framework is set up, and then mini-competitions are used for purchases from the framework.

OCDS models the first and second stages of framework agreement procedures as separate contracting processes, linked together using the `relatedProcesses` array. The `tender.techniques.hasFrameworkAgreement` field, from the [Techniques](https://extensions.open-contracting.org/en/extensions/techniques/master/) extension, is used to identify contracting processes that represent the first stage of a framework agreement procedure. The presence of a related process with a `.relationship` set to 'framework' is used to identify contracting processes that represent the second stage of a framework agreement procedure.

Expand Down
18 changes: 2 additions & 16 deletions docs/guidance/map/unsuccessful_processes.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,8 @@
# Unsuccessful processes

In the case of procurement, a contracting process can be defined as a procurement procedure. There is a one-to-one correspondence between the first stage of a procurement procedure (tender) and a contracting process.

In OCDS, at a conceptual level, a contracting process is intended to match each concrete attempt to start a procedure that leads to one or more contracts. Attempts can include: an invitation to tender (in open procedure); an invitation to request to participate; a competition for a concession; a direct award, etc.

![Contracting Process](../../_static/png/contracting_process.png)

In OCDS, the `ocid` is the unique identifier for a contracting process. As the initiation of the procurement process is the tender, normally the identifier for a tender can be used as the `ocid`.

In most jurisdictions, if a procedure is cancelled or unsuccessful, and a **new procedure** is started to procure the same items, the two procedures are considered two **different** contracting processes. This is in keeping with the OCDS definition of a contracting process.

But in other jurisdictions, such as Paraguay, the planning stage is considered as the initiation of the process. In these jurisdictions when a tender fails and a new tender is started, the two tenders are considered part of the same contracting process. This differs from the OCDS definition of a contracting process.

In OCDS, it is relevant and desirable to include the planning information that relates to the process, but the contracting process is not interpreted as ‘starting’ with the planning stage. In OCDS, the planning stage is something that comes **before** the initiation of a contracting process. The initiation of the procedure is not the planning stage, because at least one of the following is true of a planning stage: it is not a concrete attempt to award one or more contracts like a request for tender, etc.; it is not a concrete opportunity for potential suppliers to participate in; it does not describe the competitive conditions.

However a jurisdiction treats unsuccessful tenders and subsequent tenders, in OCDS they are considered separate but related contracting processes.

This relationship can be modelled using the `relatedProcess` array at the release level, with the ‘unsuccessfulProcess’ relationship type.
However, in some jurisdictions, such as Paraguay, the planning stage is considered as the initiation of the process. In these jurisdictions, when a tender fails and a new tender is started, the two tenders are considered part of the same contracting process. This differs from the OCDS definition of a contracting process. OCDS, instead, records the cancelled procedure in the `relatedProcesses` array of the new procedure, with the 'unsuccessfulProcess' code in the related process' `relationship` array.

![Unsuccessful Tender](../../_static/png/unsuccessful-tender.png)

Expand Down Expand Up @@ -48,7 +34,7 @@ To construct an `ocid` for the second contracting process, Paraguay adds a conse

Paraguay could also have used the identifier for the second tender as the `ocid` for the second contracting process.

The `relatedProcess` block links the two processes, with the relationship set to ‘unsuccessfulProcess’.
The `relatedProcesses` block links the two processes, with the relationship set to ‘unsuccessfulProcess’.

```{jsoninclude} ../../examples/unsuccessful-tender-related-process.json
:jsonpointer:
Expand Down
26 changes: 14 additions & 12 deletions docs/history/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Per the [normative and non-normative content and changes policy](https://docs.go

* Guidance section:
* [#986](https://github.com/open-contracting/standard/pull/986) Add implementation guidance from OCP website.
* Add worked examples for the Map phase [#947](https://github.com/open-contracting/standard/pull/947) [#948](https://github.com/open-contracting/standard/pull/948) [#950](https://github.com/open-contracting/standard/pull/950) [#974](https://github.com/open-contracting/standard/pull/974) [#990](https://github.com/open-contracting/standard/pull/990) [#999](https://github.com/open-contracting/standard/pull/999) [#1007](https://github.com/open-contracting/standard/pull/1007) [#1123](https://github.com/open-contracting/standard/pull/1123).
* Add worked examples for the Map phase [#947](https://github.com/open-contracting/standard/pull/947) [#948](https://github.com/open-contracting/standard/pull/948) [#950](https://github.com/open-contracting/standard/pull/950) [#974](https://github.com/open-contracting/standard/pull/974) [#990](https://github.com/open-contracting/standard/pull/990) [#999](https://github.com/open-contracting/standard/pull/999) [#1007](https://github.com/open-contracting/standard/pull/1007) [#1123](https://github.com/open-contracting/standard/pull/1123) [#1216](https://github.com/open-contracting/standard/pull/1216).
* Add worked examples for the Build phase [#951](https://github.com/open-contracting/standard/pull/951) [#997](https://github.com/open-contracting/standard/pull/997).
* [#963](https://github.com/open-contracting/standard/pull/963) Remove guidance on web discovery.
* [#986](https://github.com/open-contracting/standard/pull/986) Merge Registration page into Build page.
Expand Down Expand Up @@ -101,6 +101,13 @@ Per the [normative and non-normative content and changes policy](https://docs.go

### Schema

* Clarify core concepts:
* [#1216](https://github.com/open-contracting/standard/pull/1216) Define contracting process and planning process in the schema description. Update definition of release, record and ocid. Update references to contracting process so that it takes take the planning process into account.
* [#1182](https://github.com/open-contracting/standard/pull/1182) `buyer`
* [#1163](https://github.com/open-contracting/standard/pull/1163) `tender.procuringEntity`
* [#1232](https://github.com/open-contracting/standard/pull/1232) `awards.suppliers`
* [#1208](https://github.com/open-contracting/standard/pull/1208) `contracts` and its fields

* Add new fields:
* [#1125](https://github.com/open-contracting/standard/pull/1125) `Item.unit.weight`
* [#1165](https://github.com/open-contracting/standard/pull/1165) `statusDetails` to `Tender`, `Award` and `Contract`
Expand All @@ -117,17 +124,6 @@ Per the [normative and non-normative content and changes policy](https://docs.go
* [#1200](https://github.com/open-contracting/standard/pull/1200) `tender.submissionMethod`, because all codes from the `submissionMethod` codelist are deprecated.
* [#1296](https://github.com/open-contracting/standard/pull/1296) `tender.eligibilityCriteria` in favor of the new `tender.exclusionGrounds` field, in order to use more common terminology and improve semantics.

* Clarify core concepts:
* [#1182](https://github.com/open-contracting/standard/pull/1182) `buyer`
* [#1163](https://github.com/open-contracting/standard/pull/1163) `tender.procuringEntity`
* [#1232](https://github.com/open-contracting/standard/pull/1232) `awards.suppliers`
* [#1208](https://github.com/open-contracting/standard/pull/1208) `contracts` and its fields

* Clarify merging behavior:
* [#1242](https://github.com/open-contracting/standard/pull/1242) Clarify that the releases to merge must use the same version of OCDS.
* [#1242](https://github.com/open-contracting/standard/pull/1242) Narrow the uniqueness scope of a release's `id` to its `ocid` and OCDS version (was `ocid` only), to allow the publication of the same release for different versions of OCDS.
* [#1315](https://github.com/open-contracting/standard/pull/1315) Update the descriptions of `id` and `date`, to add rules for compiled releases.

* Update and clarify field descriptions:
* [#1094](https://github.com/open-contracting/standard/pull/1094) `Organization.id`, to clarify its uniqueness.
* [#1113](https://github.com/open-contracting/standard/pull/1113) `ocid`, to recommend a hyphen after the ocid prefix.
Expand All @@ -145,6 +141,11 @@ Per the [normative and non-normative content and changes policy](https://docs.go
* [#1112](https://github.com/open-contracting/standard/pull/1112) `Period.durationInDays`: "If a startDate and endDate are set, this field, if used, **must** be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, **must** be equal to the difference between startDate and maxExtentDate." ("should" replaced with "must")
* [#1112](https://github.com/open-contracting/standard/pull/1112) `Contract.items`: "If the items contracted are identical to the items awarded, this field **should** be omitted." (rephrased)

* Clarify merging behavior:
* [#1242](https://github.com/open-contracting/standard/pull/1242) Clarify that the releases to merge must use the same version of OCDS.
* [#1242](https://github.com/open-contracting/standard/pull/1242) Narrow the uniqueness scope of a release's `id` to its `ocid` and OCDS version (was `ocid` only), to allow the publication of the same release for different versions of OCDS.
* [#1315](https://github.com/open-contracting/standard/pull/1315) Update the descriptions of `id` and `date`, to add rules for compiled releases.

* Make minor changes to the schema's organization:
* [#1240](https://github.com/open-contracting/standard/pull/1240) Move `Unit` from `Item.unit` to the schema definitions.
* [#1354](https://github.com/open-contracting/standard/pull/1354) Switch the positions of `contract.dateSigned` and `contract.period` to correspond with the order in `Award`.
Expand All @@ -169,6 +170,7 @@ Per the [normative and non-normative content and changes policy](https://docs.go
* [#1161](https://github.com/open-contracting/standard/pull/1161) Change recommendation for unknown time component.
* [#1189](https://github.com/open-contracting/standard/pull/1189) Add recommendations about publishing and referencing documents in the document reference section.
* [#1208](https://github.com/open-contracting/standard/pull/1208) Update guidance with new field definitions.
* [#1216](https://github.com/open-contracting/standard/pull/1216) Update definitions of contracting process, record, and ocid. Introduce definition of planning process.
* [#1307](https://github.com/open-contracting/standard/pull/1307) Clarify uniqueness rules for records.
* [#1315](https://github.com/open-contracting/standard/pull/1315) Add rules on setting `id` and `date` for compiled releases to the merging specification.

Expand Down
Loading