Need
In some data stewardship scenarios, users manually update a Golden Record attribute through the UI, creating an override on the consolidated value.
A common example is a status attribute such as "dataStewardApproval" configured with the survivorship override policy "Override - Until Consolidated Value Changes".
Typical sequence:
- A source record is loaded with a NULL value.
- A data steward edits the Golden Record and enters a value such as "Registration in progress".
- The source record is reloaded with the same original value (NULL).
At this point, some users expect the Golden Record value to revert back to NULL.
However, the override remains active and the Golden Record keeps the manually entered value.
The challenge is therefore: how can an override be automatically removed when the publisher reloads the same value, allowing the Golden Record to be updated through normal certification processing?
Summarized Solution
This behavior is expected when using the override policy "Override - Until Consolidated Value Changes".
The override is only removed when the consolidated value changes.
If the publisher reloads exactly the same value (for example NULL → NULL), xDM considers that the consolidated value has not changed and therefore keeps the override.
Since xDM does not currently provide a native "Keep Latest Value" override strategy, a common workaround is to:
- Create a technical timestamp attribute.
- Populate it during each integration (for example using UpdateDate).
- Add this attribute to the same survivorship group.
Keep the override policy set to "Override - Until Consolidated Value Changes".
This ensures that every reload changes at least one attribute in the survivorship group, causing the override to be lifted.
Detailed Solution
Understanding the Override Behavior
Consider the following sequence:
1. Initial Load:
- Publisher sends: dataStewardApproval = NULL
- Result: GD.dataStewardApproval = NULL
2. User Override
- A data steward edits the Golden Record: GD.dataStewardApproval = 'Registration in progress'
- At this point:
- An override is created.
- The source/master value remains unchanged.
3. Record Reload
- The publisher reloads the record with: dataStewardApproval = NULL
- The resulting transition is:
- Publisher: NULL → NULL
- Golden: 'Registration in progress'
- Since the consolidated value did not change, xDM considers that:
- Consolidated value = unchanged
- Therefore: override = maintained
- The Golden Record continues to display: Registration in progress
> This is the expected behavior of the override policy.
Why the Override Is Not Removed
The key point is understanding what xDM means by "Until Consolidated Value Changes".
The policy does not monitor whether a record is reloaded.
Instead, it monitors whether the consolidated value itself changes.
Examples:
| Publisher Sequence | Override Removed? |
| NULL → NULL | No |
| A → A | No |
| A → B | Yes |
| NULL → A | Yes |
| A → NULL | Yes |
In the reported use case, NULL → NULL = no change is detected.
> The override therefore remains active.
Understanding Survivorship Groups
Another important aspect is that survivorship is evaluated at the group level.
All attributes belonging to the same survivorship rule are considered together.
Therefore:
- If one attribute in the group changes,
- The consolidated value of the group is considered changed,
- The override is removed.
This behavior can be leveraged as a workaround.
Workaround: Simulate a "Keep Latest Value" Strategy
Although xDM does not currently provide a native "Keep Latest Value" override policy, you can achieve a similar result.
1. Create a technical attribute such as: LastReloadTimestamp or LastUpdateDate.
2. Use a post-consolidation enricher or another suitable mechanism to populate this attribute with a value that changes at every integration (example: UpdateDate).
3. Add the technical timestamp attribute to the same survivorship group as: dataStewardApproval.
4. Continue using "Override - Until Consolidated Value Changes".
Result
Every time the record is reloaded, LastReloadTimestamp changes.
Since at least one attribute in the survivorship group changes: Group consolidated value = changed.
The override is removed automatically and the publisher value can propagate again to the Golden Record.