Reltio Connect

 View Only

 How to do Survivorship based on specific values

  •   crosswalks
  • Survivorship
Michelle Popovits's profile image
Michelle Popovits posted 05-05-2021 12:14
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!
Prasad Satam's profile image
Reltio Employee Prasad Satam
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.
Gino Fortunato's profile image
Reltio Employee Gino Fortunato
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,
Jacques Lateo's profile image
Reltio Employee Jacques Lateo
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 !