Methodology · technical transparency

How we actually measure your connection

A speed test shouldn't be taken on trust. Here is all of it: which servers we measure against and why, how long each stage runs, how the final number is calculated and — above all — what this measurement cannot tell you. That last part is missing almost everywhere, and it is the part that matters when you are deciding whether to complain to your provider or replace your router.

In two lines: the test runs in your browser against Cloudflare's public infrastructure, takes about twenty seconds in total, and reports a stable figure calculated from percentiles rather than an average. We don't use servers hosted inside operator networks, because a server inside your provider's network returns prettier numbers that are less true.

1. What we measure against, and why

The test queries Cloudflare's global infrastructure, spread across hundreds of data centres. Cloudflare routes the request to the point of presence nearest your address, so you measure the path you actually travel when you browse.

Choosing neutral infrastructure is the single biggest difference from many popular tests, which measure against servers hosted inside the operator's own network. Those servers flatter the result because the traffic never leaves the provider: it is like timing a car downhill.

2. How long the test takes

About twenty seconds in total:

What is fixed is the time, not the volume of data: on a slow line less data moves, but the measurement lasts the same. That is why the test still works on a poor mobile connection, where fixed-volume tests often give up.

3. Ping and jitter

We make 12 consecutive requests with an empty payload and time each round trip. Then:

We also show a trimmed average, calculated after discarding the best and worst sample, as an indication of typical latency.

4. Download

For 8 seconds we download payloads of increasing size — 1, 5, 10, 25 and 50 MB — measuring instantaneous throughput as the data arrives, using performance.now(). Each sample is bytes received × 8 divided by elapsed time, in Mbps.

The final figure is the 90th percentile of the last 60% of samples. Two choices, two reasons:

This is a declared choice, not a neutral one: it returns a slightly more optimistic figure than the arithmetic mean of the same samples. We would rather say so than hide it.

5. Upload

Upload is the hard part, especially on mobile. For 9 seconds we send blocks of data with these safeguards:

The final figure is the 75th percentile of the last 60% of samples — more cautious than download, because upload is inherently noisier. If we cannot collect a single valid sample, upload is reported as not measured rather than estimated: a missing figure beats an invented one.

6. The limits of this measurement

This is the section almost no test publishes, and the most important one. A low result does not automatically mean your provider is cheating you: in most cases the bottleneck sits between the router and your device, not between the router and the world.

7. Comparing the result with your contract

The headline number you pay for is not the number to expect on screen. Contracts usually quote several different figures, and only one of them is enforceable:

To compare sensibly: measure over an Ethernet cable, with other devices idle, repeating the test at different times across several days, and write the results down. If you sit consistently below the minimum guaranteed speed, you have a case.

One caveat you are owed: this measurement has no legal standing. In the UK, providers signed up to Ofcom's Broadband Speeds Codes of Practice must give you a minimum guaranteed speed and, if they cannot fix a shortfall within 30 days, let you exit the contract without penalty. In the US, the FCC's broadband labels require providers to publish typical speeds. In both cases the formal process relies on the provider's own or the regulator's measurements — RealMbps helps you decide whether starting that process is worth it, and rules out the domestic causes first.

8. How accurate is it

Honestly: we have not run a systematic comparison between RealMbps and national regulators' tools, so we do not publish a certified margin of error. That figure would be made up.

What we can say is how the measurement behaves. Under controlled conditions — cable, nothing else running, repeated tests — results are repeatable and consistent; download is more stable than upload, which fluctuates more by nature; and the variation you see between runs almost always comes from the factors in section 6, not from the algorithm. If you run the test three times over a cable and get wildly different numbers, the cause is inside your network, and that is already useful information.

9. How to verify what we say

The test code is JavaScript loaded by your browser, and it is not obfuscated. You can read it:

If you find a discrepancy between this page and the code, that is our mistake: tell us and we will fix it. The sources behind the other data on the site are listed in data and sources.

10. What makes us different

Ready to see your numbers?

Now that you know how it works — and what it can't tell you — put it to the test.

Run the test →