To understand the user experience a speed test must measure the equilibrium throughput of the connection.
Saying the speed of a connection is 100Mpbs is like saying the speed limit of a freeway is 300 cars per hour. When planning a time critical journey, like catching a flight, knowing the rate of the road is of little use. Packets traveling across a network are all time-critical in determining network performance, so why accept a rate of 100Mbps as a valid assessment of network performance?
That being said bandwidth is still an important measure, it defines capacity. Having more lanes on the freeway doesn't make cars go faster, it just means more cars can utilize the freeway. Bandwidth is a business parameter.
To understand the user experience a speed test must measure the equilibrium throughput of the connection.
To understand equilibrium consider this...
There are two families at a hotel wanting to go to the airport to catch the same flight. One is a family of four and one is a family of eight.
The airport is an hour away based on the maximum speed of the road. The taxi carrying the family of four is able to do the maximum speed for the road and gets to the airport in one hour and they make the flight.
The taxi carrying the family of eight has a problem and can only travel at half the maximum speed of the road and arrives at the airport in two hours, so they miss the flight.
The performance measure of these two examples. Taxi one is four passengers in one hour. Taxi two is eight passengers in two hours. Both of these are therefore four passengers per hour, yet the family of eight had a terrible experience.
How does the user distinguish between the four passengers per hour that is good versus the four passengers per hour that is bad? This defines equilibrium. The only way to distinguish is knowing that the second taxi had eight passengers. The equilibrium SHOULD have been eight passengers per hour, but came in at four, which is bad.
Any test that does not strictly control and understand the precise payload that is being measured can never report an accurate result.
Equilibrium not only measures the speed but also measures that the data arrives on time, which allows the test to detect when a connection is slow.
Equilibrium therefore defines the true performance of the application using the connection and with it the user experience.
Nearly all speed tests fail because the test combines multiple sessions of data and divides by the time of the test to report the Mbps result. Seems reasonable except this approach implies that 10 cars doing 1mph delivers the same performance as 1 car doing 10mph. This is not true, consider driving 10 miles to catch a flight that departs in 2 hours, the 10mph vehicle arrives in 1 hour, the 1mph vehicles arrive in 10 hours. Supposedly the same result, 10 miles in one hour, is the user experience the same?