Skip to main content
SwiftSpeedTest
Speed TestQualityStabilityBufferbloatPlan auditCalculatorProvider testsDataSlow InternetGuides
Speed TestQualityStabilityBufferbloatPlan auditCalculatorProvider testsDataSlow InternetGuides

Methodology · Method 2.1

How SwiftSpeedTest measures your connection

SwiftSpeedTest is a browser-based capacity and responsiveness diagnostic. Method 2.1 adapts transfer size and concurrency, measures latency both at idle and under load, and reports the sample quality needed to interpret the result.

No account requiredLocal result historyConfidence disclosedLoaded latency included

Last updated July 25, 2026

On this page

MetricsProtocolStatisticsConfidencePrivacyLimitationsEditorial standardsCorrections

Scope

What the test measures

Every primary result describes traffic between this browser and one selected SwiftSpeedTest-compatible endpoint. It does not measure the capacity of the internet as a whole.

Download capacity

The usable bits received by the browser divided by transfer time, reported in megabits per second (Mbps).

Upload capacity

The browser-known payload bytes successfully sent and verified divided by transfer time, reported in Mbps. The endpoint's reported size is checked for consistency but is not treated as the source of truth.

Idle responsiveness

Round-trip latency while the connection is otherwise quiet, plus variation between consecutive retained probes.

Loaded responsiveness

Latency, jitter, and p95 tail latency sampled while download and upload traffic are actively using the connection.

Measurement protocol

The five stages of method 2.1

  1. 1

    Choose and hold a test endpoint

    The production endpoint set includes the nearest global Edge route plus pinned US East, Central, and West Edge routes. The nearest route is ready without background measurement traffic; choosing Auto compares the candidates and favors lower latency, steadier results, and better reachability. You can also select an endpoint manually. The chosen endpoint is held fixed for the measurement run so the result is not blended across servers.

  2. 2

    Measure idle latency

    After a warm-up request, the browser makes at least eight probes (12 by default) with varied spacing. At least five valid measurements are required. Reported latency subtracts the endpoint's declared processing time when that timing header is available.

  3. 3

    Run adaptive download batches

    The browser streams generated binary payloads with response compression disabled, verifies the received size, and measures from first received byte through completion. It reselects the next payload size from measured throughput while enforcing the active mode's time and byte budgets.

  4. 4

    Run adaptive upload batches

    The browser generates binary payloads locally and measures the known payload bytes for requests that complete successfully. It rejects a materially inconsistent endpoint size claim. Payloads are capped at 4 MiB per request in full-capacity mode and can step down to 256 KiB if a host rejects a larger body.

  5. 5

    Probe responsiveness under load

    While each transfer direction is active, separate application-level ping requests run about every 400 ms, up to 12 attempts per direction. At least three successful samples in both directions are required before loaded responsiveness is marked available.

Current protocol parameters

Automatic data mode
Low-data mode is selected when the browser requests reduced data, the user selects Mobile data or Hotspot, the connection hint is constrained, or no useful network hint is available. A manual override remains available before a run.
Low-data ceiling
Up to 48 MiB download plus 4 MiB upload payload (about 52 MiB total), with one request at a time, at most four batches per direction, 12 MiB maximum download requests, and 1 MiB maximum upload requests
Full-capacity ceiling
Up to 768 MiB download plus 64 MiB upload payload (about 832 MiB total), with one to three download requests and one or two upload requests in parallel, based on the browser connection hint
Download payload choices
1, 2, 6, 12, 25, 50, 75, or 100 MiB per request, limited by the active mode and remaining byte budget
Upload payload choices
1, 2, or 4 MiB per request in full-capacity mode; up to 1 MiB in low-data mode; 256 KiB rejection fallback
Transfer window
8-second target (4.5 seconds on a detected slow connection), with possible completion after two batches and 5.5 seconds (3 seconds on a slow connection)
Batch ceiling
Up to 8 batches per direction, or 4 on a detected slow connection
Loaded-latency probes
Up to 12 per direction, 2.5-second timeout, about 400 ms apart

Computation

How raw samples become reported values

Throughput

Each batch is measured as total valid bytes divided by the elapsed time from the earliest first received byte for downloads, or earliest send start for uploads, through the latest completion. This avoids counting connection setup as download payload time or adding parallel request durations as if they happened sequentially.

With at least three valid batches, the first batch is treated as warm-up and excluded. With at least five remaining samples, the implementation trims floor(15%) from each throughput tail. The reported Mbps is calculated from total retained bytes over total retained duration.

Latency, jitter, and p95

Latency uses a robust median. Samples far from the initial median are treated as outliers using a median-deviation threshold, provided enough samples remain. A 10% symmetric trim is applied when the retained set is large enough.

Jitter is the trimmed average absolute change between consecutive retained probes. Tail latency is the 95th percentile of all valid probes, including values that can be excluded from the central median.

Application-probe loss

The displayed loss percentage is failed idle and loaded HTTP latency probes divided by all attempted probes. It helps expose an unresponsive browser-to-endpoint path, but it must not be interpreted as raw packet loss across the network.

Result quality

Confidence, discarded samples, and grades

Download and upload confidence are tracked separately. A direction is marked full only when every attempted transfer request succeeds and passes validation; otherwise it is marked degraded. The interface and exports preserve successful and attempted request counts.

Discarded latency samples are not hidden. The result records retained and discarded counts for both loaded directions. SwiftSpeedTest's responsiveness grade considers the loaded increase above idle, p95 tail increase, worst loaded jitter, discarded-sample ratio, and application-probe loss.

Loaded responsiveness is marked unavailable when either transfer direction produces fewer than three successful latency samples. The app does not substitute idle latency or invent a loaded value in that case.

Data handling

Local history, exports, and share links

No account is required. Up to 100completed results, including any optional provider or location labels you enter, are stored in this browser's local storage. The compact Results panel shows the newest 8; the full history tracker can analyze all retained results. Clearing history removes the local list. CSV and JSON exports are assembled in the browser and downloaded as local files.

A share link encodes the result, diagnostic fields, method version, and optional context in its URL fragment. A fragment is not sent to SwiftSpeedTest's origin or CDN in the normal HTTP request, but the receiving page, browser history, extensions, recipients, and sharing intermediaries can read the complete link. It is not a hosted or cryptographically verified result. Anyone can edit those values, so the interface labels opened share links as unverified. Legacy query-string share links remain readable for compatibility.

Printable internet connection support reports are also assembled in the browser. They include measurement confidence, loaded response, deterministic next steps, and a controlled retest protocol while omitting provider, custom-location, and test-server identifiers. The files are not uploaded as hosted reports or represented as signed evidence.

Test traffic still reaches the selected endpoint, and ordinary request logs or configured analytics may process limited operational data. See the privacy policy for that broader scope.

Interpretation

Known limitations

  • The browser, device CPU and memory, power-saving mode, extensions, and other active applications can limit the measured rate.
  • Wi-Fi signal quality, router placement, radio interference, VPNs, background transfers, and other household traffic can change the result.
  • The path to the selected endpoint matters. Another test provider can use a different route, server location, capacity, and measurement protocol, so identical results are not expected.
  • The built-in US regional routes are geographically pinned within the same Vercel deployment. They improve path comparison, but they are not independently operated provider or deployment fault domains.
  • Application-probe loss is the percentage of SwiftSpeedTest HTTP latency probes that failed. It is not ICMP packet loss and is not a complete network-loss test.
  • A result is a snapshot of one browser-to-endpoint path. It is not a guarantee of ISP performance, a measurement of every destination, or a legal, regulatory, or certified bandwidth audit.
  • The test intentionally transfers data. Review the visible estimate before starting and use low-data mode on a limited or expensive plan. The estimate is a payload ceiling, not a billing guarantee; protocol overhead can add a little more.
  • The built-in production rate limit is a per-runtime-instance backstop. A multi-instance deployment still needs provider-level or distributed abuse controls for a global quota.

Use comparisons, not one number

Repeat the test under the same conditions, compare Ethernet with Wi-Fi, and test before and after a change. If the result will support a billing or service dispute, also collect measurements from another reputable protocol and follow your provider or regulator's required procedure.

Publishing policy

Editorial and source standards

SwiftSpeedTest is the accountable publisher. We do not invent named authors, expert reviewers, credentials, customer evidence, or testing claims. This is the standard for new and materially revised pages; older dated guides can lag and should be read as time-bound until refreshed.

Source selection

  • Prefer current primary sources: regulators, standards bodies, official product documentation, and provider support pages.
  • Use original datasets or published methodologies for market and population measurements, with date and scope visible.
  • Use reputable secondary reporting for context, not as a substitute for an available primary source.
  • Label internal calculations, planning baselines, estimates, and inferences so they are not mistaken for observed facts.

Review and freshness

  • Check material factual claims against the linked source and make the source discoverable near the claim or in a clearly labeled source section.
  • Record a meaningful modified date when evidence, methodology, recommendations, or conclusions change.
  • Version measurement and structured datasets when a change could alter interpretation or reproducibility.
  • Qualify or remove a claim when the available evidence does not support precise language.

Automation disclosure

Software scripts and AI-assisted tools may help inventory content, check links and structured data, organize source material, generate tests, or draft language. Automation is not treated as evidence or given an invented expert byline. Outside factual claims should remain traceable to an appropriate source, while SwiftSpeedTest remains responsible for what it publishes.

Accountability

Corrections and reproducible data

To report a factual error, broken source, unclear calculation, or measurement concern, include the page URL, the statement or behavior in question, and a primary source or reproducible test case when possible. Material corrections should be reflected in the page and its modified date rather than silently defended.

A public correction address will appear here only after a monitored mailbox is configured. Do not send sensitive information to guessed addresses for this domain.

The activity requirements calculator publishes its assumptions as versioned JSON and CSV. These are editorial planning baselines, not population measurements or provider guarantees; the calculator adds 25% headroom when combining simultaneous activities.

Open the calculatorVersion 2026.07.24 JSONCurrent CSV

Practical follow-up

Use the result for the task you care about

Interpret capacity and responsiveness together. Continue with the focused guides for gaming, streaming, work from home, or slow internet diagnosis.

© 2026 SwiftSpeedTest. All rights reserved.

Open dataShare resultsWebsite widgetSupport reportProvider testsSpeed historyPlan auditCompare resultsQuality testStability testBufferbloat testGaming testStreaming testWork-from-homeSlow internetWi-Fi vs EthernetGood speed resultsSpeed calculatorHow it worksGuidesRSS feedPrivacyTerms