-
Notifications
You must be signed in to change notification settings - Fork 46
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
Updates to organisation handling in OCDS #368
Comments
How is the new id for an entity generated? |
We suggest that the ID could be generated from {identifier.scheme}-{identifier.id}-{department-identifier} but the standard would be agnostic as long as the cross-reference was stable within the scope of a single release. |
thanks a lot for reply! Will Open Data Service make a migration script available for this change? I imagine that this task is relatively easy to automate and that a script would save clients lots of headache for the OCDS upgrade. Updates to user interface and built-in reports/stats will probably stay a challenge. |
I believe we could make a script available for this - yes. |
On slide 17 of the V1.1 slide deck you say that referencing to "organisation" block should be done via ID and name. Why not just id? To prevent mistakes...? |
The main reason I think is that it makes simple uses of the data easier. There are many use-cases (such as just displaying the declared name of the contractor) which don't need to the full organisation identification info. For these cases, asking the publisher to provide the name in the data (which should be programatically accessible alongside the ID, so no heavy-lift) makes the users life a lot easier, as they don't need to perform the cross-reference lookup for these sorts of simple uses. This also impacts on flattened spreadsheet representations of the data, where it would let users skim over a spreadsheet and see names in the main sheet where a tender or contract award is, rather than having to lookup the ID in a separate sheet to get a name. |
We had some feedback on this proposal at IODC. One source of confusion is that "entity" is a much broader term than organisation, and is used in other context to include all physical objects e.g. pencils, which in OCDS are not entities, but items. We also had some different feedback on how difficult the new structure would be to implement. Some publishers have a centralised system that already stores organisations independently of releases/records, so it is relatively straightforward to publish to the new format. Other publishers have multiple systems that are responsible for publishing releases about data at different stages of the contracting process. Currently each stage of the contracting process corresponds roughly to a separate block in an OCDS release, so it is easier to merge data from these multiple systems. Outputting a common entities block at the top level is more technically difficult to implement, particularly with the need for each particular block to reference back to it. Which OCDS merge strategy applies to the entities list? The best fit looks to be arrayMergeById, but it's worth noting this is different to how lists of organisations are currently merged.
There may still be differences between systems (e.g. a different writing of the name), and compiled record might alternate between these. (Which was always a risk with merging, but was mitigated somewhat by having data from different processes in different blocks). Edit: *this should be addressed by the use of different identifiers for each department. |
The naming question is an interesting one. One alternative I've been looking at is: 'parties' c.f. parties in law. This would need some good documentation to explain we are talking about 'parties to the contracting process' not parties to a specific contract, unless they are named as parties at that point. Other views on nomenclature would be very welcome |
I've started an extension repository to allow us to work up these changes to the schema in more detail. There are a number of open issues on that repository. |
We discussed terminology in the upgrade session in Bogota yesterday. There was a view that 'parties' as a term does not translate easily into Spanish. The alternatives suggested were 'actors' and 'stakeholders'. Actors was put forward as the preferred term. |
Another possible term is participants |
The commit here applies updates to the documentation and schema based on the terminology of 'parties' ready for review. This terminology was carried forward from the work on the PPP extension to OCDS and will be checked with reviewers. |
I cannot get an idea of how proposal is covering case of multiple contact points of procuringEntity that speak in different languages. Can you elaborate? |
The multiple contact points would be handled by additionalContactPoints extension. I've added this at https://github.com/open-contracting/ocds_additionalContactPoints_extension |
Comment from Juan Pane during peer review:
|
My comment from the 1.1 peer review:
|
Thanks for catching the omission of 'reviewBody'. I've added this to the staged codelist. We had drafted it up, but failed to include it:
|
This is now merged into OCDS 1.1 |
A substantial update to organisation handling is proposed for version 1.1 of OCDS.
The current situation
We currently have an organisation building block which is used for
buyer
,procuringEntity
,tenderers
andsuppliers
.The block consists of:
We use the
identifier
block for identifying theproviderOrganization
andreceiverOrganization
of a transactional payment. In this design choice there is an implicit assumption that the providerOrganization is the buyer (providing the funds), and the receieverOrganization is the supplier, so additional address information on them is not required.An example organisation block is shown below.
The issue(s)
(1) There are other organizations involve in a contracting process
Some we have encountered include:
(2) The 'buyer' and 'supplier' terminology does not work for all situations
Issue #156 suggests renaming 'buyer' to better capture the organisation who is party to the contract.
In frameworks we may have cases where:
In non-procurement cases, we may have:
(3) Publishers want to classify organisations
Issue #181 calls for classification of organisations by different dimensions (e.g. size: micro, small, medium etc; ownership: VCS, foreign owned, minority-owned).
Issue #269 considers the EU requirement to classify the main activity of a buyer, using codes derived from COFOG.
(4) Publishers want to provide multiple contact points
Issue #266 #291 and #275 consider the demand for additional addresses or contact points to be associated with an organisation. This may be for a number of reasons:
(5) Users want location information on organisations
At present, the proposed location extension only applies to items. Some use-cases want to understand where an organisation is registered.
(6) Our organisation building block lacks a root ID
All the other building blocks in OCDS have an
id
property.In the organisation block, this is only provided at the
identifier.id
level. At theidentifier.id
level there is no guarantee of a unique, unambigious identifier - asidentifier.id
is a two-part identifier, consisting ofidentifier.scheme
andidentifier.id
. (i.e. it is theoretically possible to have something like:where we have to
identifier.id
values of '123456789' but in different schemes.Issue #361 notes the problems this complex id, nested one level down, creates for our approach to flattening data. It also has implications for data merging, and currently requires special case handling.
(7) The same organisation may appear many times in a single release
In complex framework contracts, for example, a buyer or supplier could appear many times.
In an auction situation, the same bidder may exist against many bids.
If the full organisation information is repeated each time, this could lead to a lot of redundant data.
However, there may be cases when organisation blocks would refer to the same legal entity, but would contain subtly different information. For example, a single legal entity might be both the procuringEntity and the buyer, but with a different department and contact point for each role it plays.
(8) Not all the entities we are dealing with are strictly organizations
Individuals are able to be party to a contract. And in some cases, an organization is only brought into being after a contract is signed (e.g. in Public Private Partnerships which create new Joint Purpose Vehicles).
The language or
organization
may not be correct in these cases.(9) Flattening organizations involves multiple tables
A full organization block includes an array of
additionalIdentifiers
. This means that in our current flattening approach, a single organization array such asaward.suppliers
requires two tables (awa_suppliers and awa_sup_additionalIdentifiers)If we have more kinds of organizations emerging this increases the number of tables substantially.
The proposal
We are seeking comments on a major refactor of organization handling to rationalise and future-proof the standard.
We propose:
entities
which will consist of an array of organization objects. All organizations who are part of a contracting process in any form should be included here.id
field to the top level of the organization object. id should be used to cross-reference to the organization whenever it occurs.role
as a field of organization with a codelist of organization roles (buyer, supplier, procuringEntity, etc.)buyer
,supplier
,procuringEntity
and other locations, and replacing with a block containing:id
andname
.In detail
The entities section will sit alongside
planning
,tender
,award
andcontract
. It will be an array of organization building blocks.An
id
field will be added to the organization building block used within the parties section. We will recommend that this should be composed of {identifier.scheme
}-{identifier.id
}-{department-identifier
}, although publishers will not be required to follow a specific pattern.organization.role
will be use an open codelist, containing initially:All organizations that occur in a release must be included in the entities section.
Wherever organizations occur elsewhere in the file, they must referenced by at least id and name.
Implications
Consuming applications will need to cross-reference to identifiers in the organization block. Duplication of redundant organization information will be reduced.
Flattened data could have a single entities table listing all the organizations and their role in a contracting process.
More advanced validation rules will be needed (e.g. if an organization id appears under suppliers, the entities record for the organization should include a role of ‘supplier’)
Worked example
The following example shows an abbreviated award release, with information on the buyer, tenderers and supplier awarded the contract. It also includes an additional contact point for complaints in the entities block, showing how this approach allows additional organisations or contact points to be included more easily.
Engagement
Please indicate support or opposition for this proposal using the +1 / -1 buttons or a comment. If opposing the proposal, please give clear justifications, and where possible, make an alternative proposals.
Clarifying questions are also encouraged.
The text was updated successfully, but these errors were encountered: