Methodology

What this speed test actually measures

SatSpeedCheck measures the performance of this device, through its current connection, to Cloudflare's speed-test endpoints. It does not read internal data from a Starlink dish, satellite, router, or network gateway.

The three measurements

Download

The browser requests a large payload from Cloudflare's /__down endpoint. It reads whatever arrives before an approximately 8-second cap, then calculates throughput from the bytes received and elapsed time. The result is time-bounded, not a claim that a fixed-size file always completes.

Upload

The browser repeatedly sends 2 MB blocks with POST requests to Cloudflare's /__up endpoint until the approximately 8-second upload limit. Throughput uses the bytes successfully sent during that elapsed time.

HTTP latency

The browser makes 5 small requests to /__down and reports the median round-trip time. This is HTTP request latency, not ICMP ping, and it includes the path between the device and Cloudflare.

Loaded latency

After the three primary measurements succeed, the browser can run small HTTP probes to Cloudflare's /__down endpoint while a separate Cloudflare download is active and report their median latency. This is HTTP request latency under download load, not ICMP ping; too few successful probes are shown as Not measured.

Missing and interrupted measurements

A request that does not return a usable measurement is shown as Not measured or, not as zero. A cancelled test or a test interrupted by a network failure does not create a successful history record. Only a run with download, upload, and latency measurements is saved.

Storage and personal baselines

Completed results are stored only in this browser under the localStorage key satspeedcheck:history:v2 (older v1 records are retained and marked as legacy). Repeat tests under comparable conditions to build your own 7-day or 30-day baseline. Results do not sync across devices, browsers, or cleared browser storage.

Limits on interpretation

This test does not measure packet loss: it has no UDP or WebRTC packet-loss measurement. It also cannot isolate dish obstruction, satellite-cell congestion, Wi-Fi conditions, device limits, weather, or routing from one run. A single result can justify further investigation, but it is not proof of obstruction or congestion.