- Countries
- 164
- Measurements
- 46,880
Historical internet
performance datasets
Quarterly, versioned country-level aggregates from 2024 onward, designed for comparison, verification, citation and reuse. Releases contain no IP addresses or individual test records.
Quarterly archive from 2024
Each row is an immutable release generated only from eligible measured country aggregates. Use the version and period when citing or comparing results.
- Countries
- 188
- Measurements
- 110,317
- Countries
- 157
- Measurements
- 32,994
- Countries
- 107
- Measurements
- 24,269
- Countries
- 128
- Measurements
- 90,109
- Countries
- 128
- Measurements
- 95,436
- Countries
- 119
- Measurements
- 226,609
- Countries
- 160
- Measurements
- 80,272
- Countries
- 179
- Measurements
- 314,726
- Countries
- 181
- Measurements
- 338,302
- Countries
- 189
- Measurements
- 753,181
Download release 2026-Q2
Licensed under Creative Commons Attribution 4.0 International. Suggested attribution: “Internet Analysis, Quarterly Internet Performance Dataset 2026-Q2, CC BY 4.0.” M-Lab measurement data is available under CC0.
Field definitions
country_codeISO-style country code attached to the aggregate.
country_nameHuman-readable country or territory name.
country_slugStable URL identifier used by Internet Analysis reports.
sample_countNumber of measurements represented by the available monthly aggregates.
download_mbpsSample-count-weighted mean of available monthly download aggregate values.
upload_mbpsSample-count-weighted mean of available monthly upload aggregate values.
latency_msSample-count-weighted mean of available monthly latency aggregate values.
loss_rate_pctSample-count-weighted mean of available monthly packet-loss aggregate values.
How quarterly values are calculated
For each country and metric, the release combines available monthly aggregate values using the represented monthly sample count as the weight:
quarterly_metric = Σ(monthly_metric × monthly_sample_count) / Σ(monthly_sample_count)Example: monthly download aggregates of 100 Mbps from 200 samples and 160 Mbps from 100 samples produce (100×200 + 160×100) / 300 = 120 Mbps. This is a weighted mean of monthly aggregates—not a recomputed median or percentile over raw tests.
Only measured country rows with a positive sample count are included. Synthetic estimates, city rows, raw IP addresses and individual measurements are excluded.
2026-Q2 · initial public release
Published: August 17, 2026
- Added immutable quarterly JSON and CSV snapshots.
- Added country-level download, upload, latency and loss aggregates.
- Excluded synthetic estimates and individual measurement records.
- Published SHA-256 checksums, CC BY 4.0 terms and an embeddable attributed SVG.
Future corrections will create a new version rather than silently replacing these files.