Adobe Experience Platform: Understanding Dataset Precedence vs Timestamp Merge Policies via Streaming and Batch Ingestion | Community
Skip to main content
New Member
July 7, 2026

Adobe Experience Platform: Understanding Dataset Precedence vs Timestamp Merge Policies via Streaming and Batch Ingestion

  • July 7, 2026
  • 0 replies
  • 15 views

 The Problem Statement

When the same customer profile is ingested to multiple Profile-enabled datasets, how does Adobe Experience Platform (AEP) determine which attribute values appear in the Real-Time Customer Profile?

More specifically,

  • Does Dataset Precedence behave differently from Timestamp Ordered?
  • Does Batch or Streaming ingestion affect the final profile?

Common Understanding of Merge Policies

      Most users assume that Timestamp Ordered replaces the entire customer profile with the latest ingested record, while Dataset Precedence always uses all values from the higher-priority dataset. However, AEP merge policies don't work at the record level. Instead, they evaluate individual attributes based on the configured merge policy, often producing results that differ from these common expectations.

Let's validate this with a simple test.

 

To understand this behaviour, I created the following setup in Adobe Experience Platform.

  • 2 XDM Individual Profile Schemas with same set of attributes
    • Policy Test Schema 1
    • Policy Test Schema 2
    • membershipID is the identity in both schemas
  • 2 Profile-enabled Datasets
    • Policy Test Dataset 1 (based on Schema 1)
    • Policy Test Dataset 2 (based on Schema 2)
  • 2 Merge Policies
    • Dataset Precedence (Dataset 1 configured with higher priority)
    • Timestamp Ordered (Latest Timestamp)

I then ingested the same customer (Membership ID: 777) into both datasets using Streaming Ingestion and repeated the same scenario using Batch Ingestion to compare the results.

 

First Record ingestion into “Policy Test Dataset 1”

 

Since this is the first record ingestion both merge policy gives the same output in profile store.

 

Second Record Ingestion into “Policy Test Dataset 2”

The second record introduces conflicting attribute values. Under the Dataset Precedence merge policy, attributes from the higher-priority dataset are retained—Alex (First Name), Jones (Last Name), and Mr (Title)—while Birthday (1st Jan) is populated from the lower-priority dataset since no value exists in the higher-priority dataset. In contrast, the Timestamp Ordered merge policy updates attributes using the most recently ingested values, replacing Alex with James, Jones with Williamson, and updating Birthday to 1st Jan.

Third Record Ingestion into “Policy Test Dataset 1”

The third record is a partial profile update containing only the Last Name. Under the Dataset Precedence merge policy, Dataset 1 contributes the updated value (Smith), while the remaining attributes (James as First Name and 1st Jan as Birthday) are sourced from Dataset 2 since no corresponding values exist in Dataset 1. In contrast, the Timestamp Ordered merge policy updates only the available attribute (Last Name) and retains the most recent values for the remaining attributes, resulting in James (First Name) and 1st Jan (Birthday). This attribute-level merging ensures the Profile Store maintains the most complete and accurate customer profile.

Summary

Profile store update the records at the attribute level rather than the record level. When a record contains only partial updates, AEP retrieves missing attributes from previous applicable records, ensuring the Profile Store always reflects the most complete and accurate customer profile.

 

I'm also planning to publish a future blog on how Dataset Upsert works in conjunction with Merge Policies in Adobe Experience Platform. Stay tuned!


- by Peniel

www.linkedin.com/in/peniel-lawrence-621642253