LEI Data GLEIF Data Quality Management

Data Quality Checks Details



Currently following checks are building the Rule Setting applied for the generation of the Data Quality Reports.
The Rule Setting is also available as PDF or Excel.

Legal name is plausible

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED']

Condition:

* lei:LegalName $PRESENT * lei:LegalName NOT IN $CASE_INSENSITIVE(['NOT AVAILABLE', 'N.A.', 'N/A']) * lei:LegalName NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER

Ensure LEI code is ISO 17442 compliant

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'PENDING_TRANSFER', 'PENDING_ARCHIVAL'] * lei:InitialRegistrationDate >= $DATETIME('2016-07-07T00:00:00+00:00')

Condition:

* lei:LEI $ISO_17442_COMPLIANT

Ensure appropriate code in legal address region

Precondition:

* lei:LegalAddress/lei:Region $PRESENT * lei:RegistrationStatus $MUTABLE

Condition:

* lei:LegalAddress/lei:Region IN $ISO_3166_2

Ensure appropriate code in legal address country

Precondition:

* lei:RegistrationStatus $MUTABLE

Condition:

* lei:LegalAddress/lei:Country IN ['XK', $ISO_3166_1_ALPHA_2]

Ensure compliance with GLEIF Accepted Legal Jurisdictions Code List

Precondition:

* lei:RegistrationStatus $MUTABLE

Condition:

* lei:LegalJurisdiction IN $GLEIF_ACCEPTED_LEGAL_JURISDICTIONS

Record has plausible renewal date

Precondition:

* lei:RegistrationStatus IN ['ISSUED']

Condition:

* lei:NextRenewalDate + $TIME_INTERVAL('1 D') >= leiFileHeader:ContentDate * lei:NextRenewalDate

Verify plausibility of dates for the record

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED']

Condition:

* leiFileHeader:ContentDate >= lei:LastUpdateDate * lei:LastUpdateDate >= lei:InitialRegistrationDate

Appropriate setting of next renewal date of the record

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED']

Condition:

* lei:NextRenewalDate > lei:InitialRegistrationDate

Ensure DUPLICATE records have at least one successor LEI

Precondition:

* lei:RegistrationStatus IN ['DUPLICATE']

Condition:

* lei:SuccessorLEI $PRESENT

Avoid uniqueness violations outside of transfers

Precondition:

* $COUNT(lei:LEI) > 1

Condition:

* $COUNT(lei:LEI) == 2 * FOR lei:LEI: * leiFileHeader:Originator $UNIQUE * IF RUT lei:RegistrationStatus IN ['PENDING_TRANSFER', 'PENDING_ARCHIVAL']: * $REFERRED_RECORD lei:RegistrationStatus NOT IN ['PENDING_TRANSFER', 'PENDING_ARCHIVAL'] * IF RUT lei:RegistrationStatus NOT IN ['PENDING_TRANSFER', 'PENDING_ARCHIVAL']: * $REFERRED_RECORD lei:RegistrationStatus IN ['PENDING_ARCHIVAL']

Validate SuccessorLEI

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED'] * FOR lei:SuccessorLEI: * lei:SuccessorLEI $PRESENT

Condition:

* lei:SuccessorLEI $VALID

Ensure record is managed by an accredited LEI Issuer

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED']

Condition:

* lei:ManagingLOU $LEI_ISSUER

Ensure correct registration statuses for active entities

Precondition:

* lei:EntityStatus IN ['ACTIVE']

Condition:

* lei:RegistrationStatus $MUTABLE

Check ManagingLOU equals Originator of the file

Precondition:

Condition:

* lei:ManagingLOU $EQUALS leiFileHeader:Originator

Inactive entities have correct registration status

Precondition:

* lei:RegistrationStatus NOT IN ['PENDING_TRANSFER','PENDING_ARCHIVAL'] * lei:EntityStatus IN ['INACTIVE']

Condition:

* lei:RegistrationStatus IN ['RETIRED']

Ultimate parent has correct relationship information

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * $COUNT($REPORTED_CHILD_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED']

Condition:

* $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 0 WITH: * rr:RegistrationStatus $MUTABLE * $COUNT($REPORTED_EXCEPTIONS) == 1 WITH: * repex:ExceptionReason IN ['NATURAL_PERSONS', 'NON_CONSOLIDATING', 'NO_KNOWN_PERSON'] * repex:ExceptionCategory IN ['DIRECT_ACCOUNTING_CONSOLIDATION_PARENT'] * $COUNT($REPORTED_EXCEPTIONS) == 1 WITH: * repex:ExceptionReason IN ['NATURAL_PERSONS', 'NON_CONSOLIDATING', 'NO_KNOWN_PERSON'] * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT']

Reporting exceptions are distinct and without concurrent relationship records

Precondition:

* $COUNT($REPORTED_EXCEPTIONS) > 0

Condition:

* FOR $REPORTED_EXCEPTIONS: * repex:ExceptionCategory $UNIQUE * IF repex:ExceptionCategory IN ['DIRECT_ACCOUNTING_CONSOLIDATION_PARENT']: * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 0 WITH: * rr:RegistrationStatus IN ['PUBLISHED','LAPSED']: * rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY'] * IF repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT'] * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 0 WITH: * rr:RegistrationStatus IN ['PUBLISHED','LAPSED']: * rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY']

Provide complete, distinct parent information for non-branches

Precondition:

* lei:EntityCategory NOT IN ['BRANCH'] * lei:RegistrationStatus IN ['ISSUED']

Condition:

* FOR $REPORTED_DIRECT_PARENT_INFO: * $COUNT($REPORTED_EXCEPTIONS) == 1 * OR * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RegistrationStatus IN ['PUBLISHED'] * FOR $REPORTED_ULTIMATE_PARENT_INFO: * $COUNT($REPORTED_EXCEPTIONS) == 1 * OR * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RegistrationStatus IN ['PUBLISHED']

Published relationships point to an appropriate parent

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus IN ['PUBLISHED']

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS WITH: * lei:LEI NOT $EQUALS rr:EndNode/rr:NodeID: * rr:EndNode/rr:NodeID $VALID * lei:RegistrationStatus $MUTABLE * FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS WITH: * lei:LEI $EQUALS rr:EndNode/rr:NodeID: * rr:RelationshipType IN ['IS_FUND-MANAGED_BY']

Validation reference is provided for public regulatory filiings

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:ValidationDocuments IN ['REGULATORY_FILING'] * rr:ValidationSources IN ['FULLY_CORROBORATED', 'PARTIALLY_CORROBORATED']

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * rr:ValidationReference $PRESENT

Ensure correct period dates of retired relationships

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus IN ['RETIRED']

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * $COUNT(rr:RelationshipPeriod) > 0 WITH: * rr:PeriodType IN ['RELATIONSHIP_PERIOD'] * rr:StartDate $PRESENT * rr:EndDate $PRESENT * IF rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY','IS_ULTIMATELY_CONSOLIDATED_BY']: * $COUNT(rr:RelationshipPeriod) > 0 WITH: * rr:PeriodType IN ['ACCOUNTING_PERIOD'] * IF $COUNT(rr:RelationshipPeriod) > 0 WITH rr:PeriodType IN ['ACCOUNTING_PERIOD']: * FOR ALL-APPLICABLE rr:RelationshipPeriod: * rr:StartDate $PRESENT * rr:EndDate $PRESENT

Relationship status is correct when parent record is inactive

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus NOT IN ['DUPLICATE', 'ANNULLED', 'PENDING_ARCHIVAL', 'PENDING_TRANSFER'] * $END_NODE_RECORD lei:RegistrationStatus IN ['RETIRED']

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * rr:RelationshipStatus IN ['INACTIVE']

Ensure relationship status is correct when child record is inactive

Precondition:

* lei:RegistrationStatus IN ['RETIRED'] * $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus NOT IN ['DUPLICATE', 'ANNULLED']

Condition:

* rr:RelationshipStatus IN ['INACTIVE']

Verify plausibility of relationship period dates

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED', 'RETIRED'] * rr:RelationshipPeriod/rr:StartDate $PRESENT * rr:RelationshipPeriod/rr:EndDate $PRESENT

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * rr:RelationshipPeriod/rr:StartDate $DATE_PART

Ensure valid connection between relationship and registration statuses

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RelationshipStatus IN ['INACTIVE']

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * rr:RegistrationStatus IN ['RETIRED', 'PENDING_TRANSFER', 'PENDING_ARCHIVAL']

Avoid redundancy in legal address and addresses in alternative languages

Precondition:

* lei:OtherAddress/@type IN ['ALTERNATIVE_LANGUAGE_LEGAL_ADDRESS']

Condition:

* FOR ALL-APPLICABLE lei:OtherAddress: * lei:OtherAddress/@xml:lang $PRESENT * lei:OtherAddress/@xml:lang NOT $EQUALS lei:LegalAddress/@xml:lang * lei:OtherAddress/@xml:lang $UNIQUE * lei:OtherAddress NOT $EQUALS_NORMALIZED lei:LegalAddress * FOR FIELD IN [lei:FirstAddressLine, lei:AdditionalAddressLine[1], lei:AdditionalAddressLine[2], lei:AdditionalAddressLine[3], lei:AddressNumber, lei:AddressNumberWithinBuilding, lei:MailRouting, lei:City, lei:PostalCode]: * lei:OtherAddress $UNIQUE

Avoid redundancy in headquarters address and addresses in alternative languages

Precondition:

* lei:OtherAddress/@type IN ['ALTERNATIVE_LANGUAGE_HEADQUARTERS_ADDRESS']

Condition:

* FOR ALL-APPLICABLE lei:OtherAddress: * lei:OtherAddress/@xml:lang $PRESENT * lei:OtherAddress/@xml:lang NOT $EQUALS lei:HeadquartersAddress/@xml:lang * lei:OtherAddress NOT $EQUALS_NORMALIZED lei:HeadquartersAddress * FOR FIELD IN [lei:FirstAddressLine, lei:AdditionalAddressLine[1], lei:AdditionalAddressLine[2], lei:AdditionalAddressLine[3], lei:AddressNumber, lei:AddressNumberWithinBuilding, lei:MailRouting, lei:City, lei:PostalCode]: * lei:OtherAddress $UNIQUE

No validation information is provided for self-supplied entities

Precondition:

* lei:ValidationAuthority $PRESENT * lei:ValidationSources $PRESENT * lei:ValidationSources IN ['ENTITY_SUPPLIED_ONLY'] * lei:ValidationAuthorityID NOT IN ['RA888888']

Condition:

* lei:ValidationAuthorityID IN ['RA999999'] * lei:ValidationAuthorityEntityID NOT $PRESENT

Ensure complete relationship periods with start date for active entities

Precondition:

* lei:EntityStatus IN ['ACTIVE'] * $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus NOT IN ['ANNULLED', 'DUPLICATE','PENDING_TRANSFER', 'PENDING_ARCHIVAL']

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * $COUNT(rr:RelationshipPeriod) >= 1 WITH: * rr:PeriodType IN ['RELATIONSHIP_PERIOD'] * rr:StartDate $PRESENT * IF rr:ValidationDocuments IN ['REGULATORY_FILING']: * $COUNT(rr:RelationshipPeriod) > 0 WITH: * rr:PeriodType IN ['DOCUMENT_FILING_PERIOD'] * rr:StartDate $PRESENT * IF rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY', 'IS_ULTIMATELY_CONSOLIDATED_BY']: * $COUNT(rr:RelationshipPeriod) > 0 WITH: * rr:PeriodType IN ['ACCOUNTING_PERIOD'] * rr:StartDate $PRESENT

Ensure relationship's registration status is correct when child record lapses

Precondition:

* lei:RegistrationStatus IN ['LAPSED'] * $COUNT($REPORTED_RELATIONSHIPS) > 0

Condition:

* FOR $REPORTED_RELATIONSHIPS: * rr:RegistrationStatus IN ['LAPSED'] * OR * rr:RegistrationStatus $IMMUTABLE

Assert record and relationships share renewal cycle

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RelationshipStatus IN ['ACTIVE'] * rr:RegistrationStatus $MUTABLE

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * rr:NextRenewalDate $PRESENT * rr:NextRenewalDate - lei:NextRenewalDate

Ensure child LEI and relationship records are managed by the same LEI issuer

Precondition:

* lei:RegistrationStatus NOT IN ['PENDING_TRANSFER', 'PENDING_ARCHIVAL'] * $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus NOT IN ['PENDING_TRANSFER', 'PENDING_ARCHIVAL']

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * lei:ManagingLOU $EQUALS rr:ManagingLOU

Ensure relationship's registration status is correct when child record is invalid

Precondition:

* lei:RegistrationStatus IN ['DUPLICATE', 'ANNULLED']

Condition:

* rr:RegistrationStatus IN ['ANNULLED']

Ensure relationship's registration status is correct when parent record is invalid

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * $END_NODE_RECORD lei:RegistrationStatus IN ['DUPLICATE', 'ANNULLED']

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * rr:RegistrationStatus IN ['ANNULLED']

Provide appropriate periods for relationships

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus NOT IN ['ANNULLED', 'DUPLICATE', 'PENDING_TRANSFER', 'PENDING_ARCHIVAL']

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * $COUNT(rr:RelationshipPeriod) >= 1 WITH: * rr:PeriodType IN ['RELATIONSHIP_PERIOD'] * IF rr:ValidationDocuments IN ['REGULATORY_FILING']: * $COUNT(rr:RelationshipPeriod) >= 1 WITH: * rr:PeriodType IN ['DOCUMENT_FILING_PERIOD'] * IF rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY', 'IS_ULTIMATELY_CONSOLIDATED_BY']: * $COUNT(rr:RelationshipPeriod) >= 1 WITH: * rr:PeriodType IN ['ACCOUNTING_PERIOD']

Ensure correct transfer statuses for relationship records

Precondition:

* lei:RegistrationStatus IN ['PENDING_TRANSFER', 'PENDING_ARCHIVAL'] * $COUNT($REPORTED_RELATIONSHIPS) > 0

Condition:

* FOR $REPORTED_RELATIONSHIPS: * rr:RegistrationStatus $EQUALS lei:RegistrationStatus

Ensure trading names are unique

Precondition:

* COUNT(lei:OtherEntityName) > 0 WITH: * lei:OtherEntityName/@type IN ['TRADING_OR_OPERATING_NAME']

Condition:

* FOR ALL-APPLICABLE lei:OtherEntityName: * lei:OtherEntityName NOT $EQUALS lei:LegalName * lei:OtherEntityName $UNIQUE

Avoid duplication of validation authority

Precondition:

* lei:OtherValidationAuthorities $PRESENT * lei:ValidationAuthority/lei:ValidationAuthorityID NOT IN ['RA000466', 'RA000585', 'RA000586', 'RA000587', 'RA000754']

Condition:

* lei:ValidationAuthority $PRESENT * IF EntityCategory NOT IN ['SOLE_PROPRIETOR']: * FOR lei:OtherValidationAuthority: * lei:OtherValidationAuthority/lei:ValidationAuthorityID NOT $EQUALS lei:ValidationAuthority/lei:ValidationAuthorityID * IF EntityCategory IN ['SOLE_PROPRIETOR']: * lei:OtherValidationAuthority/lei:ValidationAuthorityEntityID $UNIQUE * FOR lei:OtherValidationAuthority: * lei:OtherValidationAuthority/lei:ValidationAuthorityEntityID NOT $EQUALS lei:ValidationAuthority/lei:ValidationAuthorityEntityID

Valid connection between relationship and registration statuses

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RelationshipStatus IN ['ACTIVE']

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * rr:RegistrationStatus $MUTABLE

Ensure RA code corresponds to legal jurisdiction

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:RegistrationAuthority $PRESENT * lei:RegistrationAuthorityID IN $RA_CODE_LIST * lei:EntityCategory NOT IN ['INTERNATIONAL_ORGANIZATION']

Condition:

* lei:RegistrationAuthorityID IN ['RA777777', 'RA888888', 'RA999999', 'RA000463'] * OR * IF lei:EntityCategory NOT IN ['BRANCH']: * $RA_CODE_LIST/CountryCode $EQUALS lei:LegalJurisdiction(country-part) * OR * IF lei:EntityCategory IN ['BRANCH']: * $RA_CODE_LIST/CountryCode $EQUALS lei:LegalAddress/Country

Ensure the entity's register number has the expected local format

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:RegistrationAuthority $PRESENT * lei:RegistrationAuthorityID IN $RA_FORMAT_LIST/registration_authority * lei:RegistrationAuthorityEntityID $PRESENT

Condition:

* lei:RegistrationAuthorityEntityID $PATTERN_MATCH $RA_FORMAT_LIST/regex

Ensure local registration identifiers are not repeated

Precondition:

* lei:OtherRegistrationAuthorityID $PRESENT

Condition:

* lei:OtherRegistrationAuthorityID NOT $EQUALS_NORMALIZED lei:RegistrationAuthorityEntityID

Verify expected level of validation for unregistered entities

Precondition:

* lei:RegistrationAuthorityID IN ['RA999999'] * lei:RegistrationStatus $MUTABLE

Condition:

* IF lei:ValidationAuthorityID IN ['RA777777']: * lei:ValidationSources IN ['PARTIALLY_CORROBORATED', 'FULLY_CORROBORATED'] * OR * lei:ValidationSources IN ['ENTITY_SUPPLIED_ONLY']

Verify expected level of validation for registered entities

Precondition:

* lei:RegistrationAuthorityID NOT IN ['RA888888', 'RA999999', 'RA000413]

Condition:

* lei:ValidationSources IN ['PARTIALLY_CORROBORATED', 'FULLY_CORROBORATED']

Ensure ELF code corresponds to legal jurisdiction

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:LegalJurisdiction $PRESENT * lei:LegalFormCode IN $ELF_CODE_LIST

Condition:

* lei:EntityLegalFormCode IN ['8888', '9999'] * OR * IF $ELF_CODE_LIST/SubDivisionCode $PRESENT: * $ELF_CODE_LIST/SubDivisionCode $EQUALS lei:LegalJurisdiction * OR * IF $ELF_CODE_LIST/SubDivisionCode NOT $PRESENT: * $ELF_CODE_LIST/CountryCode $EQUALS lei:LegalJurisdiction

Ensure OtherLegalForm is not in ELF codelist

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:OtherLegalForm $PRESENT * lei:LegalJurisdiction $PRESENT

Condition:

* lei:OtherLegalForm NOT IN ['9999', '8888'] * IF lei:LegalJurisdiction $EQUALS $ELF_CODE_LIST/SubDivisionCode WITH $ELF_CODE_LIST/ELF_STATUS == 'ACTV': * lei:OtherLegalForm NOT $EQUALS_NORMALIZED $ELF_CODE_LIST/ELF Code WITH lei:LegalJurisdiction $EQUALS $ELF_CODE_LIST/SubDivisionCode * lei:OtherLegalForm NOT $EQUALS_NORMALIZED $ELF_CODE_LIST/Entity Legal Form name Local name WITH lei:LegalJurisdiction $EQUALS $ELF_CODE_LIST/SubDivisionCode * lei:OtherLegalForm NOT $EQUALS $ELF_CODE_LIST/Abbreviations Local language WITH lei:LegalJurisdiction $EQUALS $ELF_CODE_LIST/SubDivisionCode * lei:OtherLegalForm NOT $EQUALS_NORMALIZED $ELF_CODE_LIST/Entity Legal Form name Transliterated name WITH lei:LegalJurisdiction $EQUALS $ELF_CODE_LIST/SubDivisionCode * IF lei:LegalJurisdiction $EQUALS $ELF_CODE_LIST/CountryCode WITH $ELF_CODE_LIST/ELF_STATUS == 'ACTV': * lei:OtherLegalForm NOT $EQUALS_NORMALIZED $ELF_CODE_LIST/ELF Code WITH lei:LegalJurisdiction $COUNTRY_PART $EQUALS $ELF_CODE_LIST/CountryCode * lei:OtherLegalForm NOT $EQUALS_NORMALIZED $ELF_CODE_LIST/Entity Legal Form name Local name WITH lei:LegalJurisdiction $COUNTRY_PART $EQUALS $ELF_CODE_LIST/CountryCode * lei:OtherLegalForm NOT $EQUALS $ELF_CODE_LIST/Abbreviations Local language WITH lei:LegalJurisdiction $COUNTRY_PART $EQUALS $ELF_CODE_LIST/CountryCode * lei:OtherLegalForm NOT $EQUALS_NORMALIZED $ELF_CODE_LIST/Entity Legal Form name Transliterated name WITH lei:LegalJurisdiction $COUNTRY_PART $EQUALS $ELF_CODE_LIST/CountryCode

Ensure appropriate entity categorization for entities declaring branch relationship

Precondition:

* $COUNT($REPORTED_PARENT_RELATIONSHIPS) > 0 WITH: * rr:RelationshipStatus IN ['ACTIVE'] * rr:RelationshipType IN ['IS_INTERNATIONAL_BRANCH_OF']

Condition:

* lei:EntityCategory IN ['BRANCH']

Only one active relationship of type IS_INTERNATIONAL_BRANCH_OF for Branches

Precondition:

* lei:RegistrationStatus $MUTABLE * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RegistrationStatus $MUTABLE * $COUNT($REPORTED_EXCEPTIONS) == 0

Condition:

* rr:RelationshipType IN ['IS_INTERNATIONAL_BRANCH_OF']

Ensure branches have expected relationship information

Precondition:

* lei:EntityCategory IN ['BRANCH'] * lei:RegistrationStatus IN ['ISSUED', 'LAPSED']

Condition:

* $COUNT($REPORTED_EXCEPTIONS) == 0 * $COUNT($REPORTED_RELATIONSHIPS) == 0 WITH: * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED'] * rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY', 'IS_ULTIMATELY_CONSOLIDATED_BY', 'IS_SUBFUND_OF', 'IS_FUND-MANAGED_BY', 'IS_FEEDER_TO'] * $COUNT($REPORTED_RELATIONSHIPS) == 1 WITH: * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED'] * rr:RelationshipType IN ['IS_INTERNATIONAL_BRANCH_OF']

Ensure there is only one branch per country and it has correct country information

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED'] * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RelationshipType IN ['IS_INTERNATIONAL_BRANCH_OF'] * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED']

Condition:

* FOR ALL-APPLICABLE $REPORTED_PARENT_RELATIONSHIPS: * rr:EndNode/rr:NodeID $VALID * lei:LegalAddress/lei:Country NOT $EQUALS $END_NODE_RECORD lei:LegalJurisdiction $COUNTRY_PART * lei:HeadQuartersAddress/lei:Country $EQUALS $END_NODE_RECORD lei:LegalJurisdiction $COUNTRY_PART * lei:LegalJurisdiction $COUNTRY_PART $EQUALS $END_NODE_RECORD lei:LegalJurisdiction $COUNTRY_PART * FOR $START_NODE_RECORD WITH: * RUT rr:EndNode/rr:NodeID $EQUALS REFERRED_RECORD rr:EndNode/rr:NodeID * REFERRED_RECORD rr:RelationshipType IN ['IS_INTERNATIONAL_BRANCH_OF'] * REFERRED_RECORD rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED']: * RUT lei:LegalAddress/lei:Country NOT $EQUALS REFERRED_RECORD lei:LegalAddress/lei:Country

No repetition of legal address postal code in other legal address fields

Precondition:

* lei:LegalAddress/lei:PostalCode $PRESENT

Condition:

* lei:LegalAddress/lei:PostalCode NOT $SUBSTRING lei:LegalAddress/lei:FirstAddressLine * lei:LegalAddress/lei:PostalCode NOT $SUBSTRING lei:LegalAddress/lei:AdditionalAddressLine[1] * lei:LegalAddress/lei:PostalCode NOT $SUBSTRING lei:LegalAddress/lei:AdditionalAddressLine[2] * lei:LegalAddress/lei:PostalCode NOT $SUBSTRING lei:LegalAddress/lei:AdditionalAddressLine[3] * lei:LegalAddress/lei:PostalCode NOT $SUBSTRING lei:LegalAddress/lei:City * lei:LegalAddress/lei:PostalCode NOT $SUBSTRING lei:LegalAddress/lei:AddressNumber * lei:LegalAddress/lei:PostalCode NOT $SUBSTRING lei:LegalAddress/lei:AddressNumberWithinBuilding * lei:LegalAddress/lei:PostalCode NOT $SUBSTRING lei:LegalAddress/lei:MailRouting

No repetition of headquarters address postal code in other headquarters address fields

Precondition:

* lei:HeadquartersAddress/lei:PostalCode $PRESENT

Condition:

* lei:HeadquartersAddress/lei:PostalCode NOT $SUBSTRING lei:HeadquartersAddress/lei:FirstAddressLine * lei:HeadquartersAddress/lei:PostalCode NOT $SUBSTRING lei:HeadquartersAddress/lei:AdditionalAddressLine[1] * lei:HeadquartersAddress/lei:PostalCode NOT $SUBSTRING lei:HeadquartersAddress/lei:AdditionalAddressLine[2] * lei:HeadquartersAddress/lei:PostalCode NOT $SUBSTRING lei:HeadquartersAddress/lei:AdditionalAddressLine[3] * lei:HeadquartersAddress/lei:PostalCode NOT $SUBSTRING lei:HeadquartersAddress/lei:City * lei:HeadquartersAddress/lei:PostalCode NOT $SUBSTRING lei:HeadquartersAddress/lei:AddressNumber * lei:HeadquartersAddress/lei:PostalCode NOT $SUBSTRING lei:HeadquartersAddress/lei:AddressNumberWithinBuilding * lei:HeadquartersAddress/lei:PostalCode NOT $SUBSTRING lei:HeadquartersAddress/lei:MailRouting

Declared ultimate parent meets the requirements for ultimate parents

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * FOR $END_NODE_RECORD: * lei:RegistrationStatus NOT IN ['PENDING_TRANSFER','PENDING_ARCHIVAL'] * FOR $END_NODE_RECORD: * $COUNT($REPORTED_PARENT_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus $MUTABLE * OR * $COUNT($REPORTED_EXCEPTIONS)

Condition:

* FOR $END_NODE_RECORD: * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 0 WITH: * rr:RegistrationStatus $MUTABLE * $COUNT($REPORTED_EXCEPTIONS) == 1 WITH: * repex:ExceptionReason IN ['NATURAL_PERSONS', 'NON_CONSOLIDATING', 'NO_KNOWN_PERSON'] * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT'] * $COUNT($REPORTED_EXCEPTIONS) == 1 WITH: * repex:ExceptionReason IN ['NATURAL_PERSONS', 'NON_CONSOLIDATING', 'NO_KNOWN_PERSON'] * repex:ExceptionCategory IN ['DIRECT_ACCOUNTING_CONSOLIDATION_PARENT']

Entity identifier is not provided for unregistered entities

Precondition:

* lei:RegistrationAuthorityID IN ['RA999999']

Condition:

* lei:RegistrationAuthorityEntityID NOT $PRESENT

Information on other validation authority is not repeated as validation entity identifier

Precondition:

* lei:OtherValidationAuthorityID $PRESENT

Condition:

* lei:OtherValidationAuthorityID NOT $EQUALS_NORMALIZED lei:ValidationAuthorityEntityID

Information on other validation authority is not repeated as validation authority

Precondition:

* lei:OtherValidationAuthorityID $PRESENT

Condition:

* lei:OtherValidationAuthorityID NOT $EQUALS_NORMALIZED lei:ValidationAuthorityID

Successor information corresponds to the registration status or entity events

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED', 'PENDING_TRANSFER', 'PENDING_ARCHIVAL'] * lei:SuccessorEntity $PRESENT

Condition:

* IF lei:SuccessorEntityName $PRESENT: * IF lei:SuccessorLEI NOT $PRESENT: * lei:RegistrationStatus IN ['RETIRED'] * OR * IF lei:SuccessorLEI $PRESENT: * lei:RegistrationStatus IN ['RETIRED', 'DUPLICATE'] * OR * $COUNT($LEGAL_ENTITY_EVENTS) >= 1 WITH: * lei:LegalEntityEventType IN ['DEMERGER', 'SPINOFF'] * lei:LegalEntityEvent/@event_status IN ['COMPLETED']

Ensure valid RA code is included

Precondition:

Condition:

* lei:RegistrationAuthorityID $PRESENT * lei:RegistrationAuthorityID IN $RA_CODE_LIST * lei:RegistrationAuthorityID NOT IN ['RA777777']

Ensure valid ELF code is included

Precondition:

Condition:

* lei:EntityLegalFormCode $PRESENT * lei:EntityLegalFormCode IN $ELF_CODE_LIST * IF lei:RegistrationStatus $MUTABLE: * lei:EntityLegalFormCode IN $ELF_CODE_LIST WITH: * $ELF_CODE_LIST/ELF_STATUS == 'ACTV'

Ensure no duplicate relationship records are introduced

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus NOT IN ['PENDING_TRANSFER', 'PENDING_ARCHIVAL'] * rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY', 'IS_ULTIMATELY_CONSOLIDATED_BY', 'IS_SUBFUND_OF', 'IS_FUND-MANAGED_BY', 'IS_FEEDER_TO', 'IS_INTERNATIONAL_BRANCH_OF'] * rr:PeriodType IN ['RELATIONSHIP_PERIOD'] WITH: * rr:RelationshipPeriod/rr:StartDate $PRESENT * FOR $REPORTED_RELATIONSHIPS AND $EXISTING_RELATIONSHIPS: * rr:RelationshipPeriods/rr:StartDate $PRESENT

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * $COUNT($EXISTING_RELATIONSHIPS) == 0 WITH: * $REPORTED_RELATIONSHIPS rr:Header:Originator NOT $EQUALS $EXISTING_RELATIONSHIPS rr:Header:Originator * FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS WITH: * $EXISTING_RELATIONSHIPS rr:RegistrationStatus IN ['RETIRED', 'ANNULLED', 'DUPLICATE'] * $COUNT($EXISTING_RELATIONSHIPS) == 1 WITH: * $REPORTED_RELATIONSHIPS rr:RelationshipType $EQUALS $EXISTING_RELATIONSHIPS rr:RelationshipType * $REPORTED_RELATIONSHIPS rr:Header:Originator $EQUALS $EXISTING_RELATIONSHIPS rr:Header:Originator * $REPORTED_RELATIONSHIPS rr:EndNode/rr:NodeID $EQUALS $EXISTING_RELATIONSHIPS rr:EndNode/rr:NodeID * $REPORTED_RELATIONSHIPS rr:RelationshipPeriod/rr:StartDate $DATE_PART == $EXISTING_RELATIONSHIPS rr:RelationshipPeriod/rr:StartDate $DATE_PART WITH: * $REPORTED_RELATIONSHIPS rr:PeriodType IN ['RELATIONSHIP_PERIOD'] * $EXISTING_RELATIONSHIPS rr:PeriodType IN ['RELATIONSHIP_PERIOD'] * $EXISTING_RELATIONSHIPS rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED'] * $COUNT($EXISTING_RELATIONSHIPS) == 1 WITH: * $REPORTED_RELATIONSHIPS rr:RelationshipType $EQUALS $EXISTING_RELATIONSHIPS rr:RelationshipType * $REPORTED_RELATIONSHIPS rr:Header:Originator $EQUALS $EXISTING_RELATIONSHIPS rr:Header:Originator * $REPORTED_RELATIONSHIPS rr:EndNode/rr:NodeID $EQUALS $EXISTING_RELATIONSHIPS rr:EndNode/rr:NodeID

Ensure source for corroboration is provided

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED'] * lei:ValidationSources $PRESENT * lei:ValidationSources IN ['PARTIALLY_CORROBORATED', 'FULLY_CORROBORATED']

Condition:

* lei:ValidationAuthority $PRESENT * lei:ValidationAuthorityID NOT IN ['RA999999', 'RA888888']

Ensure no validation source is given for uncorroborated records

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:ValidationSources $PRESENT * lei:ValidationSources IN ['ENTITY_SUPPLIED_ONLY']" * lei:ValidationAuthority $PRESENT * lei:ValidationAuthorityID NOT IN ['RA999999', 'RA000413']

Condition:

* lei:ValidationAuthorityID IN ['RA888888']

Ensure consistent validation information based on registration

Precondition:

* lei:RegistrationAuthority $PRESENT * lei:RegistrationAuthorityID NOT IN ['RA777777', 'RA888888', 'RA999999'] * lei:ValidationAuthority $PRESENT

Condition:

* lei:ValidationAuthorityID NOT IN ['RA777777', 'RA888888', 'RA999999']

Ensure consistent register information based on validation

Precondition:

* lei:ValidationAuthority $PRESENT * lei:ValidationAuthorityID NOT IN ['RA777777', 'RA888888', 'RA999999'] * lei:RegistrationAuthority $PRESENT

Condition:

* lei:RegistrationAuthorityID NOT IN ['RA777777', 'RA888888', 'RA999999']

Ensure valid register code is used for validation

Precondition:

Condition:

* lei:ValidationAuthority $PRESENT * lei:ValidationAuthorityID IN $RA_CODE_LIST

Ensure deprecated registration status is not used

Precondition:

Condition:

* lei:RegistrationStatus NOT IN ['MERGED']

Ensure reasonable combination for parent exceptions

Precondition:

* $COUNT(repex:Exception) >= 1 WITH: * repex:ExceptionReason IN ['NON_CONSOLIDATING', 'NATURAL_PERSONS', 'NO_KNOWN_PERSON'] * $COUNT(repex:Exception)

Condition:

* $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 0 WITH: * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED'] * FOR $REPORTED_EXCEPTIONS WITH: * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT', 'DIRECT_ACCOUNTING_CONSOLIDATION_PARENT']: * repex:ExceptionReason IN ['NON_CONSOLIDATING', 'NATURAL_PERSONS', 'NO_KNOWN_PERSON']

Ensure local identifier are provided and plausible

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:EntityCategory NOT IN ['FUND'] * lei:RegistrationAuthorityID $PRESENT * lei:RegistrationAuthorityID NOT IN ['RA888888', 'RA999999', 'RA000018', 'RA000029', 'RA000397', 'RA000634', 'RA000704', 'RA000711', 'RA000712', 'RA000722', 'RA000723', 'RA000725', 'RA000727', 'RA000733', 'RA000734', 'RA000736', 'RA000737', 'RA000738', 'RA000739', 'RA000740', 'RA000741', 'RA000742', 'RA000743', 'RA000747', 'RA000750', 'RA000768', 'RA000769', 'RA000770', 'RA000771', 'RA000772', 'RA000773', 'RA000774', 'RA000775', 'RA000831']

Condition:

* lei:RegistrationAuthorityEntityID $PRESENT * lei:RegistrationAuthorityEntityID NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST) * lei:RegistrationAuthorityEntityID NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER

Ensure appropriate combination of corroboration level and legal form is used

Precondition:

* lei:EntityCategory NOT IN ['BRANCH'] * lei:RegistrationStatus $ISSUED * lei:EntityLegalFormCode IN $ELF_CORROBORATION_LIST

Condition:

* FOR $ELF_CORROBORATION_LIST/Corroboration IN ['PARTIALLY_CORROBORATED']: * lei:ValidationSources IN ['PARTIALLY_CORROBORATED', 'FULLY_CORROBORATED'] * FOR $ELF_CORROBORATION_LIST/Corroboration IN ['FULLY_CORROBORATED']: * lei:ValidationSources IN ['FULLY_CORROBORATED']

Entity category sole proprietor is assigned for the appropriate legal forms

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:EntityLegalFormCode IN $SOLE_PROPRIETOR_ELF_CODE_LIST WITH: * $SOLE_PROPRIETOR_ELF_CODE_LIST/is_sole_proprietorship == 'yes'

Condition:

* lei:EntityCategory IN ['SOLE_PROPRIETOR']

Ensure that Entity Legal Form Code is applicable for sole proprietors

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:EntityCategory IN ['SOLE_PROPRIETOR'] * lei:EntityLegalFormCode $PRESENT

Condition:

* lei:EntityLegalFormCode NOT IN $SOLE_PROPRIETOR_ELF_CODE_LIST WITH: * $SOLE_PROPRIETOR_ELF_CODE_LIST/is_sole_proprietorship == 'no'

Ensure entity creation date is present

Precondition:

* lei:EntityStatus NOT IN ['NULL'] * lei:RegistrationStatus NOT IN ['ANNULLED'] * lei:InitialRegistrationDate >= $DATETIME('2022-04-01T00:00:00+00:00') * OR * lei:NextRenewalDate >= $DATETIME('2023-06-01T00:00:00+00:00')

Condition:

* lei:EntityCreationDate $PRESENT

For completed legal entity events, the effective date is present

Precondition:

* lei:LegalEntityEvents $PRESENT * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@event_status IN ['COMPLETED']

Condition:

FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS: * lei:LegalEntityEventEffectiveDate $PRESENT

Records with complex reverse takeover events contain all required single event items

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@group_type IN ['REVERSE_TAKEOVER'] * lei:LegalEntityEvent/@event_status IN ['COMPLETED'] * $COUNT($LEGAL_ENTITY_EVENTS) == 0 WITH: * lei:LegalEntityEvent/@group_type IN ['REVERSE_TAKEOVER'] * lei:LegalEntityEvent/@event_status IN ['WITHDRAWN_CANCELLED']

Condition:

FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS: * $COUNT($LEGAL_ENTITY_EVENTS) == 1 WITH: * lei:LegalEntityEvent/@group_id == $REFERRED_EVENT lei:LegalEntityEvent/@group_id * lei:LegalEntityEventType IN ['MERGERS_AND_ACQUISITIONS'] * lei:LegalEntityEvent/@group_sequence_no == 1 * $COUNT($LEGAL_ENTITY_EVENTS) == 1 WITH: * lei:LegalEntityEvent/@group_id == $REFERRED_EVENT lei:LegalEntityEvent/@group_id * lei:LegalEntityEventType IN ['ABSORPTION'] * lei:LegalEntityEvent/@group_sequence_no == 2 * $COUNT($LEGAL_ENTITY_EVENTS) == 1 WITH: * lei:LegalEntityEvent/@group_id == $REFERRED_EVENT lei:LegalEntityEvent/@group_id * lei:LegalEntityEventType IN ['CHANGE_LEGAL_NAME'] * lei:LegalEntityEvent/@group_sequence_no == 3

Corresponding Legal Entity Events lead to retired registration status

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED', 'DUPLICATE', 'PENDING_TRANSFER', 'PENDING_ARCHIVAL'] * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEventType IN ['DISSOLUTION', 'LIQUIDATION'] * lei:LegalEntityEvent/@event_status IN ['COMPLETED']

Condition:

* lei:RegistrationStatus IN ['RETIRED'] * OR * FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS: * $COUNT($REFERRED_EVENT) > 0 WITH: * $REFERRED_EVENT lei:LegalEntityEvent/@event_status IN ['WITHDRAWN_CANCELLED'] * lei:LegalEntityEventEffectiveDate $DATE_PART == $REFERRED_EVENT lei:LegalEntityEventEffectiveDate $DATE_PART * lei:LegalEntityEventType == $REFERRED_EVENT lei:LegalEntityEventType * lei:ValidationDocuments == $REFERRED_EVENT lei:ValidationDocuments

Ensure deprecated fields for associated entity are not present

Precondition:

Condition:

* lei:AssociatedEntity NOT $PRESENT

Records with legal form of a fund must be categorized as funds

Precondition:

* lei:EntityLegalFormCode IN $ELF_FUND_LIST * lei:RegistrationStatus $MUTABLE

Condition:

* lei:EntityCategory IN ['FUND']

The validation authority of a fund must be applicable for funds

Precondition:

* lei:ValidationAuthorityID $PRESENT * lei:ValidationAuthorityID NOT IN ['RA888888', 'RA999999'] * lei:RegistrationStatus $MUTABLE * lei:EntityCategory IN ['FUND'] * lei:LegalJurisdiction $COUNTRY_PART IN $RA_FUND_LIST_v1.4.10/Country_Code WITH: * $RA_FUND_LIST_v1.4.10/is_ValidationAuthority == 'yes'

Condition:

* IF lei:LegalJurisdiction $COUNTRY_PART NOT $EQUALS 'US': * lei:ValidationAuthorityID IN $RA_FUND_LIST_v1.4.10/Registration_Authority_Code WITH: * $RA_FUND_LIST_v1.4.10/is_ValidationAuthority == 'yes' * IF lei:LegalJurisdiction $COUNTRY_PART $EQUALS 'US': * lei:ValidationAuthorityID IN $RA_FUND_LIST_v1.4.10/Registration_Authority_Code WITH: * $RA_FUND_LIST_v1.4.10/is_ValidationAuthority == 'yes' * OR * lei:OtherLegalForm IN ['Collective Investment Trust'] * OR * lei:EntityLegalFormCode IN ['4FSX', 'HZEH']

Ensure relationships with status NULL have an appropriate registration status

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RelationshipStatus IN ['NULL'] * rr:RegistrationStatus NOT IN ['PENDING_TRANSFER', 'PENDING_ARCHIVAL']

Condition:

* IF lei:EntityCategory IN ['FUND']: * rr:RegistrationStatus IN ['DUPLICATE', 'ANNULLED', 'PUBLISHED'] * IF lei:EntityCategory NOT IN ['FUND']: * rr:RegistrationStatus IN ['DUPLICATE', 'ANNULLED']

Entity's expiration date and expiration reason are not populated

Precondition:

Condition:

* lei:EntityExpirationDate NOT $PRESENT * lei:EntityExpirationReason NOT $PRESENT

Retired record has corresponding legal entity event

Precondition:

* lei:RegistrationStatus IN ['RETIRED']

Condition:

* COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:legalEntityEventType IN ['LIQUIDATION', 'INSOLVENCY', 'DISSOLUTION', 'MERGERS_AND_ACQUISITIONS', 'BANKRUPTCY', 'ABSORPTION', 'ACQUISITION_BRANCH', 'BREAKUP', 'TRANSFORMATION_BRANCH_TO_SUBSIDIARY', 'CHANGE_LEGAL_FORM'] * lei:LegalEntityEvent/@event_status IN ['COMPLETED']

Duplicate and annulled relationships have status null

Precondition:

* rr:RegistrationStatus IN ['DUPLICATE', 'ANNULLED']

Condition:

* rr:RelationshipStatus IN ['NULL']

Fund relationship types are only used for fund entities

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_SUBFUND_OF', 'IS_FUND-MANAGED_BY', 'IS_FEEDER_TO'] * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED']

Condition:

* lei:EntityCategory IN ['FUND']

The category of the legal entity is always provided

Precondition:

Condition:

* lei:EntityCategory $PRESENT

Language information is provided

Precondition:

* lei:RegistrationStatus $MUTABLE

Condition:

* FOR FIELD IN [lei:LegalName, lei:LegalAddress, lei:OtherEntityName, lei:TransliteratedOtherEntityName, lei:SuccessorEntityName]: * /@xml:lang $PRESENT * FOR $ADMINISTRATIVE_LANGUAGES IN lei:LegalAddress/lei:Country: * IF $COUNT($LANGUAGE_ISO_3166_1_ALPHA_2 NOT $PRESENT) == 0: * /@xml:lang $PATTERN_MATCH('/^([a-z]{2})(-[A-Z]{1,8}|-[0-9]{1,3})?$/') * IF $COUNT($LANGUAGE_ISO_3166_1_ALPHA_2 NOT $PRESENT) > 0: * /@xml:lang $PATTERN_MATCH('/^([a-z]){1,3}(-[A-Z]{1,8}|-[0-9]{1,3})?$/') * FOR FIELD IN [lei:HeadquartersAddress]: * /@xml:lang $PRESENT * FOR $ADMINISTRATIVE_LANGUAGES IN lei:HeadquartersAddress/lei:Country: * IF $COUNT($LANGUAGE_ISO_3166_1_ALPHA_2 NOT $PRESENT) == 0: * /@xml:lang $PATTERN_MATCH('/^([a-z]{2})(-[A-Z]{1,8}|-[0-9]{1,3})?$/') * IF $COUNT($LANGUAGE_ISO_3166_1_ALPHA_2 NOT $PRESENT) > 0: * /@xml:lang $PATTERN_MATCH('/^([a-z]){1,3}(-[A-Z]{1,8}|-[0-9]{1,3})?$/') * FOR FIELD IN [lei:OtherAddress]: * /@xml:lang $PRESENT * FOR $ADMINISTRATIVE_LANGUAGES IN lei:OtherAddress/lei:Country: * IF $COUNT($LANGUAGE_ISO_3166_1_ALPHA_2 NOT $PRESENT) == 0: * /@xml:lang $PATTERN_MATCH '/^([a-z]{2})(-[A-Z]{1,8}|-[0-9]{1,3})?$/' * IF $COUNT($LANGUAGE_ISO_3166_1_ALPHA_2 NOT $PRESENT) > 0: * /@xml:lang $PATTERN_MATCH '/^([a-z]){1,3}(-[A-Z]{1,8}|-[0-9]{1,3})?$/' * FOR FIELD IN [lei:TransliteratedOtherAddress]: * /@xml:lang $PRESENT * FOR $ADMINISTRATIVE_LANGUAGES IN lei:TransliteratedOtherAddress/lei:Country: * IF $COUNT($LANGUAGE_ISO_3166_1_ALPHA_2 NOT $PRESENT) == 0: * /@xml:lang $PATTERN_MATCH '/^([a-z]{2})(-[A-Z]{1,8}|-[0-9]{1,3})?$/' * IF $COUNT($LANGUAGE_ISO_3166_1_ALPHA_2 NOT $PRESENT) > 0: * /@xml:lang $PATTERN_MATCH '/^([a-z]){1,3}(-[A-Z]{1,8}|-[0-9]{1,3})?$/'

At least one character in the legal name of the entity is provided in local alphabet

Precondition:

* lei:LegalName/@xml:lang $PRESENT * lei:LegalName/@xml:lang IN $LANGUAGE_CHARACTERS_LIST * lei:LegalName $ALPHABETICAL

Condition:

* lei:LegalName $PATTERN_MATCH $LANGUAGE_CHARACTERS_LIST/language

No successor LEI code references the LEI code in the current LEI Record

Precondition:

* lei:SuccessorLEI $PRESENT

Condition:

* FOR lei:SuccessorLEI: * lei:SuccessorLEI NOT $EQUALS lei:LEI

Additional information for not yet listed validation authority is provided

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:ValidationAuthorityID IN ['RA777777', 'RA888888']

Condition:

* lei:OtherValidationAuthorityID $PRESENT * lei:OtherValidationAuthorityID NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST) * lei:OtherValidationAuthorityID NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER

Additional information for not yet listed registration authority is provided

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:RegistrationAuthorityID IN ['RA888888']

Condition:

* lei:OtherRegistrationAuthorityID $PRESENT * lei:OtherRegistrationAuthorityID NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST) * lei:OtherRegistrationAuthorityID NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER * $NORMALIZED(lei:OtherRegistrationAuthorityID) NOT $PATTERN_MATCH('/^RAd{6}$/')

Additional information for validation authority is provided only when suited

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:ValidationAuthorityID $PRESENT * lei:OtherValidationAuthorityID $PRESENT

Condition:

* lei:ValidationAuthorityID IN ['RA777777', 'RA888888']

Additional information for registration authority is provided only when suited

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:RegistrationAuthorityID $PRESENT * lei:OtherRegistrationAuthorityID $PRESENT

Condition:

* lei:RegistrationAuthorityID IN ['RA888888']

Additional information for not listed entity legal form code is provided

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:EntityLegalFormCode IN ['8888', '9999']

Condition:

* lei:OtherLegalForm $PRESENT * lei:OtherLegalForm NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER * lei:OtherLegalForm $ALPHABETICAL * lei:OtherLegalForm NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST/Applicable_for_OtherLegalForm == yes)

Reserved ELF code is used when Other Legal Form is provided

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:EntityLegalFormCode $PRESENT * lei:OtherLegalForm $PRESENT * IF lei:LegalJurisdiction $STARTS_WITH('US'): * lei:OtherLegalForm NOT IN ['Collective Investment Trust']

Condition:

* lei:EntityLegalFormCode IN ['8888', '9999']

Verify expected level of validation for entities with not yet verified and accepted registration authority

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:RegistrationAuthorityID IN ['RA888888']

Condition:

* IF lei:ValidationAuthorityID IN ['RA777777']: * lei:ValidationSources IN ['PARTIALLY_CORROBORATED', 'FULLY_CORROBORATED'] * IF lei:ValidationAuthorityID NOT IN ['RA777777']: * lei:ValidationSources IN ['ENTITY_SUPPLIED_ONLY']

Entity's validation number has the expected local format

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:ValidationAuthorityID $PRESENT * lei:ValidationAuthorityID IN $RA_FORMAT_LIST/registration_authority * lei:ValidationAuthorityEntityID $PRESENT

Condition:

* lei:ValidationAuthorityEntityID $PATTERN_MATCH $RA_FORMAT_LIST/regex

Entity's validation number in additional validation authorities has the expected local format

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:OtherValidationAuthorities $PRESENT * lei:OtherValidationAuthority/lei:ValidationAuthorityID IN $RA_FORMAT_LIST/registration_authority * lei:OtherValidationAuthority/lei:ValidationAuthorityEntityID $PRESENT

Condition:

* FOR lei:OtherValidationAuthority: * lei:OtherValidationAuthority/lei:ValidationAuthorityEntityID $PATTERN_MATCH $RA_FORMAT_LIST/regex

Local identifier are provided and plausible for validation

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:EntityCategory NOT IN ['FUND'] * lei:ValidationAuthorityID $PRESENT * lei:ValidationAuthorityID NOT IN ['RA777777', 'RA888888', 'RA999999', 'RA000018', 'RA000029', 'RA000397', 'RA000634', 'RA000704', 'RA000711', 'RA000712', 'RA000722', 'RA000723', 'RA000725', 'RA000727', 'RA000733', 'RA000734', 'RA000736', 'RA000737', 'RA000738', 'RA000739', 'RA000740', 'RA000741', 'RA000742', 'RA000743', 'RA000747', 'RA000750', 'RA000768', 'RA000769', 'RA000770', 'RA000771', 'RA000772', 'RA000773', 'RA000774', 'RA000775', 'RA000831']

Condition:

* lei:ValidationAuthorityEntityID $PRESENT * lei:ValidationAuthorityEntityID NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST) * lei:ValidationAuthorityEntityID NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER

Authoritative Source Check for OtherValidationAuthorities

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:EntityCategory NOT IN ['FUND'] * lei:OtherValidationAuthority/lei:ValidationAuthorityID $PRESENT * lei:OtherValidationAuthority/lei:ValidationAuthorityID NOT IN ['RA777777', 'RA888888', 'RA999999', 'RA000018', 'RA000029', 'RA000397', 'RA000634', 'RA000704', 'RA000711', 'RA000712', 'RA000722', 'RA000723', 'RA000725', 'RA000727', 'RA000733', 'RA000734', 'RA000736', 'RA000737', 'RA000738', 'RA000739', 'RA000740', 'RA000741', 'RA000742', 'RA000743', 'RA000747', 'RA000750', 'RA000768', 'RA000769', 'RA000770', 'RA000771', 'RA000772', 'RA000773', 'RA000774', 'RA000775', 'RA000831']

Condition:

FOR ALL-APPLICABLE lei:OtherValidationAuthority: * lei:OtherValidationAuthority/lei:ValidationAuthorityEntityID $PRESENT * lei:OtherValidationAuthority/lei:ValidationAuthorityEntityID NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST) * lei:OtherValidationAuthority/lei:ValidationAuthorityEntityID NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER

No local identifier is provided when authoritative source does not provide any identifier

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:RegistrationAuthorityID $PRESENT * lei:RegistrationAuthorityID IN ['RA999999', 'RA000397', 'RA000704', 'RA000712', 'RA000722', 'RA000723', 'RA000725', 'RA000727', 'RA000733', 'RA000736', 'RA000737', 'RA000738', 'RA000739', 'RA000741', 'RA000742', 'RA000743', 'RA000768', 'RA000769', 'RA000770', 'RA000771', 'RA000772', 'RA000773', 'RA000774', 'RA000775']

Condition:

* lei:RegistrationAuthorityEntityID NOT $PRESENT

Appropriate code in headquarters address region

Precondition:

* lei:HeadquartersAddress/lei:Region $PRESENT * lei:RegistrationStatus $MUTABLE

Condition:

* lei:HeadquartersAddress/lei:Region IN $ISO_3166_2

Appropriate code in headquarters address country

Precondition:

* lei:RegistrationStatus $MUTABLE

Condition:

* lei:HeadquartersAddress/lei:Country IN ['XK', $ISO_3166_1_ALPHA_2]

There is only one single instance of type relationship period per relationship

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:PeriodType IN ['RELATIONSHIP_PERIOD']

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * $COUNT(rr:RelationshipPeriod) == 1 WITH: * rr:PeriodType IN ['RELATIONSHIP_PERIOD']

Entity creation date is plausible

Precondition:

* lei:EntityCategory NOT IN ['FUND'] * lei:EntityCreationDate $PRESENT

Condition:

* leiFileHeader:ContentDate + $TIME_INTERVAL('30 D') >= lei:EntityCreationDate

Plausible entity creation date for funds in formation

Precondition:

* lei:EntityCreationDate NOT $PRESENT * lei:NextRenewalDate >= $DATETIME('2023-06-01T00:00:00+00:00') * OR * lei:InitialRegistrationDate >= $DATETIME('2022-04-01T00:00:00+00:00')

Condition:

* lei:EntityStatus IN ['NULL'] * lei:EntityCategory IN ['FUND']

Ensure plausible usage of entity subcategories values for government entities

Precondition:

* lei:EntitySubCategory $PRESENT * lei:EntitySubCategory IN ['CENTRAL_GOVERNMENT', 'STATE_GOVERNMENT', 'LOCAL_GOVERNMENT', 'SOCIAL_SECURITY']

Condition:

* lei:EntityCategory IN ['RESIDENT_GOVERNMENT_ENTITY']

Appropriate usage of government accounting standard

Precondition:

* $COUNT($REPORTED_PARENT_RELATIONSHIPS) > 0 WITH: * rr:QualifierCategory IN ['GOVERNMENT_ACCOUNTING_STANDARD'] * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED', 'RETIRED']

Condition:

* lei:EntityCategory IN ['RESIDENT_GOVERNMENT_ENTITY', 'INTERNATIONAL_ORGANIZATION']

The parent entity of a government entity is also a government entity

Precondition:

* lei:EntityCategory IN ['RESIDENT_GOVERNMENT_ENTITY'] * $COUNT($REPORTED_PARENT_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED'] * lei:LEI $EQUALS rr:EndNode/rr:NodeID * $END_NODE_RECORD $VALID

Condition:

* FOR ALL-APPLICABLE $REPORTED_PARENT_RELATIONSHIPS: * $END_NODE_RECORD lei:EntityCategory IN ['RESIDENT_GOVERNMENT_ENTITY']

Start and end node in a relationship fit the entity category for international organizations

Precondition:

* lei:EntityCategory IN ['INTERNATIONAL_ORGANIZATION'] * $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED'] * $END_NODE_RECORD $VALID

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * $END_NODE_RECORD lei:EntityCategory IN ['INTERNATIONAL_ORGANIZATION']

Government entities use appropriate relationship exception resons

Precondition:

* lei:EntityCategory IN ['RESIDENT_GOVERNMENT_ENTITY'] * $COUNT($REPORTED_EXCEPTIONS) > 0

Condition:

* FOR ALL-APPLICABLE $REPORTED_EXCEPTIONS: * repex:ExceptionReason IN ['NO_KNOWN_PERSON', 'NO_LEI']

No accounting periods are present for funds

Precondition:

* lei:EntityCategory IN ['FUND'] * $COUNT($REPORTED_FUND_RELATIONSHIPS) > 0

Condition:

* FOR ALL-APPLICABLE $REPORTED_FUND_RELATIONSHIPS: * $COUNT(rr:RelationshipPeriod) == 0 WITH: * rr:PeriodType IN ['ACCOUNTING_PERIOD']

Ensure plausible start date for relationship periods

Precondition:

* lei:EntityCreationDate $PRESENT * $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus NOT IN ['ANNULLED', 'PENDING_ARCHIVAL', 'PENDING_TRANSFER'] * rr:PeriodType IN ['RELATIONSHIP_PERIOD'] * rr:StartDate $PRESENT

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * rr:StartDate >= lei:EntityCreationDate

Appropriate usage of reserved codes for public legal documents

Precondition:

* lei:RegistrationAuthorityID $PRESENT * lei:ValidationAuthorityID IN ['RA777777'] * OR * lei:RegistrationAuthorityID $PRESENT * lei:OtherValidationAuthority $PRESENT * lei:OtherValidationAuthority/lei:ValidationAuthorityID IN ['RA777777']

Condition:

* lei:EntityCategory IN ['RESIDENT_GOVERNMENT_ENTITY', 'INTERNATIONAL_ORGANIZATION'] * lei:RegistrationAuthorityID IN ['RA888888', 'RA999999']

Appropriate usage of special codes for legal jurisdiction

Precondition:

* lei:LegalJurisdiction IN ['EU','UN','XX']

Condition:

* lei:EntityCategory IN ['INTERNATIONAL_ORGANIZATION']

All successors of all completed legal entity events are listed

Precondition:

* $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@event_status IN ['COMPLETED'] * lei:AffectedField WITH: * lei:AffectedField/@field_xpath IN ['/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorEntityName', '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorLEI']

Condition:

* FOR ALL-APPLICABLE lei:AffectedField: * lei:AffectedField WITH: * lei:AffectedField/@field_xpath IN ['/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorLEI'] == lei:SuccessorEntity/lei:SuccessorLEI * lei:AffectedField WITH: * lei:AffectedField/@field_xpath IN ['/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorEntityName'] == lei:SuccessorEntity/lei:SuccessorEntityName * OR * FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS: * $COUNT($REFERRED_EVENT) > 0 WITH: * $REFERRED_EVENT lei:LegalEntityEvent/@event_status IN ['WITHDRAWN_CANCELLED'] * lei:LegalEntityEventEffectiveDate $DATE_PART == $REFERRED_EVENT lei:LegalEntityEventEffectiveDate $DATE_PART * lei:LegalEntityEventType == $REFERRED_EVENT lei:LegalEntityEventType * lei:ValidationDocuments == $REFERRED_EVENT lei:ValidationDocuments * lei:AffectedField/@field_xpath == $REFERRED_EVENT $FIELD_XPATH * lei:field_xpath == $REFERRED_EVENT $lei:field_xpath

All successor LEIs of non-duplicate records are mentioned in a legal entity event

Precondition:

* lei:RegistrationStatus NOT IN ['DUPLICATE', 'ANNULLED', 'PENDING_TRANSFER', 'PENDING_ARCHIVAL'] * lei:SuccessorEntity $PRESENT

Condition:

* $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@event_status IN ['COMPLETED'] * lei:AffectedField WITH: * lei:SuccessorEntityName IN lei:AffectedField/@field_xpath('/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorEntityName') * OR * lei:LegalEntityEvent/@event_status IN ['COMPLETED'] * lei:AffectedField WITH: * lei:SuccessorLEI IN lei:AffectedField/@field_xpath('/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorLEI')

Deprecated exception reasons are not used

Precondition:

* $COUNT($REPORTED_EXCEPTIONS) > 0

Condition:

* repex:ExceptionReason NOT IN ['LEGAL_OBSTACLES', 'CONSENT_NOT_OBTAINED', 'BINDING_LEGAL_COMMITMENTS', 'DETRIMENT_NOT_EXCLUDED', 'DISCLOSURE_DETRIMENTAL']

Xpath in affected fields is valid

Precondition:

* lei:LegalEntityEvent/lei:AffectedField $PRESENT

Condition:

* FOR lei:LegalEntityEvent/lei:AffectedFields/lei:AffectedField: * lei:AffectedField/@field_xpath IN [ * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalName', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:OtherEntityNames/lei:OtherEntityName', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:OtherEntityNames/lei:OtherEntityName@type', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:TransliteratedOtherEntityNames/lei:TransliteratedOtherEntityName', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:TransliteratedOtherEntityNames/lei:TransliteratedOtherEntityName@type', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalAddress/lei:FirstAddressLine', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalAddress/lei:AdditionalAddressLine[1]', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalAddress/lei:AdditionalAddressLine[2]', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalAddress/lei:AdditionalAddressLine[3]', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalAddress/lei:AddressNumber', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalAddress/lei:AddressNumberWithinBuilding', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalAddress/lei:MailRouting', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalAddress/lei:City', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalAddress/lei:PostalCode', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalAddress/lei:Country', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalAddress/lei:Region', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalAddress@lang', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:HeadquartersAddress/*', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:OtherAddresses/*', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:OtherAddresses@lang', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:OtherAddresses@type', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:TransliteratedOtherAddresses/*', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:TransliteratedOtherAddresses@lang', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:TransliteratedOtherAddresses@type', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalJurisdiction', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:EntityCategory', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalForm/lei:EntityLegalFormCode', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:LegalForm/lei:OtherLegalForm', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorLEI', * '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorEntityName', * '/rr:RelationshipData/rr:RelationshipRecords/rr:RelationshipRecord/rr:Relationship/rr:EndNode/rr:NodeID', * '/rr:RelationshipData/rr:RelationshipRecords/rr:RelationshipRecord/rr:Relationship/rr:EndNode/rr:NodeType', * '/rr:RelationshipData/rr:RelationshipRecords/rr:RelationshipRecord/rr:Relationship/rr:RelationshipType', * '/repex:ReportingExceptionData/repex:ReportingExceptions/repex:Exception/repex:ExceptionCategory', * '/repex:ReportingExceptionData/repex:ReportingExceptions/repex:Exception/repex:ExceptionReason' ]

No local identifier is provided for validation when authoritative source does not provide any identifier

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:ValidationAuthorityID $PRESENT * lei:ValidationAuthorityID IN ['RA999999', 'RA000397', 'RA000704', 'RA000712', 'RA000722', 'RA000723', 'RA000725', 'RA000727', 'RA000733', 'RA000736', 'RA000737', 'RA000738', 'RA000739', 'RA000741', 'RA000742', 'RA000743', 'RA000768', 'RA000769', 'RA000770', 'RA000771', 'RA000772', 'RA000773', 'RA000774', 'RA000775']

Condition:

* lei:ValidationAuthorityEntityID NOT $PRESENT

No local identifier is provided for additional validation sources when authoritative source does not provide any identifier

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:OtherValidationAuthority/lei:ValidationAuthorityID $PRESENT * lei:OtherValidationAuthority/lei:ValidationAuthorityID IN ['RA000397', 'RA000704', 'RA000712', 'RA000722', 'RA000723', 'RA000725', 'RA000727', 'RA000733', 'RA000736', 'RA000737', 'RA000738', 'RA000739', 'RA000740', 'RA000741', 'RA000742', 'RA000743', 'RA000768', 'RA000769', 'RA000770', 'RA000771', 'RA000772', 'RA000773', 'RA000774', 'RA000775']

Condition:

* FOR ALL-APPLICABLE lei:OtherValidationAuthority: * lei:OtherValidationAuthority/lei:ValidationAuthorityEntityID NOT $PRESENT

Ensure RecordedDate is plausible for completed legal entity events

Precondition:

* $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@event_status IN [‘COMPLETED’]

Condition:

* FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS: * lei:LegalEntityEventRecordedDate >= lei:LegalEntityEventEffectiveDate

Legal name language tag shall be appropriate to the legal name characters

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:LegalName/@xml:lang $PRESENT * lei:LegalName/@xml:lang IN $LANGUAGE_CHARACTERS_LIST * lei:LegalName $ALPHABETICAL

Condition:

* IF lei:LegalName $PATTERN_MATCH($LANGUAGE_CHARACTERS_LIST/unicode_range): * lei:LegalName/@xml:lang $EQUALS $LANGUAGE_CHARACTERS_LIST/lang_code

Verify that care of address is provided for funds with external fund manager

Precondition:

* lei:RegistrationStatus IN ['ISSUED','LAPSED'] * $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_FUND-MANAGED_BY'] * rr:RegistrationStatus IN ['PUBLISHED','LAPSED'] * lei:LEI NOT $EQUALS rr:EndNode/rr:NodeID

Condition:

* $NORMALIZED(lei:HeadquartersAddress/lei:FirstAddressLine) $STARTS_WITH('c/o') * OR * $NORMALIZED(lei:HeadquartersAddress/lei:AdditionalAddressLine[1]) $STARTS_WITH('c/o') * OR * $NORMALIZED(lei:HeadquartersAddress/lei:AdditionalAddressLine[2]) $STARTS_WITH('c/o') * OR * $NORMALIZED(lei:HeadquartersAddress/lei:AdditionalAddressLine[3]) $STARTS_WITH('c/o') * OR * $NORMALIZED(lei:HeadquartersAddress/lei:MailRouting) $STARTS_WITH('c/o')

Transliterated name is provided for non-Latin legal names

Precondition:

* lei:RegistrationStatus $MUTABLE * lei:LegalName NOT $PATTERN_MATCH ('/^[A-Za-z0-9./:;?_!"%&'()*+,-s]+$/')

Condition:

* lei:TransliteratedOtherEntityNames $PRESENT

Ensure fund relationships have appropriate parent

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED'] * $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_SUBFUND_OF', 'IS_FEEDER_TO'] * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED'] * $END_NODE_RECORD $VALID * $END_NODE_RECORD lei:LegalJurisdiction NOT IN ['JP']

Condition:

* FOR ALL-APPLICABLE END_NODE_RECORD: * $END_NODE_RECORD lei:EntityCategory IN ['FUND']

Ensure fund entities use correct entity category

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED'] * lei:LegalJurisdiction NOT IN ['JP'] * $COUNT($REPORTED_CHILD_RELATIONSHIPS) > 0 with: * rr:RelationshipType IN ['IS_SUBFUND_OF', 'IS_FEEDER_TO'] * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED']

Condition:

* lei:EntityCategory 'FUND' * OR * lei:EntityLegalFormCode IN ['MP7S']

Funds are managed by appropriate entities

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_FUND-MANAGED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * rr:EndNode/rr:NodeID NOT $EQUALS lei:LEI

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * $END_NODE_RECORD lei:EntityCategory NOT IN ['FUND'] * OR * FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * $END_NODE_RECORD lei:EntityCategory IN ['FUND'] * $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_SUBFUND_OF'] * rr:RegistrationStatus IN ['PUBLISHED'] * rr:EndNode/rr:NodeID $EQUALS $REFERRED_RECORD lei:LEI

Ensure fund managers have appropriate entity category

Precondition:

* $COUNT($REPORTED_CHILD_RELATIONSHIPS) > 0 WITH: * rr:RegistrationStatus IN ['PUBLISHED'] * rr:RelationshipType IN ['IS_FUND-MANAGED_BY'] * rr:StartNode/rr:NodeID NOT $EQUALS lei:LEI

Condition:

* lei:EntityCategory NOT IN ['FUND'] * OR * $COUNT($REPORTED_RELATIONSHIPS) == 1 WITH: * rr:RelationshipType IN ['IS_FUND-MANAGED_BY'] * rr:RegistrationStatus $MUTABLE * rr:EndNode/rr:NodeID $EQUALS lei:LEI * FOR ALL-APPLICABLE rr:StartNode/rr:NodeID: * $COUNT($REPORTED_CHILD_RELATIONSHIPS) == 1 WITH: * rr:RelationshipType IN ['IS_FUND-MANAGED_BY']: * rr:RegistrationStatus IN ['PUBLISHED'] * rr:EndNode/rr:NodeID $EQUALS lei:LEI * $COUNT($REPORTED_CHILD_RELATIONSHIPS) == 1 WITH: * rr:RelationshipType IN ['IS_SUBFUND_OF'] * rr:RegistrationStatus IN ['PUBLISHED'] * rr:EndNode/rr:NodeID $EQUALS lei:LEI

Fund entities declare only one active fund manager relationship

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED'] * $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_FUND-MANAGED_BY']

Condition:

* FOR ALL-APPLICABLE $REPORTED_RELATIONSHIPS: * $COUNT($REPORTED_RELATIONSHIPS)

Ensure that standalone and complex change legal form events do not belong to any group

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED'] * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@group_type IN ['STANDALONE', 'COMPLEX_CHANGE_LEGAL_FORM']

Condition:

* FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS: * lei:LegalEntityEvent/@group_id NOT $PRESENT

Ensure that withdrawn events have a corresponding event

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED'] * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@event_status IN ['WITHDRAWN_CANCELLED']

Condition:

* FOR ALL-APPLICABLE lei:LegalEntityEventType: * $COUNT($LEGAL_ENTITY_EVENTS) WITH lei:LegalEntityEvent/@event_status IN ['WITHDRAWN_CANCELLED'] $COUNT($LEGAL_ENTITY_EVENTS) WITH lei:LegalEntityEvent/@event_status IN ['IN_PROGRESS'] * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEventEffectiveDate $DATE_PART WITH lei:LegalEntityEvent/@event_status IN ['COMPLETED'] == lei:LegalEntityEventEffectiveDate $DATE_PART WITH lei:LegalEntityEvent/@event_status IN ['WITHDRAWN_CANCELLED']

Guarantee plausibility of successor information for duplicate records

Precondition:

* lei:RegistrationStatus IN ['DUPLICATE'] * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@event_status IN ['COMPLETED'] * lei:AffectedField WITH: * lei:SuccessorLEI IN lei:AffectedField/@field_xpath('/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorLEI')

Condition:

* $COUNT($UNIQUE(lei:SuccessorLEI)) - 1 == ($COUNT($UNIQUE $REFERRED_EVENT lei:SuccessorLEI) - $COUNT($UNIQUE lei:SuccessorLEI) WITH: * lei:LegalEntityEvent/@event_status IN ['WITHDRAWN_CANCELLED']) * lei:LegalEntityEventEffectiveDate $DATE_PART == $REFERRED_EVENT lei:LegalEntityEventEffectiveDate $DATE_PART * lei:LegalEntityEventType == $REFERRED_EVENT lei:LegalEntityEventType * lei:ValidationDocuments == $REFERRED_EVENT lei:ValidationDocuments

Verify that group sequence is not provided for events that do not have any sequence information

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@group_type IN ['STANDALONE', 'CHANGE_LEGAL_FORM_AND_NAME']

Condition:

* FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS: * lei:LegalEntityEvent/@group_sequence_no NOT $PRESENT

Successor information is not repeated outside of legal entity events

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED'] * lei:SuccessorEntityName $PRESENT * lei:SuccessorLEI $PRESENT

Condition:

* FOR lei:SuccessorEntityName: * FOR lei:SuccessorLEI: * RUT lei:SuccessorEntityName NOT $EQUALS lei:LegalName WITH lei:LEI $EQUALS RUT lei:SuccessorLEI * RUT lei:SuccessorEntityName NOT $EQUALS lei:OtherEntityName WITH lei:OtherEntityNameType IN ['TRADING_OR_OPERATING_NAME', 'PREVIOUS_LEGAL_NAME'] WITH lei:LEI $EQUALS RUT lei:SuccessorLEI

All characters comply with UTF-8

Precondition:

Condition:

* lei:LegalName $UTF_8 * FOR ALL-APPLICABLE lei:OtherEntityNames: * OtherEntityName $UTF_8 * lei:LegalAddress/lei:FirstAddressLine $UTF_8 * FOR ALL-APPLICABLE lei:LegalAddress: * lei:AdditionalAddressLine $UTF_8 * lei:AdditionalAddressLine[1] $UTF_8 * lei:AdditionalAddressLine[2] $UTF_8 * lei:AdditionalAddressLine[3] $UTF_8 * lei:MailRouting $UTF_8 * lei:City $UTF_8 * lei:AddressNumber $UTF_8 * lei:HeadquartersAddress/lei:FirstAddressLine $UTF_8 * FOR ALL-APPLICABLE lei:HeadquartersAddress: * lei:AdditionalAddressLine $UTF_8 * lei:AdditionalAddressLine[1] $UTF_8 * lei:AdditionalAddressLine[2] $UTF_8 * lei:AdditionalAddressLine[3] $UTF_8 * lei:MailRouting $UTF_8 * lei:City $UTF_8 * lei:AddressNumber $UTF_8 * lei:OtherLegalForm $UTF_8 * lei:OtherRegistrationAuthorityID $UTF_8 * lei:OtherValidationAuthorityID $UTF_8

Verify that branch entities use correct address information

Precondition:

* lei:EntityCategory IN ['BRANCH'] * lei:RegistrationStatus IN ['ISSUED', 'LAPSED']

Condition:

* lei:LegalJurisdiction $COUNTRY_PART NOT $EQUALS lei:LegalAddress/lei:Country

Postal code matches the country's prescribed format

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:LegalAddress/lei:Country $PRESENT * lei:LegalAddress/lei:Country IN $POSTAL_CODES_LIST/country_code * lei:LegalAddress/lei:PostalCode $PRESENT * OR * lei:HeadquartersAddress/lei:Country $PRESENT * lei:HeadquartersAddress/lei:Country IN $POSTAL_CODES_LIST/country_code * lei:HeadquartersAddress/lei:PostalCode $PRESENT

Condition:

* lei:LegalAddress/lei:PostalCode $PATTERN_MATCH $POSTAL_CODES_LIST/regex * lei:HeadquartersAddress/lei:PostalCode $PATTERN_MATCH $POSTAL_CODES_LIST/regex

Successor information is present for relevant retired records

Precondition:

* lei:RegistrationStatus IN ['RETIRED'] * $COUNT($LEGAL_ENTITY_EVENTS) == 0 WITH: * lei:LegalEntityEventType IN ['ABSORPTION', 'BANKRUPTCY', 'CHANGE_LEGAL_FORM', 'DISSOLUTION', 'LIQUIDATION', 'MERGERS_AND_ACQUISITIONS'] * lei:LegalEntityEvent/@event_status IN ['COMPLETED'] * lei:LegalEntityEventEffectiveDate $PRESENT * lei:LegalEntityEventEffectiveDate > $REFERRED_EVENT lei:LegalEntityEventEffectiveDate WITH lei:LegalEntityEventType IN ['ABSORPTION', 'ACQUISITION_BRANCH', 'BREAKUP', 'DEMERGER', 'MERGERS_AND_ACQUISITIONS', 'SPINOFF', 'TRANSFORMATION_BRANCH_TO_SUBSIDIARY', 'TRANSFORMATION_UMBRELLA_TO_STANDALONE'] * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@event_status IN ['COMPLETED'] * lei:LegalEntityEventEffectiveDate $PRESENT * lei:LegalEntityEventType IN ['ABSORPTION', 'ACQUISITION_BRANCH', 'BREAKUP', 'DEMERGER', 'MERGERS_AND_ACQUISITIONS', 'SPINOFF', 'TRANSFORMATION_BRANCH_TO_SUBSIDIARY', 'TRANSFORMATION_UMBRELLA_TO_STANDALONE'] * lei:LegalEntityEventEffectiveDate

Condition:

* lei:SuccessorLEI $PRESENT * OR * lei:SuccessorEntityName $PRESENT

No duplicate legal entity events are present

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED', 'RETIRED'] * COUNT($LEGAL_ENTITY_EVENTS) > 1 WITH: * lei:LegalEntityEventType NOT IN ['ACQUISITION_BRANCH', 'TRANSFORMATION_BRANCH_TO_SUBSIDIARY', 'MERGERS_AND_ACQUISITIONS', 'ABSORPTION'] * OR * COUNT($LEGAL_ENTITY_EVENTS) > 1 WITH: * lei:LegalEntityEventType IN ['ACQUISITION_BRANCH', 'TRANSFORMATION_BRANCH_TO_SUBSIDIARY', 'MERGERS_AND_ACQUISITIONS', 'ABSORPTION'] * lei:AffectedField WITH: * lei:AffectedField/@field_xpath('/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorLEI') $PRESENT * OR * lei:AffectedField/@field_xpath('/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorEntityName') $PRESENT

Condition:

* FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS WITH lei:LegalEntityEventType NOT IN ['ACQUISITION_BRANCH', 'TRANSFORMATION_BRANCH_TO_SUBSIDIARY', 'MERGERS_AND_ACQUISITIONS', 'ABSORPTION']: * lei:LegalEntityEventType NOT $EQUALS $REFERRED_EVENT lei:LegalEntityEventType * OR * lei:LegalEntityEvent/@event_status NOT $EQUALS $REFERRED_EVENT lei:LegalEntityEvent/@event_status * OR * lei:LegalEntityEventEffectiveDate $DATE_PART NOT $EQUALS $REFERRED_EVENT lei:LegalEntityEventEffectiveDate $DATE_PART * OR * lei:LegalEntityEvent/@group_id NOT $EQUALS $REFERRED_EVENT lei:LegalEntityEvent/@group_id * OR * lei:ValidationDocuments NOT $EQUALS $REFERRED_EVENT lei:ValidationDocuments * FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS WITH lei:LegalEntityEventType IN ['ACQUISITION_BRANCH', 'TRANSFORMATION_BRANCH_TO_SUBSIDIARY', 'MERGERS_AND_ACQUISITIONS', 'ABSORPTION']: * lei:LegalEntityEventType NOT $EQUALS $REFERRED_EVENT lei:LegalEntityEventType * OR * lei:LegalEntityEvent/@event_status NOT $EQUALS $REFERRED_EVENT lei:LegalEntityEvent/@event_status * OR * lei:LegalEntityEventEffectiveDate $DATE_PART NOT $EQUALS $REFERRED_EVENT lei:LegalEntityEventEffectiveDate $DATE_PART * OR * lei:LegalEntityEvent/@group_id NOT $EQUALS $REFERRED_EVENT lei:LegalEntityEvent/@group_id * OR * lei:ValidationDocuments NOT $EQUALS $REFERRED_EVENT lei:ValidationDocuments * OR * lei:SuccessorLEI IN lei:AffectedField/@field_xpath('/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorLEI') NOT $EQUALS $REFERRED_EVENT lei:SuccessorLEI IN lei:field_xpath('/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorLEI') * OR * lei:SuccessorEntityName IN lei:AffectedField/@field_xpath('/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorEntityName') NOT $EQUALS $REFERRED_EVENT lei:SuccessorEntityName IN lei:field_xpath('/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorEntityName')

Ensure that child relationships use correct registration status when record is inactive

Precondition:

* lei:RegistrationStatus IN ['RETIRED'] * $COUNT($REPORTED_CHILD_RELATIONSHIPS) > 0 WITH: * lei:ManagingLOU $EQUALS rr:ManagingLOU * rr:RegistrationStatus NOT IN ['ANNULLED', 'DUPLICATE', 'PENDING_TRANSFER', 'PENDING_ARCHIVAL', 'LAPSED']

Condition:

* FOR ALL-APPLICABLE $REPORTED_CHILD_RELATIONSHIPS: * rr:RegistrationStatus IN ['RETIRED']

Detect illegal state transitions from erroneous registrations

Precondition:

* lei:LEI $VALID * $PREVIOUS_VERSION(RUT lei:RegistrationStatus) IN ['ANNULLED', 'DUPLICATE']

Condition:

* lei:RegistrationStatus IN ['ANNULLED', 'DUPLICATE', 'PENDING_TRANSFER']

Detect implausible city names

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED'] * $COUNT(CITY_NAMES_LIST/ID) > 0 WITH: * CITY_NAMES_LIST/COUNTRY_CODE == lei:LegalAddress/lei:Country * CITY_NAMES_LIST/PCODE == lei:LegalAddress/lei:PostalCode * CITY_NAMES_LIST/LOC_LANGUAGE == lei:LegalAddress/@xml:lang * OR * $COUNT(CITY_NAMES_LIST/ID) > 0 WITH: * CITY_NAMES_LIST/COUNTRY_CODE == lei:HeadquartersAddress/lei:Country * CITY_NAMES_LIST/PCODE == lei:HeadquartersAddress/lei:PostalCode * CITY_NAMES_LIST/LOC_LANGUAGE == lei:HeadquartersAddress/@xml:lang

Condition:

* $COUNT(CITY_NAMES_LIST/ID) == 1 WITH: * CITY_NAMES_LIST/CITY_NAME == lei:LegalAddress/lei:City * $COUNT(CITY_NAMES_LIST/ID) == 1 WITH: * CITY_NAMES_LIST/CITY_NAME == lei:HeadquartersAddress/lei:City

Direct parents do not describe a circular relationship

Precondition:

* $COUNT($REPORTED_PARENT_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED']

Condition:

* FOR ALL-APPLICABLE $REPORTED_PARENT_RELATIONSHIPS IN $RELATIONSHIP_CHAIN: * rr:EndNode/rr:NodeID NOT $EQUALS lei:LEI

Detect violations of transfer protocol

Precondition:

* lei:LEI $VALID * $COUNT($PREVIOUS_VERSION) == 1 * $PREVIOUS_VERSION(RUT lei:RegistrationStatus) IN ['PENDING_ARCHIVAL'] * lei:ManagingLOU NOT $EQUALS $PREVIOUS_VERSION(lei:ManagingLOU)

Condition:

* lei:RegistrationStatus NOT IN ['LAPSED', 'PENDING_TRANSFER', 'PENDING_ARCHIVAL']

All characters in the legal name match corresponding language unicode range

Precondition:

* lei:LegalName/@xml:lang $PRESENT * lei:LegalName/@xml:lang IN $LANGUAGE_CHARACTERS_LIST * lei:LegalName $ALPHABETICAL

Condition:

* lei:LegalName $STRICT_PATTERN_MATCH $LANGUAGE_CHARACTERS_LIST/language

Entity status NULL must correspond to registration status

Precondition:

* lei:EntityStatus IN ['NULL'] * lei:EntityCategory NOT IN ['FUND'] * lei:RegistrationStatus NOT IN ['PENDING_TRANSFER', 'PENDING_ARCHIVAL']

Condition:

* lei:RegistrationStatus IN ['ANNULLED', 'DUPLICATE']

Change legal form and name group contains plausible event types

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@group_id $PRESENT * lei:LegalEntityEvent/@group_type IN ['CHANGE_LEGAL_FORM_AND_NAME'] * lei:LegalEntityEvent/@event_status NOT IN ['WITHDRAWN_CANCELLED']

Condition:

* FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS: * $COUNT($LEGAL_ENTITY_EVENTS) == 1 WITH: * lei:LegalEntityEvent/@group_id == $REFERRED_EVENT lei:LegalEntityEvent/@group_id * lei:LegalEntityEvent IN ['CHANGE_LEGAL_NAME'] * lei:LegalEntityEvent/@event_status IN ['COMPLETED'] * OR * lei:LegalEntityEvent/@group_id == $REFERRED_EVENT lei:LegalEntityEvent/@group_id * lei:LegalEntityEvent IN ['CHANGE_LEGAL_NAME'] * lei:LegalEntityEvent/@event_status IN ['IN_PROGRESS'] * $COUNT($LEGAL_ENTITY_EVENTS) == 1 WITH: * lei:LegalEntityEvent/@group_id == $REFERRED_EVENT lei:LegalEntityEvent/@group_id * lei:LegalEntityEventType IN ['CHANGE_LEGAL_FORM'] * lei:LegalEntityEvent/@event_status IN ['COMPLETED'] * OR * lei:LegalEntityEvent/@group_id == $REFERRED_EVENT lei:LegalEntityEvent/@group_id * lei:LegalEntityEventType IN ['CHANGE_LEGAL_FORM'] * lei:LegalEntityEvent/@event_status IN ['IN_PROGRESS']

The address information is provided in local language that matches the legal and headquarters address country

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:EntityCategory NOT IN ['BRANCH'] * lei:LegalAddress WITH: * lei:LegalAddress/@xml:lang $PRESENT * lei:LegalAddress/lei:Country IN ['BG', 'BY', 'CN', 'EE', 'FR', 'GE', 'JP', 'KH', 'KR', 'MD', 'MK', 'PL', 'RU', 'TH', 'UA', 'VN'] * OR * lei:HeadquartersAddress WITH: * lei:HeadquartersAddress/@xml:lang $PRESENT * lei:HeadquartersAddress/lei:Country IN ['BG', 'BY', 'CN', 'EE', 'FR', 'GE', 'JP', 'KH', 'KR', 'MD', 'MK', 'PL', 'RU', 'TH', 'UA', 'VN']

Condition:

* lei:LegalAddress/@xml:lang $EQUALS $COUNTRY_LANGUAGE_LIST/country * lei:HeadquartersAddress/@xml:lang $EQUALS $COUNTRY_LANGUAGE_LIST/country * OR * lei:HeadquartersAddress/@xml:lang $EQUALS lei:LegalAddress/lei:Country $COUNTRY_LANGUAGE_LIST/country

Group id is provided for relevant event group types

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED', 'RETIRED'] * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@group_type IN ['CHANGE_LEGAL_FORM_AND_NAME', 'REVERSE_TAKEOVER']

Condition:

* FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS: * lei:LegalEntityEvent/@group_id $PRESENT

Successor name does not contain an LEI Code

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED', 'RETIRED', 'DUPLICATE'] * lei:SuccessorEntityName $PRESENT

Condition:

* FOR ALL-APPLICABLE lei:SuccessorEntityName: * lei:SuccessorEntityName NOT $PATTERN_MATCH ^[0-9A-Z]{18}[0-9]{2}$

Postal code shall be included for countries in scope of postal code pattern matching

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:LegalAddress/lei:Country NOT IN ['HK', 'JM'] * lei:LegalAddress/lei:Country IN $POSTAL_CODES_LIST/country_code * OR * lei:HeadquartersAddress/lei:Country NOT IN ['HK', 'JM'] * lei:HeadquartersAddress/lei:Country IN $POSTAL_CODES_LIST/country_code

Condition:

* lei:LegalAddress/lei:PostalCode $PRESENT * lei:HeadquartersAddress/lei:PostalCode $PRESENT

No affected fields shall be present for completed events reporting no successor entities

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED', 'DUPLICATE] * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEvent/@event_status IN ['COMPLETED']

Condition:

* FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS: * lei:AffectedFields NOT $PRESENT * OR * $COUNT(lei:AffectedField) > 0 WITH: * lei:AffectedField/@field_xpath IN ['/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorLEI', '/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorEntityName']

Plausible next renewal date for lapsed records is used

Precondition:

* lei:RegistrationStatus IN ['LAPSED']

Condition:

* lei:NextRenewalDate $DATE_PART

All direct parents use the same ultimate parent

Precondition:

* $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * rr:EndNode/rr:NodeID $VALID * $END_NODE_RECORD lei:RegistrationStatus IN ['ISSUED'] * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * rr:EndNode/rr:NodeID $VALID

Condition:

* FOR ALL-APPLICABLE $REPORTED_PARENT_RELATIONSHIPS IN $RELATIONSHIP_CHAIN WITH rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY']: * $REFERRED_RECORD rr:EndNode/rr:NodeID $EQUALS RUT rr:EndNode/rr:NodeID WITH: * RUT rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY'] * RUT rr:RegistrationStatus IN ['PUBLISHED'] * OR * $REFERRED_RECORD $COUNT($REPORTED_EXCEPTIONS) > 0 WITH: * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT'] * repex:ExceptionReason IN ['NON_PUBLIC']

No placeholders shall be used in address information

Precondition:

* lei:RegistrationStatus IN ['ISSUED']

Condition:

* FOR FIELD IN [lei:LegalAddress, lei:HeadquartersAddress, lei:OtherAddress, lei:TransliteratedOtherAddress]: * lei:AdditionalAddressLine[1] NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST) * lei:AdditionalAddressLine[2] NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST) * lei:AdditionalAddressLine[3] NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST) * lei:City NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST) * lei:PostalCode NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST) * lei:MailRouting NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST) * lei:FirstAddressLine NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER * lei:AdditionalAddressLine[1] NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER * lei:AdditionalAddressLine[2] NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER * lei:AdditionalAddressLine[3] NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER * lei:City NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER * lei:PostalCode NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER * lei:MailRouting NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER

RA999999 is not used as OtherValidationAuthority

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:OtherValidationAuthorities $PRESENT

Condition:

* FOR lei:OtherValidationAuthority: * lei:OtherValidationAuthority/lei:ValidationAuthorityID NOT IN ['RA999999']

Transliterated language information shall be correct

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED', 'DUPLICATE'] * $COUNT(lei:TransliteratedOtherEntityName) > 0 WITH: * lei:TransliteratedOtherEntityName/@xml:lang $PRESENT * lei:LegalName/@xml:lang $PRESENT * OR * lei:OtherEntityName/@xml:lang $PRESENT * $COUNT(lei:TransliteratedOtherAddress) > 0 WITH: * lei:TransliteratedOtherAddress/@xml:lang $PRESENT * lei:LegalAddress/@xml:lang $PRESENT * OR * lei:HeadquartersAddress/@xml:lang $PRESENT

Condition:

* FOR ALL-APPLICABLE lei:TransliteratedOtherEntityName: * lei:TransliteratedOtherEntityName/@xml:lang $EQUALS lei:LegalName/@xml:lang * OR * lei:TransliteratedOtherEntityName/@xml:lang $EQUALS lei:OtherEntityName/@xml:lang * FOR ALL-APPLICABLE lei:TransliteratedOtherAddress WITH: * lei:TransliteratedOtherAddress/@type IN ['AUTO_ASCII_TRANSLITERATED_LEGAL_ADDRESS', 'PREFERRED_ASCII_TRANSLITERATED_LEGAL_ADDRESS']: * lei:TransliteratedOtherAddress/@xml:lang $UNIQUE * lei:TransliteratedOtherAddress/@xml:lang $EQUALS lei:LegalAddress/@xml:lang * FOR ALL-APPLICABLE lei:TransliteratedOtherAddress WITH: * lei:TransliteratedOtherAddress/@type IN ['AUTO_ASCII_TRANSLITERATED_HEADQUARTERS_ADDRESS', 'PREFERRED_ASCII_TRANSLITERATED_HEADQUARTERS_ADDRESS']: * lei:TransliteratedOtherAddress/@xml:lang $UNIQUE * lei:TransliteratedOtherAddress/@xml:lang $EQUALS lei:HeadquartersAddress/@xml:lang

Ensure previous legal names are unique and not repetitive

Precondition:

* COUNT(lei:OtherEntityName) > 0 WITH: * lei:OtherEntityNameType IN ['PREVIOUS_LEGAL_NAME'] * lei:RegistrationStatus NOT IN ['ANNULLED']

Condition:

* FOR ALL-APPLICABLE lei:OtherEntityName: * lei:OtherEntityName $UNIQUE

Correct legal form is provided for branch entities

Precondition:

* lei:EntityCategory IN ['BRANCH'] * lei:RegistrationStatus IN ['ISSUED', 'LAPSED'] * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RelationshipType IN ['IS_INTERNATIONAL_BRANCH_OF'] * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED'] * rr:EndNode/rr:NodeID $VALID * rr:StartNode/rr:NodeID NOT $EQUALS rr:EndNode/rr:NodeID

Condition:

* lei:EntityLegalFormCode $EQUALS $END_NODE_RECORD lei:EntityLegalFormCode

Other Validation Authorities is present where applicable

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:ValidationAuthorityID $PRESENT * lei:ValidationAuthorityID IN ['RA000533']

Condition:

* lei:OtherValidationAuthorities $PRESENT

Avoid redundancy in legal name and alternative language legal name languages

Precondition:

* lei:LegalName/@xml:lang $PRESENT * lei:OtherEntityNames $PRESENT * $COUNT(lei:OtherEntityName) > 0 WITH: * lei:OtherEntityName/@xml:lang $PRESENT * lei:OtherEntityName/@type IN ['ALTERNATIVE_LANGUAGE_LEGAL_NAME'] * lei:RegistrationStatus NOT IN ['ANNULLED']

Condition:

* FOR ALL-APPLICABLE lei:OtherEntityName: * lei:OtherEntityName/@xml:lang NOT $EQUALS lei:LegalName/@xml:lang * $COUNT(ALL-APPLICABLE NOT $UNIQUE lei:OtherEntityName/@xml:lang)

Last update date and recorded date are plausible

Precondition:

* $COUNT($LEGAL_ENTITY_EVENTS) > 1 * lei:RegistrationStatus NOT IN ['ANNULLED','DUPLICATE']

Condition:

* FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS: * lei:LegalEntityEventRecordedDate

Report no parent entities for sole proprietors

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:EntityCategory IN ['SOLE_PROPRIETOR']

Condition:

* $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 0 WITH: * rr:RegistrationStatus $MUTABLE * $COUNT($REPORTED_EXCEPTIONS) == 1 WITH: * repex:ExceptionReason IN ['NON_CONSOLIDATING', 'NATURAL_PERSONS'] * repex:ExceptionCategory IN ['DIRECT_ACCOUNTING_CONSOLIDATION_PARENT'] * $COUNT($REPORTED_EXCEPTIONS) == 1 WITH: * repex:ExceptionReason IN ['NON_CONSOLIDATING', 'NATURAL_PERSONS'] * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT']

Branch entity must be registered

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED', 'DUPLICATE'] * lei:EntityCategory IN ['BRANCH'] * lei:RegistrationAuthority $PRESENT * lei:RegistrationAuthorityID $PRESENT * OR * lei:ValidationAuthority $PRESENT * lei:ValidationAuthorityID $PRESENT

Condition:

* lei:RegistrationAuthorityID NOT IN ['RA999999'] * lei:ValidationAuthorityID NOT IN ['RA999999']

International organizations use correct reporting exception reason

Precondition:

* lei:EntityCategory IN ['INTERNATIONAL_ORGANIZATION'] * $COUNT($REPORTED_EXCEPTIONS) > 0

Condition:

* FOR ALL-APPLICABLE $REPORTED_EXCEPTIONS: * repex:ExceptionReason IN ['NO_KNOWN_PERSON', 'NO_LEI']

Detect inactive entities that become active

Precondition:

* lei:LEI $VALID * $PREVIOUS_VERSION(RUT lei:RegistrationStatus) IN ['RETIRED']

Condition:

* lei:RegistrationStatus IN ['RETIRED','ANNULLED','DUPLICATE','PENDING_TRANSFER']

Ensure address region matches with country information

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED'] * lei:LegalAddress/lei:Region $PRESENT * lei:LegalAddress/lei:Region IN ISO_3166_2 * OR * lei:HeadquartersAddress/lei:Region $PRESENT * lei:HeadquartersAddress/lei:Region IN ISO_3166_2 * OR * COUNT(lei:OtherAddresses) > 0 WITH: * lei:OtherAddress/lei:Region $PRESENT * lei:OtherAddress/lei:Region IN ISO_3166_2 * OR * COUNT(lei:TransliteratedOtherAddresses) > 0 WITH: * lei:TransliteratedOtherAddress/lei:Region $PRESENT * lei:TransliteratedOtherAddress/lei:Region IN ISO_3166_2

Condition:

* lei:LegalAddress/lei:Country $EQUALS lei:LegalAddress/lei:Region ISO_3166_1_ALPHA_2 * lei:HeadquartersAddress/lei:Country $EQUALS lei:HeadquartersAddress/lei:Region ISO_3166_1_ALPHA_2 * FOR ALL-APPLICABLE lei:OtherAddress: * lei:OtherAddress/lei:Country $EQUALS lei:OtherAddress/lei:Region ISO_3166_1_ALPHA_2 * FOR ALL-APPLICABLE lei:TransliteratedOtherAddress: * lei:TransliteratedOtherAddress/lei:Country $EQUALS lei:TransliteratedOtherAddress/lei:Region ISO_3166_1_ALPHA_2

Successor information does not contain any placeholder values

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED', 'RETIRED'] * lei:SuccessorEntityName $PRESENT * OR * COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:AffectedField WITH: * lei:AffectedField/@field_xpath IN ['/lei:LEIData/lei:LEIRecords/lei:LEIRecord/lei:Entity/lei:SuccessorEntity/lei:SuccessorEntityName']

Condition:

* FOR ALL-APPLICABLE lei:SuccessorEntityName: * lei:SuccessorEntityName NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER * lei:SuccessorEntityName NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST) * FOR ALL-APPLICABLE $LEGAL_ENTITY_EVENTS: * lei:SuccessorEntityName NOT CONSISTING-ONLY-OF $PUNCTUATION_CHARACTER * lei:SuccessorEntityName NOT IN $CASE_INSENSITIVE($PLACEHOLDER_LIST)

Appropriate code in other addresses region and transliterated other addresses region

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED'] * COUNT(lei:OtherAddress) > 0 WITH: * lei:OtherAddress/lei:Region $PRESENT * OR * COUNT(lei:TransliteratedOtherAddress) > 0 WITH: * lei:TransliteratedOtherAddress/lei:Region $PRESENT

Condition:

* FOR ALL-APPLICABLE lei:OtherAddresses: * lei:OtherAddress/lei:Region IN ISO_3166_2 * FOR ALL-APPLICABLE lei:TransliteratedOtherAddresses: * lei:TransliteratedOtherAddress/lei:Region IN ISO_3166_2

Initial registration date is plausible

Precondition:

* lei:RegistrationStatus NOT IN ['ANNULLED', 'DUPLICATE']

Condition:

* IF lei:LEI $STARTS_WITH $LEI_ISSUER_PREFIXES/PREFIX: * lei:InitialRegistrationDate $DATE_PART >= $LEI_ISSUER_LIST/START_DATE $DATE_PART * IF lei:LEI NOT $STARTS_WITH $LEI_ISSUER_PREFIXES/PREFIX: * lei:InitialRegistrationDate $DATE_PART >= $DATETIME('2012-06-05T00:00:00+00:00') $DATE_PART

Ensure translated legal names are unique

Precondition:

* COUNT(lei:OtherEntityName) > 0 WITH: * lei:OtherEntityName/@type IN ['ALTERNATIVE_LANGUAGE_LEGAL_NAME'] * lei:LegalJurisdiction NOT IN ['CH']

Condition:

* FOR ALL-APPLICABLE lei:OtherEntityName: * lei:OtherEntityName NOT $EQUALS lei:LegalName * lei:OtherEntityName $UNIQUE

Ensure transliterated legal names are unique

Precondition:

* lei:TransliteratedOtherEntityNames $PRESENT * lei:LegalJurisdiction NOT IN ['CH']

Condition:

* FOR lei:TransliteratedOtherEntityName: * lei:TransliteratedOtherEntityName NOT $EQUALS lei:LegalName * lei:TransliteratedOtherEntityName $UNIQUE

Translated names shall be different than transliterated names

Precondition:

* lei:TransliteratedOtherEntityNames $PRESENT * COUNT(lei:OtherEntityName) > 0 WITH: * lei:OtherEntityNameType IN ['ALTERNATIVE_LANGUAGE_LEGAL_NAME']

Condition:

* FOR ALL-APPLICABLE lei:OtherEntityName: * FOR lei:TransliteratedOtherEntityName: * lei:OtherEntityName NOT $EQUALS lei:TransliteratedOtherEntityName

Branches shall be inactive if their head office is inactive

Precondition:

* lei:EntityCategory IN ['BRANCH'] * lei:RegistrationStatus NOT IN ['ANNULLED', 'DUPLICATE'] * $COUNT($REPORTED_PARENT_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_INTERNATIONAL_BRANCH_OF'] * rr:EndNode/rr:NodeID $VALID * $END_NODE_RECORD lei:RegistrationStatus IN ['RETIRED'] * rr:StartNode/rr:NodeID NOT $EQUALS rr:EndNode/rr:NodeID

Condition:

* lei:RegistrationStatus IN ['RETIRED'] * OR * $COUNT($REPORTED_PARENT_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_INTERNATIONAL_BRANCH_OF'] * rr:EndNode/rr:NodeID $VALID * rr:RegistrationStatus IN ['PUBLISHED', 'LAPSED', 'PENDING_TRANSFER', 'PENDING_ARCHIVAL'] * $END_NODE_RECORD lei:RegistrationStatus IN ['ISSUED', 'LAPSED', 'PENDING_TRANSFER', 'PENDING_ARCHIVAL']

Provide complete, distinct parent information for RETIRED non-branches

Precondition:

* lei:EntityCategory NOT IN ['BRANCH'] * lei:InitialRegistrationDate >= $DATETIME('2024-04-11T00:00:00+00:00') * lei:RegistrationStatus IN ['RETIRED']

Condition:

* FOR $REPORTED_DIRECT_PARENT_INFO: * $COUNT($REPORTED_EXCEPTIONS) == 1 * OR * $COUNT($REPORTED_PARENT_RELATIONSHIPS) >= 1 WITH: * rr:RegistrationStatus IN ['RETIRED'] * FOR $REPORTED_ULTIMATE_PARENT_INFO: * $COUNT($REPORTED_EXCEPTIONS) == 1 * OR * $COUNT($REPORTED_PARENT_RELATIONSHIPS) >= 1 WITH: * rr:RegistrationStatus IN ['RETIRED']

Provide complete, distinct parent information for LAPSED non-branches

Precondition:

* lei:EntityCategory NOT IN ['BRANCH'] * lei:InitialRegistrationDate >= $DATETIME('2018-01-01T00:00:00+00:00') * lei:RegistrationStatus IN ['LAPSED']

Condition:

* FOR $REPORTED_DIRECT_PARENT_INFO: * $COUNT($REPORTED_EXCEPTIONS) == 1 * OR * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RegistrationStatus IN ['LAPSED'] * FOR $REPORTED_ULTIMATE_PARENT_INFO: * $COUNT($REPORTED_EXCEPTIONS) == 1 * OR * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RegistrationStatus IN ['LAPSED']

Relationships for funds in formation are applied correctly

Precondition:

* $COUNT($REPORTED_RELATIONSHIPS) > 0 WITH: * rr:RelationshipStatus IN ['NULL'] * rr:RegistrationStatus IN ['PUBLISHED']

Condition:

* lei:EntityCategory IN ['FUND'] * lei:EntityCreationDate NOT $PRESENT * lei:EntityStatus IN ['NULL']

All direct children use the same ultimate parent

Precondition:

* $COUNT($REPORTED_CHILD_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * rr:EndNode/rr:NodeID $VALID

Condition:

* FOR ALL-APPLICABLE $REPORTED_CHILD_RELATIONSHIPS IN $RELATIONSHIP_CHAIN WITH rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY']: * $REFERRED_RECORD rr:EndNode/rr:NodeID $EQUALS RUT rr:EndNode/rr:NodeID WITH: * RUT rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY'] * RUT rr:RegistrationStatus IN ['PUBLISHED'] * OR * $REFERRED_RECORD $COUNT($REPORTED_EXCEPTIONS) > 0 WITH: * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT'] * repex:ExceptionReason IN ['NON_PUBLIC']

Ensure other validation authority is used correctly

Precondition:

* lei:RegistrationStatus IN ['ISSUED', 'LAPSED'] * lei:OtherValidationAuthorityID $PRESENT

Condition:

* $NORMALIZED(lei:OtherValidationAuthorityID) NOT $PATTERN_MATCH('/^RAd{6}$/')

The legal name information is provided in local language that matches the jurisdiction

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * lei:LegalJurisdiction IN ['BG', 'GE', 'KH', 'KR', 'MK', 'RU', 'TH', 'UA', 'VN'] * lei:EntityCategory NOT IN ['BRANCH'] * lei:LegalName/@xml:lang $PRESENT

Condition:

* lei:LegalName/@xml:lang $MATCHES $COUNTRY_LANGUAGE_LIST/country

All direct children use the same reporting exception

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * $COUNT($REPORTED_CHILD_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * $COUNT($REPORTED_CHILD_RELATIONSHIPS) == 0 WITH: * rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * $COUNT($REPORTED_EXCEPTIONS) == 1 WITH: * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT'] * repex:ExceptionReason IN ['NO_LEI', 'NON_CONSOLIDATING', 'NATURAL_PERSONS', 'NO_KNOWN_PERSON']

Condition:

* FOR ALL-APPLICABLE $REPORTED_CHILD_RELATIONSHIPS IN $RELATIONSHIP_CHAIN WITH rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY']: * $REFERRED_RECORD $COUNT($REPORTED_EXCEPTIONS) > 0 WITH: * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT'] * repex:ExceptionReason $EQUALS RUT repex:ExceptionReason * $REFERRED_RECORD $COUNT($REPORTED_RELATIONSHIPS) == 0 WITH: * rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * OR * repex:ExceptionReason IN ['NON_PUBLIC']

All direct parents use the same reporting exception

Precondition:

* $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * rr:EndNode/rr:NodeID $VALID * $END_NODE_RECORD lei:RegistrationStatus IN ['ISSUED'] * $COUNT($REPORTED_EXCEPTIONS) == 1 WITH: * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT'] * repex:ExceptionReason IN ['NO_LEI', 'NON_CONSOLIDATING', 'NATURAL_PERSONS', 'NO_KNOWN_PERSON']

Condition:

* FOR ALL-APPLICABLE $REPORTED_PARENT_RELATIONSHIPS IN $RELATIONSHIP_CHAIN WITH rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY']: * $REFERRED_RECORD $COUNT($REPORTED_EXCEPTIONS) > 0 WITH: * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT'] * repex:ExceptionReason $EQUALS RUT repex:ExceptionReason * $REFERRED_RECORD $COUNT($REPORTED_RELATIONSHIPS) == 0 WITH: * rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * OR * repex:ExceptionReason IN ['NON_PUBLIC']

Previous legal names are listed after legal name change

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * $COUNT($LEGAL_ENTITY_EVENTS) > 0 WITH: * lei:LegalEntityEventType IN ['CHANGE_LEGAL_NAME'] * lei:LegalEntityEventEffectiveDate >= $DATETIME('2022-04-01T00:00:00+00:00') * lei:LegalEntityEvent/@event_status IN ['COMPLETED'] * $COUNT($REFERRED_EVENT) == 0 WITH: * $REFERRED_EVENT lei:LegalEntityEvent/@event_status IN ['WITHDRAWN_CANCELLED'] * lei:LegalEntityEventEffectiveDate $DATE_PART == $REFERRED_EVENT lei:LegalEntityEventEffectiveDate $DATE_PART * lei:LegalEntityEventType == $REFERRED_EVENT lei:LegalEntityEventType * lei:ValidationDocuments == $REFERRED_EVENT lei:ValidationDocuments

Condition:

* $COUNT(lei:OtherEntityName) > 0 WITH: * lei:OtherEntityNameType IN ['PREVIOUS_LEGAL_NAME']

All previous name changes have corresponding legal entity events

Precondition:

* lei:EntityCreationDate >= $DATETIME('2022-04-01T00:00:00+00:00') * lei:RegistrationStatus IN ['ISSUED'] * $COUNT(lei:OtherEntityName) > 0 WITH: * lei:OtherEntityNameType IN ['PREVIOUS_LEGAL_NAME']

Condition:

* $COUNT($LEGAL_ENTITY_EVENTS) >= $COUNT(ALL-APPLICABLE lei:OtherEntityName) WITH: * lei:LegalEntityEvent/@event_status IN ['COMPLETED'] * lei:LegalEntityEventType IN ['CHANGE_LEGAL_NAME'] * $COUNT($REFERRED_EVENT) == 0 WITH: * $REFERRED_EVENT lei:LegalEntityEvent/@event_status IN ['WITHDRAWN_CANCELLED'] * lei:LegalEntityEventEffectiveDate $DATE_PART == $REFERRED_EVENT lei:LegalEntityEventEffectiveDate $DATE_PART * lei:LegalEntityEventType == $REFERRED_EVENT lei:LegalEntityEventType * lei:ValidationDocuments == $REFERRED_EVENT lei:ValidationDocuments

All direct children confirm that the ultimate parent is not public

Precondition:

* lei:RegistrationStatus IN ['ISSUED'] * $COUNT($REPORTED_CHILD_RELATIONSHIPS) > 0 WITH: * rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * $COUNT($REPORTED_CHILD_RELATIONSHIPS) == 0 WITH: * rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * $COUNT($REPORTED_EXCEPTIONS) == 1 WITH: * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT'] * repex:ExceptionReason IN ['NON_PUBLIC']

Condition:

* FOR ALL-APPLICABLE $REPORTED_CHILD_RELATIONSHIPS IN $RELATIONSHIP_CHAIN WITH rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY']: * $REFERRED_RECORD $COUNT($REPORTED_EXCEPTIONS) > 0 WITH: * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT'] * repex:ExceptionReason $EQUALS RUT repex:ExceptionReason * $REFERRED_RECORD $COUNT($REPORTED_RELATIONSHIPS) == 0 WITH: * rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED']

All direct parents confirm that the ultimate parent is not public

Precondition:

* $COUNT($REPORTED_PARENT_RELATIONSHIPS) == 1 WITH: * rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED'] * rr:EndNode/rr:NodeID $VALID * $END_NODE_RECORD lei:RegistrationStatus IN ['ISSUED'] * $COUNT($REPORTED_EXCEPTIONS) == 1 WITH: * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT'] * repex:ExceptionReason IN ['NON_PUBLIC']

Condition:

* FOR ALL-APPLICABLE $REPORTED_PARENT_RELATIONSHIPS IN $RELATIONSHIP_CHAIN WITH rr:RelationshipType IN ['IS_DIRECTLY_CONSOLIDATED_BY']: * $REFERRED_RECORD $COUNT($REPORTED_EXCEPTIONS) > 0 WITH: * repex:ExceptionCategory IN ['ULTIMATE_ACCOUNTING_CONSOLIDATION_PARENT'] * repex:ExceptionReason $EQUALS RUT repex:ExceptionReason * $REFERRED_RECORD $COUNT($REPORTED_RELATIONSHIPS) == 0 WITH: * rr:RelationshipType IN ['IS_ULTIMATELY_CONSOLIDATED_BY'] * rr:RegistrationStatus IN ['PUBLISHED']