Skip to main content

I used to be able to charts segmented on user properties. For the past year this feature seems to be broken.

Reproduction steps:

  1. Create a user property called test with values either a or b assigned to all new users
  2. Create a chart on amplitude with first open and conversion event
  3. Segment on users with the property test
  4. 99% of users will have a property value of [none] even though every user should have a property value making the chart useless

How I know this is a bug:

  1. Segment on users with test value equal to [none]
  2. Select the activation event > select a random user > check the test prop > has a value every time

Here is a video where you can see exactly that:

 

Hello @buchereli! Thank you for the question. Could you please reapply the video, if possible, as a link? Thank you. Are you seeing the values for the user property on the profile but not on the events?


Hello @buchereli! Thank you for the question. Could you please reapply the video, if possible, as a link? Thank you. Are you seeing the values for the user property on the profile but not on the events?

https://www.loom.com/share/806848a9eead46db9c8fbfbed0fe5c5a


Thank you for the video @buchereli.

Amplitude is an event-based analytics platform, and all charts and cohorts query at the event level. Charts will return the event property value at the time of an event.

The custom user properties attached to your users' events will reflect the user property values present at the time of the event. Events and users will be sorted according to the property value that was applied at the time of the event.

If we were to scroll down the event stream, we will see that there was a point the userType value was set to none during the same time frame. So this user would appear in both the “none” and “business” buckets.


Thank you for the video @buchereli.

Amplitude is an event-based analytics platform, and all charts and cohorts query at the event level. Charts will return the event property value at the time of an event.

The custom user properties attached to your users' events will reflect the user property values present at the time of the event. Events and users will be sorted according to the property value that was applied at the time of the event.

If we were to scroll down the event stream, we will see that there was a point the userType value was set to none during the same time frame. So this user would appear in both the “none” and “business” buckets.

I see. We this is definitely quite confusing and should probably be made clear somewhere as it is not intuitive.
 

This presents a large issue for us trying to segment funnels that deal with new users. For example looking at an onboarding funnel and how business vs personal users perform or teams vs individuals. The first event will be new user or start of onboarding event but we don’t add the user prop until much later which means the segmentation will be useless.

 

Any solutions or workarounds for this? Seems like a common use case.


@buchereli It can be a bit confusing, but we do have a help article that goes into more details regarding ‘none’ values here. In order to not have the ‘none’ values, you will need to make sure that the user property you are looking at is set by the time of the event you are looking at.


@buchereli It can be a bit confusing, but we do have a help article that goes into more details regarding ‘none’ values here. In order to not have the ‘none’ values, you will need to make sure that the user property you are looking at is set by the time of the event you are looking at.

It seems like this is making a large number of common use cases for onboarding analytics impossible.

For example we have an onboarding flow after which we ask the user what industry they are in and assign that to a user prop. There is no way to know how users from different industries interacted with onboarding because we don’t collect the industry property until after onboarding is completed.

In certain cases we could bring the user prop questions forward but it seems backwards to be making product design choices to allow analytics to function properly while making UX worse.

I understand from the help article that you want to allow the property to change without effecting old events for example user changing cities. Why not allow us to pick wether we want to segment by users who currently have a property or by the property the user had when they performed the event.


Reply