95th Percentile

Computing the 95th percentile from the accumulated 5-minute data transfer samples provides an effective means of evaluating the regular, sustained utilization of your connection. The 95th percentile calculation is a widely used mathematical algorithm--most large service providers (UUNet, Sprint, Cable & Wireless, etc.) use this method to calculate bills for larger circuits (e.g. Ethernet, T3).

HNS computes the 95th percentile based on the inbound and outbound data transfer measured at your connection point at 5 minute intervals over a one month period. The 95th percentile value is computed separately on your accumulated inbound and outbound data transfer sample sets, respectively. The higher of the two computed values becomes the 95th percentile value used on your monthly bill.

To compute the 95th percentile value on a data set, the following algorithm is used: sort the data set by value from higest to lowest, discard the highest 5% of the sorted samples, and the next highest sample becomes the 95th percentile value for the data set. For example, suppose that a month is 1 hour, 40 minutes in length. Over the course of this short month, we gathered the following data sets for the inbound and outbound traffic (all numbers in Mb/s):

inbound = [0.139 0.653 0.201 0.116 0.084 0.032 0.047 0.185 0.198 0.203 0.276 0.370 0.971 0.233 0.218 0.182 0.169 0.126 0.131 0.157]
outbound = [1.347 1.435 1.229 0.523 0.438 0.231 0.347 0.689 0.940 1.248 1.385 1.427 3.988 1.265 1.221 1.013 0.992 0.874 0.896 1.002]

After sorting, we obtain:

sorted_in = [0.971 0.653 0.370 0.276 0.233 0.218 0.203 0.201 0.198 0.185 0.182 0.169 0.157 0.139 0.131 0.126 0.116 0.084 0.047 0.032]
sorted_out = [3.988 1.435 1.427 1.385 1.347 1.265 1.248 1.229 1.221 1.013 1.002 0.992 0.940 0.896 0.874 0.689 0.523 0.438 0.347 0.231]

Each sample set contains 20 samples--5% of 20 is 1, so discarding the top 5% means we must discard the top sample from each data set. We are now left with:

remaining_in = [0.653 0.370 0.276 0.233 0.218 0.203 0.201 0.198 0.185 0.182 0.169 0.157 0.139 0.131 0.126 0.116 0.084 0.047 0.032]
remaining_out = [1.435 1.427 1.385 1.347 1.265 1.248 1.229 1.221 1.013 1.002 0.992 0.940 0.896 0.874 0.689 0.523 0.438 0.347 0.231]

The highest sample from each remaining data set is the 95th percentile value for the originating set. So, for each set, above, we obtain the following values:

95th_in = 0.653 Mb/s
95th_out = 1.435 Mb/s

The higher of the two computed 95th percentile values becomes the final 95th percentile value used for billing:

95th percentile = 1.435 Mb/s