Jump to content

Request for Middle Variance Formula/Algorithm


Recommended Posts


I've been having some issues with my internet service and have been doing a lot of speed testing, mainly using Bandwidth Place and Speedtest.


My primary issue is the stability of the connection for video streaming (YouTube/Hulu/Netflix...) where a "jittery", highly variable download is a good sign that video streams will choke and buffer frequently.


TMN looked like a good way to measure this because of the progress graphing, but the "middle variance" rating, which would be a great figure to judge the stability of the download just doesn't make sense: I can't figure out the algorithm that derives it.


I *have* read the two main forum posts that try to address this


Topic 31676: Middle Variance?

Topic 31961: What is "middle variance"? Is it better to be high or low?


From these I was able to figure out that your "Middle" speed value is the *average* of all the graphed speeds from 10%-90% download completion and can calculate that with Excel, but after hours looking at test data I plain had to give up on reproducing "middle variance".


The best concrete example is my test result




With an average of 3 MB/s but a huge peak of 12 MB/s, there is simply no way to find a factor/percentage equal to the stated middle variance of 165%, when the apparent variability is more like 400% relative to the average.


Once I saw this graph I stopped trying to figure this out and decided that the best way to understand what you're trying to convey is to see the actual formula that's used to compute this.



Link to comment
Share on other sites

Welcome to testmy.net.  Very smart question.


Hey, maybe it's not the right way, I'm always open to suggestions... I often put them in practice if they make sense.  It's what builds testmy.net.


TiP Summary - Minimum :: 1.19 Mbps | Middle :: 3 Mbps | Maximum :: 12.6 Mbps


round((12.6 - 1.19)/((12.6 + 1.19)/2)*100)


11.41/6.895*100 = 165%


Calculating the difference of the min and max then dividing by the average of the min and max then put into a percentage.


This isn't showing you how much your speed fluctuated just between the minimum and maximum... it's accounting for the average over the entire result.  So on average your speed fluctuated by 165%.


Hope this helps.  Do you agree with the logic?  Do you think it makes sense to do it that way?

Link to comment
Share on other sites

Note: Ideally you'll have a 0% ... meaning that your connection ran a flat line with little to no difference between readings.


My office connection is usually 0-10%.


TestMy.net Test ID : dJA5couwB

Here's an example of a faster connection performing worse for its variance.

TestMy.net Test ID : eJKLcTXG5

Personally, I prefer a connection that is stable and consistent over one that's faster and fluctuates.

Link to comment
Share on other sites

  • CA3LE featured this topic




I'm just glad to get the formula--trying to figure that out was driving me nuts.


My particular connection issue is very sensitive to throughput with deep troughs, so the progress graph alone is sufficient to tell if the connection is shaky. Speedtest's new progress graph isn't as informative as it used to be. so this is a better alternative.


As far as alternative measurements, I'll have to ponder that one.  Trying to measure the evenness of a data stream with a single figure is tricky and a lot of the variance examples in Topic 31676 didn't seem to be measured by the variance figure very well except for the ones that approached being truly steady, where the variance was < 30%.


Once it goes past 30%, visually assessing the progress graph is more useful. One concept might be to give the number of graph minimum inflections with average *low* values: a lot of bottoms near zero would probably indicate "buffer city" for YouTube, so perhaps a "low average" of some sort could be an alternative measure of stream quality.


Thanks again for clearing this up.

Link to comment
Share on other sites



An alternative or addition  to the present average % variance would be to show two things:


1. the max deviation from the average,


2. The average of the absolute value of all the deviations. 

Average (abs(Speed1 - Average), abs(Speed2 - Average),....abs(Speed19 - Average))


and maybe have a button for the option of displaying both 1. and 2. either in % or in Mbps.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...