In our last post we exposed the likelihood of users abandoning the operation due to poor performance. The correlation between the abandonment rate and the operation latency was clear. Two-fold increase in response time makes the user 63% more likely to abandon the operation.
This week we look at the same data set from the different angle. The goal is to understand how do applications behave in regards of latency. For those unfamiliar with the term: latency is the time a particular operation takes to complete from the start to finish. Examples of such operations include authentication, making a bank transfer or checking out a shopping cart.
As we exposed last week, poor performance is definitely contributing towards poor user experience. To see how the real-world applications actually perform, we analyzed the latency across applications monitored by Plumbr. The results are presented in the following table:
|Duration||% of transactions|
|Under 2 seconds||91.53%|
|2 – 4 seconds||2.78%|
|4 – 8 seconds||1.79%|
|8 – 16 seconds||1.41%|
|16 – 32 seconds||0.59%|
|More than 32 seconds||1.89%|
The distribution is not too surprising – vast majority of transactions complete in under 2 seconds with less and less transactions in each following bucket.
But as averages can be deceiving, let us drill deeper by analyzing the distribution of the latency. For this let us examine the duration of 90%, 99% and 99.9% of transactions across the applications:
To interpret the data above, let us look at the following examples:
- For 78% applications, 90% of the transactions complete faster than 2 seconds.
- For 66% of the applications, 99% of the transactions complete under 8 seconds.
- For 52% of the applications, 99.9% of the transactions complete under 16 seconds.
Having this information helps to understand why looking at average and median response times can be really deceiving. The worst case latencies will not stand out in such metrics, leaving you in the dark for the users suffering the most.
The data becomes even more interesting if we couple it with the transaction abandoning likelihood:
|Duration of a transaction||% of total transactions||Likelihood to abandon||Abandoning rate|
|< 2 seconds||91.53%||3.15%||2.88%|
|2 – 4 seconds||2.78%||6.78%||0.19%|
|4 – 8 seconds||1.79%||9.84%||0.18%|
|8 – 16 seconds||1.41%||14.07%||0.20%|
|16 – 32 seconds||0.59%||18.37%||0.11%|
|> 32 seconds||1.89%||33.91%||0.64%|
|Total abandoning rate:||4.19%|
The data above couples abandoning rate with the data on the actual latency of the application. As a result we see that for a typical web application, 4.2% of the transactions are abandoned.
The data represents five billion user interactions with 500 different web-based applications. User interactions were monitored by Plumbr, capturing the event duration & result. Based on these events, we aggregated, cleaned and clustered the data. In the following posts we are going to expose the dataset itself along with a more in-depth analysis. To stay tuned, subscribe to our Twitter or RSS feeds.