When grouping your events by an event or user property, you may have noticed that some of your results have been sorted into a group titled '(none)'.
'(none)' in Amplitude represents a null value, but sometimes when you use Microscope and check on a user’s profile, you see that there is a user property value in the top panel. Why is the user being counted under ‘(none)’ when the have a value in their profile? Let’s walk through why this happens.
Amplitude is an event based platform, and all charts and cohorts query at the event level. This means that we are querying for event and user property values that were present at the time of the event. Our colleague John also recently posted a video explaining this concept:
This is different behavior from what you see at the top of a user’s profile (in the User Lookup section), where properties in the upper panel represent the most current user properties. In other words, they reflect the property values that were most recently updated. This is also true when downloading users to CSV from a chart.
For today, let’s use the user property “Subscription Type” as an example. In our example scenario, we have User A (let’s call them Billy), who has been a user of your product for a while now and has many events logged to Amplitude. On April 2nd, you add a subscription model to your product, and subsequently add the user property “Subscription Type” to your Amplitude instrumentation. Billy loves your product and subscribes on April 2nd, so their “Subscription Type” user property value updates to “Paid”. All of Billy’s events prior to April 2nd did not have a Subscription Type value, but from April 2nd forward, Billy’s events will now contain “Subscription Type” = “Paid” until that value is updated again.
Now let’s think about how Billy would appear on a chart. If you have an event segmentation chart that looks at events from March 15th to April 15th and group by “Subscription Type”, then Billy will be counted in both the “Paid” and the “(none)” groups. This is because Billy has performed some events prior to April 2nd where “Subscription Type” was not present and also performed events after April 2nd where “Subscription Type” = “Paid”. If you change the chart dates to look strictly at events that occurred after April 2nd, then Billy would only be counted in the “Paid” group.
Here’s an example from the Amplitude Demo where at the time of an event, the user did not have a UTM_Campaign value, but at the top of their profile, we can see the current UTM_Campaign value = Fall_push. (link to event)
Hope this helps explain why ‘(none)’ values appear in your charts! This FAQ regarding "none" values is also available in our Help Center and can be found here: https://help.amplitude.com/hc/en-us/articles/360016257391
As always, please let us know if you have any questions!