Skip to main content

This content has been archived and is no longer being updated.

Links may not function; however, this content may be relevant to outdated versions of the product.

Related party operationalization

Suggest edit Updated on September 10, 2021

As organizations move their customers through onboarding, maintenance, review, and offboarding journeys, it is critical that they consistently understand all parties involved. Complex customers can have a large number of related parties. The due diligence requirements by party are based on many factors, such as type, risk model output, and screening results. In order to provide an efficient process, the organization’s systems must be able to identify each party, make ongoing assessments, and ensure the necessary level of due diligence activities are carried out. Any business rules driving the identification and assessment are subject to change over time, so the rules must be configurable.

Every party in the system is categorized as either a contracting or a related party. Specific logic is then applied to determine an AML CDD profile across the levels of Exempt, Simplified, Full, or Enhanced due diligence. By using eScreening results and the current customer risk assessment, the orchestration engine automatically ensures that the appropriate level of due diligence is carried out. This logic is fully configurable for the institution’s business needs.

Data structure

The PegaFS-Data-Party data class is used for related party operationalization, which the application uses to set the appropriate AML CDD profile for all parties involved, based on various factors. These factors and the respective properties holding them are detailed in the later part of this article.

The AML CDD profile for a party is set based on various factors, such as the customer Risk profile, eScreening match status, customer type (individual, organization, fund), whether the customer is a contracting party or a related party, and other factors based on the party type.

Invocation of AML CDD Profile

AMLCDDProfileSynchronization – This data transform invokes the AMLCDDProfilePartyRouter decision table, which returns the respective data transform, and the decision table, which is used in the AML CDD profile evaluation logic.

The evaluation is based on the customer type and whether the customer is a contracting party or not (controlled by the isContractingParty property).

The return data transform from the AMLCDDProfilePartyRouter decision table is appended with init and the data transform is invoked.

The evaluated outcome of this decision table sets the isContactingParty flag to Y if the party is a contracting party and N if the party is a related party.

SetAMLCDDProfileValue – This data transform runs in the pyWorkPage context. It sets the parameters that are required in evaluating the AML CDD profile. It invokes AMLCDDProfileSynchronization for setting the AML CDD profile value.

Customer Type: Individual (Contracting)

  • Sets the SubAccountSuffix parameter as Customer.
  • For the main customer, IsContractingParty on pyWorkParty(Customer) is set to Y.
  • When IsContractingParty is set to Y, AMLCDDProfileSynchronization is invoked to evaluate and set the AML CDD profile.

Customer Type: Individual, Organization, Fund (Related Party)

  • When bRelatedParty is true, IsContractingParty is set to N.
  • Iterates over the LinkedrealtedPartyList parameter and sets the ControllingRelatedParty parameter with the IsDeemedControlling value.
  • When the CustomerStatus parameter of the customer is Active, IsContractingParty flag is set to Y.

Customer Type: Organization (Contracting)

  • Sets the IsRegulatorApproved, IsExchangeApproved, and IsExchangeOrRegulatorApproved flags.
  • Sets the SubAccountSuffix parameter as Customer
  • For the main customer, the IsContractingParty parameter on pyWorkParty(Customer) is set to Y.
  • When IsContractingParty parameter is Y, AMLCDDProfileSynchronization is invoked to evaluate and set the AML CDD profile.

Customer Type: Fund (Contracting)

  • The SubAccountSuffix parameter is passed as SubAccount.
  • Sets the RiskCode parameter from pyWorkParty(SubAccount).RiskProfile.CustomerRiskCode.
  • When the length of the BusinessRelationshipList of pyWorkParty(SubAccount) is greater than 0, set the FMRiskScore value to 0 and ManagerCDDProfile to “”.
  • Iterates over the BusinessRelationshipList property and when the BusRelType=="Fund Manager", set the index of the list into FMIndex parameter where the BusRelRoleType property is FM.
  • Gets the MasterProfile of the Fund Manager by passing the party ID.
  • Sets the RiskScore and AMLCDD value of the fund manager.
  • Sets IsManagerSimplifiedCDD value to true if AML CDD profile is SimplifiedCDD, otherwise it sets to false.
  • Invokes AMLCDDProfileSynchronization to evaluate the AML CDD profile based on the parameters that are set.

SetAMLCDDProfileValue_eScreening - This data transform is invoked in the WorkFolder context, updates the WorkFolder with the updated AMLCDD value, and is invoked when eScreening is enabled (on submission of matches), invokes AMLCDDProfileSynchronization to evaluate the AML CDD value.

AML CDD Categorization Assessment

The AML CDD Profile categories are:

  • Enhanced DD (value EDD)
  • Full CDD (value CDD)
  • Simplified CDD (value SDD)
  • CDD Exempt (value NoDD)
  • Related party enhanced DD (value RPEDD)
  • Related party full CDD (value RPCDD)
  • Related party simplified CDD (value RPSDD)
  • Related party CDD Exempt (value RPNoDD)

AMLCDDProfilePartyRouter decision table – This decision table returns the data transforms and decision table based on the following parameters.

Column name

Input/Output

Description

CustomerType

Input

Value is available on the work party page .pyWorkParty(Customer).Customer Type

Or

.pyWorkParty(Customer).TaxIDType

IsContractingParty

Input

This value is set when creating customer, related parties, and funds

Value is also set based on the status of the customer

. IsContractingParty =’true’ for main customer (Individual/Organization)

. IsContractingParty =’false’ for related party (when status! =” Active”) and for funds

For main customer the value is set to Y while evaluating the AML CDD profile by invoking SetAMLCDDProfileValue

For related party the value is set to N while adding the related party is new (ManageRelatedParties)

When the related party that is added is with customer status as Active, the flag is set to Y

For funds the value is set when creating the funds page. The same value is passed when creating workparty(SubAccount)

Return decision table

Output

The decision table name is the return value. This decision table is used to return the CDDProfile value based on the conditions.

Return data transform

Output

Return value is appended with Init and the resultant data transform is invoked to set the various factors that are required in evaluating the AML CDD profile.

The following table displays the resultant data transforms and decision tables that are returned by the AMLCDDProfilePartyRouter decision table.

Customer type

Decision table name

Data transform name

Contracting party – Ind

AMLCDDProfileContractingInd

AMLCDDProfileContractingIndInit

Contracting party – Org

AMLCDDProfileContractingOrg

AMLCDDProfileContractingOrgInit

Contracting party – Fund

AMLCDDProfileContractingFund

AMLCDDProfileContractingFundInit

Related party – Ind

AMLCDDProfileRelatedPartyInd

AMLCDDProfileRelatedPartyIndInit

Related party – Org

AMLCDDProfileRelatedPartyOrg

AMLCDDProfileRelatedPartyIndInit

Related party -Fund

AMLCDDProfileRelatedPartyFund

AMLCDDProfileRelatedPartyIndInit

Decision tables and data transforms

AMLCDDProfileContractingInd Decision table

Client overall risk

Positive Screening Hits assessed

CDDProfile_AML

Rationale

LOW

Positive

CDD

CDDProfile_FullDefault

Negative

NoDD

CDDExempt

MEDIUM

Positive

EDD

CDDProfile_EnhancedDD

Negative

SDD

CDDProfile_SimplifiedRegulated

HIGH

Positive

EDD

CDDProfile_EnhancedDD

Negative

CDD

CDDProfile_FullDefault

EXTREME

Positive

EDD

CDDProfile_EnhancedDD

Negative

EDD

CDDProfile_EnhancedDD

Input

  • Client overall risk assessment
    • Low
    • Medium
    • High
    • Extreme
  • Any positive screening hit assessed (PEP, sanctions, adverse media)
    • Positive – when positive match is found with PEP, sanctions or adverse media.
    • Negative – when match is found and not a PEP, sanctions or adverse media. Also, when the matching was negative. Also, when screening was not available or accessed.

Output

  • CDDProfile_AML
  • CDDProfile_AML rationale

AMLCDDProfileContractingIndInit Data transform

  • OverallRisk is available on .pyWorkParty(Customer).RiskProfile.CustomerRiskCode
  • eScreeningAssessment: Use a property IsScreeningPositive. The value can be retrieved by using the following logic. The property can be used at any place where required to evaluate the eScreening status. The logic of getting eScreening should be encapsulated into a different data transform so that it can be reused in other places.
    • Positive - if pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages is available, then iterates over .pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages(1).ScreeningMatches() and checks for the MatchStatus property value by using the HasScreeningPostiveMatch when rule. If the value is Positive, it then sets the eScreeningAssessment value to Y.
    • Negative - if pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages is available, then iterates over .pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages(1).ScreeningMatches() and checks for the MatchStatus property value by using the HasScreeningPostiveMatch when rule. If the value is false, it then sets the eScreeningAssessment value to N.

AMLCDDProfileContractingOrg Decision table

Client overall risk

Positive Screening Hits assessed

Are any regulators or exchanges approved?

Organization entity type

.CDDProfile_AML

Rationale

LOW

N

Y

Charity or civil club

NoDD

CDDExempt

Bank, insurance, or other financial institution

NoDD

CDDExempt

Corporate

CDD

CDDProfile_FullDefault

N

Charity or Civil club

NoDD

CDDExempt

Bank, insurance, or other financial institution

SDD

CDDProfile_SimplifiedRegulated

Corporate

CDD

CDDProfile_FullDefault

Y

Y

Charity or civil club

CDD

CDDProfile_FullDefault

Bank, insurance, or other financial institution

CDD

CDDProfile_FullDefault

Corporate

EDD

CDDProfile_EnhancedDD

N

Charity or civil club

CDD

CDDProfile_FullDefault

Bank, insurance, or other financial institution

EDD

CDDProfile_EnhancedDD

Corporate

EDD

CDDProfile_EnhancedDD

MEDIUM

N

Y

Charity or civil club

SDD

CDDProfile_SimplifiedRegulated

Bank, insurance, or other financial institution

CDD

CDDProfile_FullDefault

Corporate

CDD

CDDProfile_FullDefault

N

Charity or civil club

SDD

CDDProfile_SimplifiedRegulated

Bank, insurance, or other financial institution

CDD

CDDProfile_FullDefault

Corporate

CDD

CDDProfile_FullDefault

Y

Y

Charity or civil club

EDD

CDDProfile_EnhancedDD

Bank, insurance, or other financial institution

EDD

CDDProfile_EnhancedDD

Corporate

EDD

CDDProfile_EnhancedDD

N

Charity or civil club

EDD

CDDProfile_EnhancedDD

Bank, insurance, or other financial institution

EDD

CDDProfile_EnhancedDD

Corporate

EDD

CDDProfile_EnhancedDD

HIGH/EXTREME

N

Y

Charity or civil club

EDD

CDDProfile_EnhancedDD

Bank, insurance, or other financial institution

EDD

CDDProfile_EnhancedDD

Corporate

EDD

CDDProfile_EnhancedDD

N

Charity or civil club

EDD

CDDProfile_EnhancedDD

Bank, insurance, or other financial institution

EDD

CDDProfile_EnhancedDD

Corporate

EDD

CDDProfile_EnhancedDD

Y

Y

Charity or civil club

EDD

CDDProfile_EnhancedDD

Bank, insurance, or other financial institution

EDD

CDDProfile_EnhancedDD

Corporate

EDD

CDDProfile_EnhancedDD

N

Charity or civil club

EDD

CDDProfile_EnhancedDD

Bank, insurance, or other financial institution

EDD

CDDProfile_EnhancedDD

Corporate

EDD

CDDProfile_EnhancedDD

Input

  • Client overall risk assessment
    • Low
    • Medium
    • High
    • Extreme
  • Any positive screening hit assessed (PEP, sanctions, adverse media)
    • Positive – when positive match is found with PEP, sanctions, or adverse media
    • Negative – when match is found and not a PEP, sanctions, or adverse media. Also, when the matching was negative. Also, when screening was not available or accessed.
  • Organization entity type
    • Charity or civil club, bank, Insurance or other non-bank financial institution, corporate values
  • Is regulated by approved regulator or exchanged in approved exchange?
    • Yes
    • No

Output

  • CDDProfile_AML
  • CDDProfile_AML rationale

AMLCDDProfileContractingOrg Data transform

  • OverallRisk is available on .pyWorkParty(Customer).RiskProfile.CustomerRiskCode
  • eScreeningAssessment: Use a property IsScreeningPositive. The value can be retrieved by using the following logic. The property can be used at any place where required to evaluate the eScreening status. The logic of getting eScreening should be encapsulated in a different data transform so that it can be reused at other places.
    • Positive - if pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages is available, then iterates over .pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages(1).ScreeningMatches() and checks for the MatchStatus property value by using the HasScreeningPostiveMatch when rule. If the value is Positive, then sets the eScreeningAssessment value to Y.
    • Negative- if pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages is available, then iterates over .pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages(1).ScreeningMatches() and checks for the MatchStatus property value by using the HasScreeningPostiveMatch when rule. If the value is false, then sets the eScreeningAssessment value to N.
  • SetExchangeOrRegulatorApprovedValue - This data transform is used to set the IsExchangeOrRegulatorApproved flag by using the IsapprovedByRegulatorOrExchange when rule by evaluating the following conditions.

    If

    • @IsInPageList("Approved Regulator",Category,.pyWorkParty(Customer).RegulatorList) = true ||
    • @IsInPageList("Approved Exchange",Category,.pyWorkParty(Customer).ExchangeList) = true

AMLCDDProfileContractingFund Decision table

Client overall risk

Managed by reduced risk Fund Managers or Agents?

Positive Screening Hits assessed?

CDDProfile_AML

Rationale

LOW

Y

Y

SimplifiedCDD

CDDProfile_Fund_SimplifiedRegulated

N

CDDExempt

CDDExempt_Fund_NY

N

 

 

 

N

SimplifiedCDD

CDDProfile_Fund_SimplifiedNoHit

MEDIUM

Y

Y

SimplifiedCDD

CDDProfile_Fund_SimplifiedRegulated

N

CDDExempt

CDDExempt_Fund_NY

N

   

N

SimplifiedCDD

CDDProfile_Fund_SimplifiedNoHit

HIGH/EXTREME

Y

Y

EnhancedDD

CDDProfile_Fund_EnhancedDD

N

EnhancedDD

CDDProfile_Fund_EnhancedDD

N

Y

EnhancedDD

CDDProfile_Fund_EnhancedDD

N

EnhancedDD

CDDProfile_Fund_EnhancedDD

Input

  • Fund overall risk assessment
    • Low
    • Medium
    • High
    • Extreme
  • Any positive screening hit assessed (PEP, sanctions, adverse media)
    • Positive – when positive match is found with PEP, sanctions, or adverse media
    • Negative – when match is found and not a PEP, sanctions, or adverse media. Also, when the matching was negative. Also, when screening was available or accessed.
  • Is the Fund being managed by reduced-risk Fund Managers or Agents
    • Yes
    • No

Output

  • CDDProfile_AML
  • CDDProfile_AML rationale

AMLCDDProfileContractingFund Data transform

  • Fund Risk is available on .pyWorkParty(SubAccount).RiskProfile.CustomerRiskCode
  • eScreeningAssessment: Use a property IsScreeningPositive. The value can be retrieved by using the following logic. The property can be used at any place where required to evaluate the eScreening status. The logic of getting eScreening should be encapsulated into a different data transform so that it can be reused at other places.
    • Positive - if pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages is available, then iterates over .pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages(1).ScreeningMatches() and checks for the MatchStatus property value by using the HasScreeningPostiveMatch when rule. If the value is Positive, then it sets the eScreeningAssessment value to Y.
    • Negative - if pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages is available, then iterates over .pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages(1).ScreeningMatches() and checks for the MatchStatus property value by using the HasScreeningPostiveMatch when rule. If the value is false, then it sets the eScreeningAssessment value to N.
  • EvaluateIfManagedByReducedRiskFM: This data transform is used to determine if the party is managed by the reduced risk fund manager, and if so, to set the respective value to IsManagedByReducedRiskFM.
    • The value is available on pyWorkParty(Customer).CDD_ProfileAML
    • Yes - IF FM CDDProfile is either SDD or No DD
    • No - IF FM CDDProfile is other then SDD or No DD

AMLCDDProfileRelatedPartyInd Decision table

Input

  • Overall risk assessment
    • Low
    • Medium
    • High
    • Extreme
  • Any positive screening hit assessed (PEP, sanctions, adverse media)
    • Positive – when positive match is found with PEP, sanctions, or adverse media
    • Negative – when match is found and not a PEP, sanctions, or adverse media. Also, when the matching was negative. Also, when screening was available or accessed
  • If this Party is deemed controlling to any contracting party (for example, if the related party is also acting as controlling party for another contracting party).
    • Yes
    • No
  • If the risk of any of the related contracting party is higher than low-medium risk (for example, if this related party is related to another contracting party, then the risk of that contracting party is considered)
    • Yes
    • No

Output

  • CDDProfile_AML
  • CDDProfile_AML rationale

AMLCDDProfileRelatedPartyInd Data transform

  • OverallRisk is available on pyWorkParty(Customer).LinkedRelatedPartyList().CustInfo.RiskProfile.CustomerRiskCode
  • eScreeningAssessment: Use a property IsScreeningPositive. The value can be retrieved by using the following logic. The property can be used at any place where required, to evaluate the eScreening status. The logic of getting eScreening should be encapsulated in a different data transform so that it can be reused at other places.
    • Positive - if pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages is available, then iterates over .pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages(1).ScreeningMatches() and checks for the MatchStatus property value by using the HasScreeningPostiveMatch when rule. If the value is Positive, then it sets the eScreeningAssessment value to Y.
    • Negative - if pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages is available, then iterates over .pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages(1).ScreeningMatches() and checks for the MatchStatus property value by using the HasScreeningPostiveMatch when rule. If the value is false, then it sets the eScreeningAssessment value to N.
  • IsPartyControllingForAnyContractingParty: This data transform is used to evaluate whether the related party is deemed controlling of any other contracting party:
    • If the related party is deemed controlling of the current customer, then the ControllingPartyofAnyContractingParty parameter is set to Y.
    • Checks the customer risk code of the main customer (party1Id) by invoking D_GetMasterProfile[CustomerID:Param.Party1Id].RiskProfile.CustomerRiskCode.
    • If the risk of the main customer (party1Id) is high or extreme, then the AnyContractingPartyHigherRisk parameter is set to Y and the data transform exists.
    • If the related party is not deemed controlling of the current contracting party, then it checks if the related party exists by invoking the IsRelatedPartyExisting when rule. It checks if the related party is with customer status as active.
    • If the related party exists, it gets the relatedContractingParties list by invoking D_PartyPartyXRefSummary[Party2ID:Param.Party2Id].pxResults.
    • Checks if the isDeemedControlling flag is set, otherwise, it sets the isDeemedControlling flag by invoking SetRelatedPartyAsDeemedControlling data transform
    • The IsDeemedControlling flag is set based on the RelevantPartyDecision decision table, which considers customer type, role code, customer risk code, and role category.
    • If the related party is deemed controlling, then ControllingPartyofAnyContractingParty is set to Y.
    • Gets the risk code of the contracting party (party1ID) D_GetMasterProfile[CustomerID:Param.Party1Id].RiskProfile.CustomerRiskCode.
    • If the ContractingPartyRiskCode value is High or Extreme, then the AnyContractingPartyHigherRisk parameter is set to Y.

AMLCDDProfileRelatedPartyOrg Decision table

Input

  • Overall risk assessment
    • Low
    • Medium
    • High
    • Extreme
  • Any positive screening hit assessed (PEP, sanctions, adverse media)
    • Not available -- when screening was available or accessed
    • Positive – when positive match is found with PEP, sanctions, or adverse media
    • Negative – when match is found and not a PEP, sanctions or adverse media. Also, when the matching was negative.
  • If this Party is deemed controlling of any contracting party, for example, if the related party is also acting as the controlling party for any other contracting party.
    • Yes
    • No
  • If the risk of any of the related contracting parties is higher than low-medium risk (for example, if this related party is related to other contracting parties, then the risk of those contracting parties is considered)
    • Yes
    • No
  • Organization entity type

Output

  • CDDProfile_AML
  • CDDProfile_AML rationale

AMLCDDProfileRelatedPartyOrg data transform

  • OverallRisk is available on pyWorkParty(Customer).LinkedRelatedPartyList().CustInfo.RiskProfile.CustomerRiskCode
  • eScreeningAssessment: Use a property IsScreeningPositive. The value can be retrieved by using below logic. The property can be used at any place where required, to evaluate of eScreening status. The logic of getting the eScreening should be encapsulated into a different data transform so that it can be reused at other places as well
    • Positive - if pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages is available, then it iterates over .pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages(1).ScreeningMatches() and checks for the MatchStatus property value by using the HasScreeningPostiveMatch when rule. If the value is Positive, then it sets the eScreeningAssessment value to Y.
    • Negative - if pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages is available, then it iterates over .pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages(1).ScreeningMatches() and checks for the MatchStatus property value by using the HasScreeningPostiveMatch when rule. If the value is false, then it sets the eScreeningAssessment value to N.
  • IsPartyControllingForAnyContractingParty – This data transform evaluates whether the related party is deemed controlling of any other contracting party.
    • If the related party is deemed controlling of the current customer, then the ControllingPartyofAnyContractingParty parameter is set to Y.
    • Checks the customer risk code of the main customer (party1Id) by invoking D_GetMasterProfile[CustomerID:Param.Party1Id].RiskProfile.CustomerRiskCode.
    • If the risk of the main customer (party1Id) is high or extreme, then the AnyContractingPartyHigherRisk parameter is set to Y and the data transform exists.
    • If the related party is not deemed controlling of the current contracting party, then it checks if the related party exists by invoking the IsRelatedPartyExisting when rule. It checks if the related party is with customer status as active.
    • If the related party exists, it gets the relatedContractingParties list by invoking D_PartyPartyXRefSummary[Party2ID:Param.Party2Id].pxResults.
    • Checks if the isDeemedControlling flag is set, otherwise, it sets the isDeemedControlling flag by invoking SetRelatedPartyAsDeemedControlling data transform
    • The IsDeemedControlling flag is set based on the RelevantPartyDecision decision table, which considers customer type, role code, customer risk code, and role category.
    • If the related party is deemed controlling then ControllingPartyofAnyContractingParty is set to Y.
    • Gets the risk code of the contracting party (party1ID) D_GetMasterProfile[CustomerID:Param.Party1Id].RiskProfile.CustomerRiskCode.
    • If the ContractingPartyRiskCode value is High or Extreme, then the AnyContractingPartyHigherRisk parameter is set to Y.
  • SetExchangeOrRegulatorApprovedValue - This data transform is sets the IsExchangeOrRegulatorApproved flag by using the IsapprovedByRegulatorOrExchange when rule by evaluating the following conditions:

    If

    • @IsInPageList("Approved Regulator",Category,.pyWorkParty(Customer).RegulatorList) = true ||
    • @IsInPageList("Approved Exchange",Category,.pyWorkParty(Customer).ExchangeList) = true
  • OrganizationEntityType: set the entity type by retrieving from D_PartySubTypeSummary D_PartySubTypeSummary[PartySubTypeCode:.CustSubtype].pxResults(1).PartySubTypeDesc

AMLCDDProfileRelatedPartyFund Decision table

Input

  • Fund overall risk assessment
    • Low
    • Medium
    • High
    • Extreme
  • Any positive screening hit assessed (PEP, sanctions, adverse media)
    • Positive – when positive match is found with PEP, sanctions, or adverse media
    • Negative – when match is found and not a PEP, sanctions, or adverse media. Also, when the matching was negative. Also, when screening was available or accessed
  • Is the Fund being managed by reduced-risk Fund Managers or Agents
    • Yes
    • No

Output

  • CDDProfile_AML
  • CDDProfile_AML rationale

AMLCDDProfileRelatedPartyFund data transform

  • Fund Risk is available on pyWorkParty(SubAccount).RiskProfile.CustomerRiskCode
  • eScreeningAssessment: Use a property IsScreeningPositive. The value can be retrieved by using following logic. The property can be used at any place where required, to evaluate the eScreening status. The logic of getting eScreening should be encapsulated in a different data transform so that it can be reused at other places.
    • Positive - if pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages is available, then it iterates over .pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages(1).ScreeningMatches() and checks for the MatchStatus property value by using the HasScreeningPostiveMatch when rule. If the value is Positive, then it sets the eScreeningAssessment value to Y.
    • Negative - if pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages is available, then it iterates over .pyWorkParty(Customer).ExternalProviderDataPage.eScreeningPages(1).ScreeningMatches() and checks for the MatchStatus property value by using the HasScreeningPostiveMatch when rule. If the value is false, then sets the eScreeningAssessment value to N.
  • EvaluateIfManagedByReducedRiskFM: This data transform is used to determine whether the party is managed by a reduced risk fund manager, and then sets the respective value to IsManagedByReducedRiskFM.
    • The value is available on .pyWorkParty(Customer).CDD_ProfileAML.
    • Yes - IF FM CDDProfile is either SDD or No DD
    • No - IF FM CDDProfile is other then SDD or No DD

Driving logic for orchestration (creation or skipping) of GKYC cases in DD stage

GKYC cases are skipped or spun off based on the AML CDD value AMLCDDProfile_SkipDueDiligence when rule.

AMLCDDProfile_SkipDueDiligence - This when rule invokes the AMLCDDProfile_IsExempt decision table based on the AML CDD profile value that is set to the customer.

The S_GlobalDueDiligence_Skip invokes AMLCDDProfile_SkipDueDiligence when rule, and the GKYC cases are spun off based on the return value.

Did you find this content helpful? YesNo

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Ready to crush complexity?

Experience the benefits of Pega Community when you log in.

We'd prefer it if you saw us at our best.

Pega.com is not optimized for Internet Explorer. For the optimal experience, please use:

Close Deprecation Notice
Contact us