The data and identity layer

Last updated October 30, 2026

The data and identity layer is where personalization most often fails. A model fed day-old segments cannot react to what a visitor is doing now, and when identity is fragmented the individual being personalized to is really several partial profiles.

Isotype, after Neurath and Arntz · colophon

Data freshness and identity matter more than which algorithm is used. A model fed day-old segments cannot react to what a visitor is doing right now, and when identity is fragmented, the individual being personalized to is often several partial profiles. This is where personalization quietly succeeds or fails, and it is the least glamorous part of the field. Most teams reach for a better model when the real problem is that the data reaching the decision is stale, split across profiles, or missing the consent it needs to be used at all.

This page covers the mechanics of that layer. The ethics and regulatory history of the data behind personalization, including consent as a matter of rights rather than plumbing, are on personalization and its critics.

The components, and how each fails

A personalization decision depends on a chain of components, and the chain is only as strong as its weakest link. Each one has a characteristic way of going wrong.

Component Role How it fails
Event collection Captures timestamped behavioral events from the web, apps, and servers Blockers and browser limits drop events; schemas drift between sources; bot traffic pollutes the stream
Customer profile A persistent record of attributes, computed traits, and consent state Traits go stale; sources conflict; one person ends up split across profiles
Identity resolution Links cookies, device IDs, emails, and logins into one person Over-merging (shared devices, household emails) and under-merging both distort decisions
Segments and audiences Saved definitions, either materialized or evaluated on demand Batch materialization lags behavior; segment definitions sprawl and overlap
Real-time event stream Makes current-session events available to decisions within seconds Costly to run; needs a serving path separate from analytics
Feature store Keeps training and serving data consistent, and serves fresh features Training and serving drift apart, so the model sees different data in production than in training
Decision and serving layer Evaluates rules or models per request inside a latency budget Timeouts fall back to a default; client-side rendering causes visible flicker
Consent and governance Stores and enforces consent and purpose across the chain Consent is captured at collection but not propagated to the point of activation

The pattern across the table is that failures are rarely about the sophistication of the decision. They are about data that is late, duplicated, inconsistent, or not allowed to be used.

Identity resolution

Personalization needs to know which events belong to the same person across devices, sessions, and channels. Identity resolution is the work of stitching those together, and it comes in two kinds. Deterministic resolution uses a shared key that both records carry, such as a login or a hashed email, and is reliable when that key is present. Probabilistic resolution infers that two records are the same person from signals like device, location, and behavior, and is used to fill the gaps where no shared key exists.

Both kinds fail in two opposite directions, and both are damaging. Over-merging joins records that belong to different people, which happens with shared devices and household email addresses, and it leaks one person’s behavior into another’s experience. Under-merging splits one person into several thin profiles, so the system personalizes to a fragment and none of the fragments supports a good decision. The felt result of poor identity resolution is the same either way: the experience does not seem to know the person, or seems to know the wrong one.

The batch versus real-time divide

The most consequential distinction in this layer is about when a decision is computed relative to the signal, not how quickly it is served. A decision precomputed overnight and served in milliseconds is still a batch decision.

  • Batch, often nightly, is cheap and rich in history. Its weakness is immediacy: a visitor who browsed running shoes ten minutes ago is still in yesterday’s segment.
  • Near-real-time, within minutes, is enough for abandoned-cart triggers and refreshed ad audiences.
  • In-session uses events from the current session. It is what search ranking, recommendations that follow the browse path, and anonymous visitors require.

Stale data undercuts personalization for four reasons, and they compound.

  1. Intent is often short-lived. The reason someone is on the site right now may not survive to tomorrow’s batch run.
  2. Anonymous and first-session visitors have nothing but in-session data. There is no history to fall back on, so a system that cannot act on the current session cannot personalize for them at all.
  3. Staleness causes visible mistakes. Recommending an item the person just bought, or offering a discount after they have already converted, reads as a system that is not paying attention.
  4. Sync delays make channels disagree. When the profile updates at different speeds in different tools, email, the site, and ads can each act on a different version of the same customer.

Warehouse-native architectures are strongest at batch decisions that draw on deep history, and they have had to add streaming and caching to serve in-session use. The honest framing is that freshness is a design choice with real costs, not a feature that is simply on or off, and that many programs personalize on data that is older than the behavior they are trying to respond to.

Feature stores

A feature store exists to solve a specific and common failure: the data used to train a model drifting apart from the data used to serve it in production, which is called training and serving skew. The feature store keeps the two consistent and serves fresh features within a latency budget. Feature stores came out of platform machine-learning teams rather than marketing, and they are the clearest example of personalization infrastructure owned by data science. That ownership matters, because it is part of why a single company often runs several unrelated personalization systems that disagree with each other: the data team, the product team, and the marketing team each built their own.

Consent is not only an ethical and legal question; it is a technical dependency of the decision. A system can only read the data it is permitted to read, so consent state is an input to personalization in the same way a behavioral event is. The characteristic failure here is subtle: consent is captured correctly at the point of collection and then not propagated downstream, so a later step activates data the person did not agree to let it use. Getting the banner right is not the same as honoring the choice everywhere the data flows.

Governance is increasingly moving into the data platform itself, expressed as access policies, purpose tags, and consent-aware audiences rather than as a separate layer bolted on at the end. The direction of travel is to shrink the surface that has to be governed by deciding on the data where it already lives, instead of copying it into several tools that each have to be governed separately. The map of the tools that make up this layer, from customer data platforms to feature stores to clean rooms, is on the personalization landscape. Why the correctness of all this is only as trustworthy as the measurement behind it is on how personalization is measured, and the techniques that consume this data are on how personalization works.

Common questions

Why does data freshness matter for personalization?
Because the decision is only as good as what the system knows at the moment it decides. A model fed day-old segments cannot react to what a visitor is doing right now, so in-session freshness often matters more than which algorithm is used.
What is identity resolution?
The work of deciding which events and profiles belong to the same person across devices, sessions, and channels. Deterministic resolution uses shared keys like a login; probabilistic resolution infers links. When it is wrong, the individual being personalized to is really several partial profiles.
What is the difference between batch and in-session data?
It is about when a decision is computed relative to the signal, not how fast it is served. Batch data is precomputed on a schedule, so a visitor who browsed ten minutes ago is still in yesterday's segment. In-session data reflects what the person is doing right now, which anonymous and first-time visitors have nothing but.
What is a feature store?
A component that keeps the data used to train a model consistent with the data used to serve it in production, and serves fresh features within a latency budget. It came out of platform machine-learning teams and is usually owned by data science rather than marketing.