SpeedTestBot: Verify your average broadband speed

#IT, #Programming

After months of intermittent reliability and inconsistent performance from my broadband service I decided to do something about it and collect some data about how it actually performs. Enter SpeedTestBot “Everyone’s friendly broadband tester”.

I have a package from Virgin Media that provides “up to 70 Mbps” - broadband packages are usually advertised as “up to a value” and certainly not a fixed value. How close does it get, on average?

This package price has risen ~£10 in the last year and apparently the speed has increased ~20 Mbps. Am I getting value for money?


I hacked together some code quickly that can be run on a schedule to automatically test your broadband speed via speedtest.net and record and optionally tweet the daily average results. Every 24 hours it can calculate the mean average download, upload speeds and ping latency of your broadband service from your side of the router.

This is not new. There are instances of other people trying this, for example a Comcast customer in the US.

My experiences may not be representative of others problem because each environment is different so YMMV.


There are obviously a vast range of factors that can affect the performance, here are a few:

Local network issues:

WiFi is too variable, network congestion.

Action: These tests are run on a device with 100 Mbps ethernet connection to the router.


This is a bit of hardware and software built by humans - it suffers bugs and issues the same way as any other bit of tech does.

Action: Not much I can do here. The router is 4 years old - maybe this should be replaced?


The code allows Speedtest to auto select a host to test against, this is variable and so the distance to the host may have an impact.

Action: TODO Select from a list of preferred hosts.

Virgin media:

Over-subscription. I am not 100% if this is applicable to a fibre optic service but the speeds do noticably dip in the evenings.

Are all other variances down to broadband provider?


For me the average speed is not that important but the data and the range of results is interesting. Having an average speed of 100 Mbps over 24 hours is useless if it’s 150 Mbps overnight and 50 Mbps during the day when you need it. The number and regularity of outages is also concerning and something I’ve noticed when working from home.

Personally I want value for money from my service; I would rather have a constant but reliable speed and service rather than something that is occasionally fast but not stable. I am looking somewhere else for this now.

Broadband is a right and in today’s world it is a problem when it is not consistently available. Companies that provide an up to service should ensure that 1) the service is available and consistent 2) should at least be capable of reaching the speed advertised rather than this just being a theoretical limit 3) not over-subscribe to the extent everyone suffers.

March 8, 2016 at 09:01AM  41.572  60.22 4.77
March 8, 2016 at 10:01AM  40.54 59.58 4.19
March 8, 2016 at 11:00AM  44.849  59.48 4.72
March 8, 2016 at 12:00PM  41.223  59.17 4.63
March 8, 2016 at 01:00PM  35.698  54.87 4.73
March 8, 2016 at 02:00PM  43.164  53.04 4.76
March 8, 2016 at 03:00PM
March 8, 2016 at 04:01PM  42.907  58.87 4.75
March 8, 2016 at 05:01PM  46.268  56.31 0
March 8, 2016 at 06:01PM  45.713  57.68 4.75
March 8, 2016 at 07:01PM  50.07 24.27 4.53
March 8, 2016 at 08:00PM  56.53 35.35 4.51
March 8, 2016 at 09:01PM  55.871  12.95 3.93

I think 3pm was either a VirginMedia outage or speedtest.net, up to the reader to form that opinion - this is not an isolated occurance.

After a couple of weeks the mean average is ~40 Mbps download and ~3.9 upload.


Self explanatory, have a look at the README. It’s a bit of bash, python and APIs.

Warning use at your own risk. Review: accuracy