-
Notifications
You must be signed in to change notification settings - Fork 95
Manuel Carrera Party Model - Legal Entity and Party Representation #3801
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
Manuel Carrera Party Model - Legal Entity and Party Representation #3801
Conversation
Party Model - Legal Entity and Party RepresentationBackground CDM has been representing parties and legal entities as two separate objects within the model. However, it has been acknowledged that this should not be like this, as a party is actually related to a transaction, and can be either a person, a legal entity, or both. A legal entity is defined independently from a transaction. This way, all of its structure should point to the same types and attributes, specially to the identification and the identification type, that were the initial motivation for this change. What is being released?
Review directions Changes can be reviewed in PR: #3801 Note This comment was generated via Rosetta. |
✅ Deploy Preview for finos-cdm ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
| identifier EntityIdentifier (0..*) <"A legal entity identifier (e.g. RED entity code)."> | ||
| name string (0..1) <"The legal entity name."> | ||
| [metadata scheme] | ||
| contactInformation ContactInformation (0..1) <"The postal/street address, telephone number, email address and/or web page. If the contact information is specific to the associated business unit(s) or person (s), it should be associated with those."> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adjust description after the 1st sentence:
"... That contact information must be specific to the legal entity. Other contact information that is specific to a business unit or person should be associated with those instead."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A couple of points:
- If the purpose of the LegalEntity identifier is to provide a place to store any and all identifiers for an entity the enum list needs to be expanded and more flexibly to add enums not on the list.
- It's not clear what the use of the CountryCode enum is suppose to be, is it to indicate the Entity is a country or to identify the country code of the entity? If it's the later then country codes should be derived from other identifiers.
- The TaxID needs to be a complex type with a source/issuer attribute.
- There needs to be a way to add identifiers not on the list such as US based EIN tax codes and SEC issued CIK codes.
| contactInformation ContactInformation (0..1) <"The postal/street address, telephone number, email address and/or web page. If the contact information is specific to the associated business unit(s) or person (s), it should be associated with those."> | ||
| organisation Organisation (0..1) | ||
|
|
||
| condition PersonOrOrganisationOrBoth: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing description
| condition PersonOrOrganisationOrBoth: | ||
| person exists or organisation exists | ||
|
|
||
| condition OrganisationID: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ditto, missing description
| role NaturalPersonRoleEnum (0..*) <"FpML specifies a person role that is distinct from the party role."> | ||
| [metadata scheme] | ||
|
|
||
| type Party: <"A class to specify a party, without a qualification as to whether this party is a legal entity or a natural person, although the model provides the ability to associate a person (or set of persons) to a party, which use case would imply that such party would be a legal entity (even if not formally specified as such). "> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Party should retain having a key (they are sometimes specified by reference)
| if organisation exists then organisation -> identifier exists | ||
|
|
||
| type EntityIdentifier: <"Comprises an identifier and a source. The associated metadata key denotes the ability to associate a hash value to the PartyIdentifier instantiations for the purpose of model cross-referencing, in support of functionality such as the event effect and the lineage."> | ||
| [metadata key] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EntityIdentifier shouldn't need to have a key (even though that was the case for PartyIdentifier, it wasn't used as a reference).
| PLID <"Privacy Law Identifier. It refers to the DMO Letter No. 17-16, http://www.cftc.gov/idc/groups/public/@lrlettergeneral/documents/letter/17-16.pdf"> | ||
|
|
||
| enum PartyIdentifierTypeEnum: <"The enumeration values associated with party identifier sources."> | ||
| [deprecated] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ditto: Delete, don't deprecate
|
|
||
| set isEqual: | ||
| issuerName is absent or issuerName -> issuerName contains query -> issuerName | ||
| issuerName is absent or issuerName -> issuerName = query -> issuerName |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like this change is unrelated? But it's a good change anyway.
The switch from contains to straight = should apply to multiple other functions in this namespace.
| organisation Organisation (0..1) | ||
|
|
||
| condition PersonOrOrganisationOrBoth: | ||
| person exists or organisation exists |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
personRole should exist rather than person, otherwise a person could be incorrectly specified without a role.
| identifier exists or name exists | ||
|
|
||
| type Organisation extends LegalEntity: | ||
| businessUnit BusinessUnit (0..*) <"Optional organization unit information used to describe the organization units (e.g. trading desks) involved in a transaction or business process, incl. the contact information (when relevant)."> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider making businessUnit single cardinality instead. If multiple business units must be specified, they can be represented by multiple organisations, each extending the same legal entity.
|
|
||
| type Organisation extends LegalEntity: | ||
| businessUnit BusinessUnit (0..*) <"Optional organization unit information used to describe the organization units (e.g. trading desks) involved in a transaction or business process, incl. the contact information (when relevant)."> | ||
| account Account (0..1) <"The account that might be associated with the party. At most one account can be specified, as it is expected that this information is used in the context of a contract or legal document where only one account per party can be associated with such object."> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adjust description: "party" --> "organisation"
|
Superseded by #4043 |
No description provided.