Effective March 10, 2026, we will stop creating flag and experiment user properties ({flag-key} = assigned_variant) on the Assignment event for remote evaluation.
Customers using remote evaluation for flags or experiments are required to log an Amplitude exposure event.
Event properties on the Assignment event will remain unchanged. Local evaluation will remain unchanged.
This change ensures experiment analysis using the user properties is accurate and based only on actual user exposure.
What Is Changing
Before (Current Behavior)
When a user is assigned a variant during remote evaluation:
- An Assignment event is generated (for debugging)
- A user property is created:
{flag-key} = assigned_variant
- Assignment event properties are set:
{flag-key}.variant = assigned_variant
{flag-key}.details = assignment details
⚠️ Important
At this stage, the user has not been exposed to the experiment.
They may never see the experiment at all.
After (New Behavior)
- No flag or experiment user property will be created on the Assignment event
- The Assignment event properties will remain unchanged and will continue to be created as they are today.
- The Assignment event remains available for debugging only
- The flag or experiment user property will be created only on the Exposure event
When Exposure Actually Happens
A user is considered exposed only when flag or experiment logic affects the user experience.
At exposure time:
- An Exposure event is recorded
- The experiment user property is created:
{flag-key} = assigned_variant
- All subsequent events include this user property. Only these events are valid for experiment analysis.
How Experiment Analysis Works
Our analysis is based on:
- ✅ Exposure events
- ✅ Metric events occurring after exposure
- ✅ User properties created at exposure time
We do not use:
- ❌ Assignment events
- ❌ User properties created on Assignment events
- ❌ Events between Assignment and Exposure
Why This Change Is Necessary
Currently, using user properties for the experiment analysis without attributing to the exposure event can produce incorrect results.
Example
- User is assigned Variant B (Assignment event)
- User property {flag-key} = B is set
- User performs actions
- User is never exposed to the experiment
If analysis relies only on the user property:
- The user is incorrectly counted in Variant B
- Their actions are wrongly attributed to the experiment
This leads to misleading results.
Benefits of the New Behavior
After this change:
- ✅ Flag and Experiment user property always means actual exposure
- ✅ User properties accurately reflect flag or experiment participation
- ✅ Analysis using user properties is correct and consistent
A Note on Custom Exposure
After this change, customers can continue to use Custom Exposure events that is utilized to define when users are eligible to have their behavior measured in the experiment analysis.
As a new requirement, customers must log an Amplitude Exposure event. This event needs to be sequenced before the Custom Exposure for it to work effectively. The Amplitude Exposure will create the user property which will be utilized by the Custom Exposure event.
As long as an Amplitude Exposure event is logged, there will be no functional change when using Custom Exposures.
Key Takeaway
A flag or experiment user property should indicate one thing only: the user was exposed to the flag or experiment.
Assignment events remain for debugging and should not be used for experiment analysis.
If you would like more time to implement the required changes, please reach out to the Support.