Reltio Connect

 View Only
  • 1.  How to do Survivorship based on specific values

    Posted 05-05-2021 12:07
    Hi folks, I'm new to Reltio and this is my first post.  I'm gearing up to make my first changes to our Reltio system that was implemented by Reltio professional services (Joel Snipes) who did a great job!

    I want to control the survivorship of a specific attribute on an entity based on specific rules with regard to it's values.

    In this case a Party (Individual/Organization) has a Status (A, I,D).  Of the various crosswalks different ones could have different values.  So I have a set of rules like so...
    1) If any of the crosswalks are 'D' than make that survive..... otherwise...
    2) If any of the crosswalks have 'A' (but no 'D') let that one survive, otherwise
    3) Choose recency

    I'm looking for guidance or even similar examples that follow a similar pattern that I can learn from in order to implement this.  So far I haven't been able to find something obvious in the doc portal that can do this.  TIA!


  • 2.  RE: How to do Survivorship based on specific values

    Founding Member
    Posted 05-05-2021 15:29

    Michelle,

    I am not sure but I think the Max Value survivorship style might work for you since it would consider D to be the maximum value.

    Notice below where it says that for a string the min value is based on lexicographical order. Since D is greater than A, "D" should survive when A and D are both present.

    MaxValue Rule

    This rule selects the maximum value held in the attribute. The maximum value is defined as follows for different data types:
    • Numeric: MaxValue is the largest numeric value.
    • Date: MaxValue is the maximum timestamp value.
    • Boolean: True is the MaxValue
    • String: MaxValue is based on the lexicographical sort order of the strings.


  • 3.  RE: How to do Survivorship based on specific values

    Founding Member
    Posted 05-05-2021 15:34
    Michelle,

    I am not sure if this is an option for you but perhaps you represent your statuses as numerical values using RDM and then use the Min or Max survivorship style to calculate based on the logic you have defined.


  • 4.  RE: How to do Survivorship based on specific values

    Reltio Employee
    Posted 05-05-2021 17:46
    Hello Michelle,

    Thank you for posting this question, dynamic survivorship based on an attribute value is an interesting topic. Reltio platform currently doesn't support dynamic survivorship, however, this feature is on the roadmap. Please reach out to the CSM to know details around the timeline of the release.


  • 5.  RE: How to do Survivorship based on specific values

    Reltio Employee
    Posted 05-06-2021 09:31
    Hi Michelle,

    Sometimes you can get the same effect using a filter with your survivorship rules.  Check out Survivorship Rules Filtering on our docs site, for information on filters and in particular example 1 in the documentation.  Personally, I find the example clearer.  It may still not be suitable in your case, as it will typically depend on some other details in your data.

    HTH,


  • 6.  RE: How to do Survivorship based on specific values

    Reltio Employee
    Posted 05-14-2021 06:15
    Hi Michelle,

    If I am following your requirement, I think it can be solved by introducing an additional attribute into your data model, and hinging your survivorship rule off of it.

    First, you need to rationalize your status codes into some value that can be sorted. For example: D = 2, A = 1
    Then,
    1. Add a new attribute to your data model, say 'Status Rank'.
    2. Update your data set with Status Rank as a one-time activity. For on-going loads, add this logic to the integration layer, or consider double mapping it and using RDM to transcode to the rationalized number, for example.
    3. Update your survivorship rules to be something like...
      {
        "attribute": "configuration/entityTypes/Individual/attributes/statusRank",
        "survivorshipStrategy": "MaxValue"
      },
      {
        "attribute": "configuration/entityTypes/Individual/attributes/status",
        "primaryAttributeUri": "configuration/entityTypes/Individual/attributes/statusRank",
        "fallbackStrategies": [
          {
            "attribute": "configuration/entityTypes/Individual/attributes/status",
            "survivorshipStrategy": "LUD"
          }
        ],
        "fallbackUsingCriteria": "ZERO_OR_MORE_THAN_ONE",
        "survivorshipStrategy": "OtherAttributeWinnerCrosswalk"
      }

      If you don't want code I to contribute to survivorship unless it is part of the fallback, don't rationalize and load in values for that code... so that statusRank can have no survived value if A or D are not present. This is intended... so the fallback rule kicks in, which then selects LUD for status.

    The only caveat to this is that if you have ZERO or MORE THAN ONE surviving statusRank value, the fallback will kick in. Unfortunately we do not exclusively support a ZERO fallback strategy yet, although I have raised an Idea for it  here. Please review the idea and don't forget to vote !

    Let me know if this helps you at all !