Report
Throughput over time
Latency during the test
Distribution
Connection
What this connection handles
In real terms
History · this device only
How this test works & why it's accurate
Parallel connections, for real
Bulk transfers fan out across up to 8 shard hostnames (s1–s8.speed…), each served by a dedicated TLS certificate. Because the certificates don't overlap, your browser cannot coalesce them into one HTTP/2/3 connection — so the test genuinely opens many parallel connections, each with its own congestion window. That's how a modern line gets saturated; single-connection tests routinely under-report fast links.
Warm-up is off the record
TLS/QUIC handshakes, CORS preflights and the first second of ramp-up are excluded. Measurement starts at the first payload byte, and the reported number is the median of the best sustained stable window (≥3 s with rate variation < 12%) — what your line holds when it holds, with the peak and consistency figures showing the spread — falling back to a trimmed mean on volatile links.
Latency under load
While the pipes are saturated we keep pinging on a separate connection. The difference between idle and loaded latency is bufferbloat — the thing that makes calls stutter while someone's uploading. Graded A+ (<5 ms added) to F (>400 ms).
Edge-generated payloads + R2
Download payloads are generated at the Cloudflare data center nearest you, so you measure your access link — not a distant origin. A separate single-stream pull of a real file from R2 object storage (pre-warmed into the edge cache server-side, costing you no bandwidth) cross-checks the synthetic numbers against a real CDN download.
Isolated measurement thread
All byte-counting runs in a dedicated Web Worker so UI animation can never skew timing. Timings use high-resolution PerformanceResourceTiming (enabled cross-origin via Timing-Allow-Origin), and server processing time is subtracted using Server-Timing headers.
Privacy
Nothing about your test is stored server-side. Uploads are counted and discarded. History lives only in your browser's local storage.