Introduction
In Web experimentation bucketing is used to assign users to different variations in an experiment. This is done in order to ensure consistent experiences provide statistically valid outcomes.
Bucketing is deterministic , it is sticky and it is scalable which works very well with dynamic websites and Single Page Apps.
In this blog, I am taking some examples from the utility sector such as billing, outages, service requests etc to simplify the understanding the concepts of bucketing. I hope this will be helpful for beginners to understand and apply these concept to real world use cases.
While the use cases that I am quoting from Utility sector is just a reference, the basic principles are the same and they can be applied across other verticals like retail, finance, health care etc.
Bucketing
Concept | Explanation | Use Case | Importance |
Deterministic | Same user always sees the same variation | A returning customer always sees the same version of the 'Pay Bill' page | It Ensures consistent experience across sessions/devices |
Sticky | Variation assignment will be changed only if traffic allocation changes | A customer in a 'Smart Meter Info' experiment will see other variations only if the traffic is reallocated | This prevents results being skewed because of rebucketing |
Hashing (MurmurHash) | The user's Unique ID for eg. UserID is hashed & used for variation assignment | User ID 12345 is mapped to variation B in the 'Outage Push Notification ' experiment | This has two benefits, one it uses randomization & the second it helps in consistency |
Impact of Traffic Allocation | Changing traffic allocation percentage can re-bucket users | Increasing traffic from 40% to 100% in an experiment for eg 'High Energy Usage Insights' may reassign users | Traffic changes should be done early in the experiment to avoid invalid outcomes |
Targeting Audience | Users must satisfy audience criteria to enter experiment | For e.g. Users with high-consumption will only see variation A of 'Energy Saving Tips' | Personalized experiments can be carried out |
Scalable | Works across large number of users and concurrent experiments | Utility website with 200K monthly users running 4 experiments | Supports enterprise-grade experimentation |
End to End Flow
Below is the process used by Optimizley to decide on which variation is displayed to which user :
Best Practices
- Set traffic allocation early in the experiment and avoid any changes in the middle of the experiment
- Use consistent splits unless restarting the experiment
- Ensure required data (e.g., user tier, region) is available at activation
Summary
Bucketing is a core of reliable experimentation in Optimizely. It provides various mechanisms to ensure the users are consistently assigned to variations , it ensures precise measurement of the behavior and outcomes of the experiment . We have used utility sector use cases to explain these concepts but the same principles apply to an dynamic website say for eg a retail website's checkout, product details page or even personalized dashboard page.
I hope this post for useful in some way in understanding the bucketing concept.
.png)
Comments
Post a Comment