{
    "schema_version": "1.0",
    "report_version": "2026-04",
    "generated_at": "2026-09-04T14:21:57+00:00",
    "measurement_window_start": "2026-04-01T00:00:00+00:00",
    "measurement_window_end": "2026-05-01T00:00:00+00:00",
    "timezone": "UTC",
    "measurement_engine": "LibreSpeed",
    "total_valid_tests": 1866,
    "total_excluded_tests": 102,
    "minimum_country_sample_size": 30,
    "minimum_isp_sample_size": 20,
    "methodology": {
        "percentile_method": "linear_interpolation",
        "exclusions": [
            "Rows with a missing, empty, or failed ISP lookup are excluded.",
            "A zero value for a given metric (download, upload, or ping) excludes that row from that metric's statistics only \u2014 it does not disqualify the row's other valid metrics.",
            "Country and ISP breakdowns additionally require a minimum sample size (see minimum_country_sample_size / minimum_isp_sample_size) before being published, to avoid misleadingly precise statistics from a handful of tests."
        ],
        "country_code_caveat": "Country and ISP (provider) attribution are self-reported by the client at test time via a third-party IP-lookup service, not independently verified. These are measurements observed by internetspeedtest.net, not a statistically representative national broadband sample."
    },
    "global": {
        "download": {
            "sample_count": 1826,
            "average": 212.67,
            "median": 100.48,
            "p25": 34.39,
            "p75": 302.83
        },
        "upload": {
            "sample_count": 1754,
            "average": 113.32,
            "median": 41.91,
            "p25": 16.86,
            "p75": 114.95
        },
        "ping": {
            "sample_count": 1864,
            "average": 67.48,
            "median": 46,
            "p25": 26,
            "p75": 79
        }
    },
    "countries": [
        {
            "code": "US",
            "sample_count": 787,
            "download": {
                "sample_count": 780,
                "average": 278.57,
                "median": 204.07,
                "p25": 72.84,
                "p75": 385.86
            },
            "upload": {
                "sample_count": 746,
                "average": 124.93,
                "median": 43.26,
                "p25": 22.44,
                "p75": 141.09
            },
            "ping": {
                "sample_count": 787,
                "average": 39.41,
                "median": 30,
                "p25": 21,
                "p75": 47.5
            }
        },
        {
            "code": "ID",
            "sample_count": 106,
            "download": {
                "sample_count": 101,
                "average": 34.1,
                "median": 19.98,
                "p25": 8.21,
                "p75": 41.09
            },
            "upload": {
                "sample_count": 99,
                "average": 28.03,
                "median": 16.09,
                "p25": 7.54,
                "p75": 33.79
            },
            "ping": {
                "sample_count": 106,
                "average": 152.11,
                "median": 119.5,
                "p25": 83,
                "p75": 217
            }
        },
        {
            "code": "FR",
            "sample_count": 101,
            "download": {
                "sample_count": 101,
                "average": 372.69,
                "median": 164.43,
                "p25": 32.84,
                "p75": 539.57
            },
            "upload": {
                "sample_count": 97,
                "average": 236.11,
                "median": 103.24,
                "p25": 33.38,
                "p75": 351.36
            },
            "ping": {
                "sample_count": 101,
                "average": 33.28,
                "median": 28,
                "p25": 20,
                "p75": 34
            }
        },
        {
            "code": "MX",
            "sample_count": 94,
            "download": {
                "sample_count": 91,
                "average": 131.03,
                "median": 83.6,
                "p25": 26.94,
                "p75": 142.35
            },
            "upload": {
                "sample_count": 91,
                "average": 83.78,
                "median": 49.3,
                "p25": 12.73,
                "p75": 102.47
            },
            "ping": {
                "sample_count": 94,
                "average": 66,
                "median": 60.5,
                "p25": 54,
                "p75": 76.75
            }
        },
        {
            "code": "CA",
            "sample_count": 80,
            "download": {
                "sample_count": 76,
                "average": 223.89,
                "median": 107.07,
                "p25": 48.63,
                "p75": 264.39
            },
            "upload": {
                "sample_count": 73,
                "average": 156.73,
                "median": 34.97,
                "p25": 14.02,
                "p75": 161.4
            },
            "ping": {
                "sample_count": 80,
                "average": 42.79,
                "median": 39,
                "p25": 27.75,
                "p75": 53
            }
        },
        {
            "code": "PE",
            "sample_count": 44,
            "download": {
                "sample_count": 44,
                "average": 183.73,
                "median": 95.93,
                "p25": 31.89,
                "p75": 247.72
            },
            "upload": {
                "sample_count": 43,
                "average": 89.09,
                "median": 86.21,
                "p25": 23.04,
                "p75": 100.55
            },
            "ping": {
                "sample_count": 44,
                "average": 101.93,
                "median": 99.5,
                "p25": 88.75,
                "p75": 105.25
            }
        },
        {
            "code": "ES",
            "sample_count": 42,
            "download": {
                "sample_count": 42,
                "average": 172.64,
                "median": 81.49,
                "p25": 34.31,
                "p75": 285.71
            },
            "upload": {
                "sample_count": 41,
                "average": 135.9,
                "median": 64.67,
                "p25": 33.26,
                "p75": 248.15
            },
            "ping": {
                "sample_count": 42,
                "average": 58.05,
                "median": 47.5,
                "p25": 40.5,
                "p75": 70.75
            }
        },
        {
            "code": "GB",
            "sample_count": 36,
            "download": {
                "sample_count": 36,
                "average": 159.56,
                "median": 108.11,
                "p25": 72.62,
                "p75": 198.58
            },
            "upload": {
                "sample_count": 35,
                "average": 86.47,
                "median": 29.72,
                "p25": 17.07,
                "p75": 73.1
            },
            "ping": {
                "sample_count": 36,
                "average": 23.58,
                "median": 17.5,
                "p25": 11,
                "p75": 25.25
            }
        }
    ],
    "isps": [
        {
            "slug": "spectrum",
            "name": "Spectrum (Charter)",
            "country": "US",
            "sample_count": 130,
            "download": {
                "sample_count": 127,
                "average": 380.6,
                "median": 350.39,
                "p25": 99.34,
                "p75": 570.95
            },
            "upload": {
                "sample_count": 123,
                "average": 119.1,
                "median": 36.81,
                "p25": 22.37,
                "p75": 98.83
            },
            "ping": {
                "sample_count": 130,
                "average": 32.61,
                "median": 30,
                "p25": 23,
                "p75": 36.75
            }
        },
        {
            "slug": "xfinity",
            "name": "Xfinity (Comcast)",
            "country": "US",
            "sample_count": 123,
            "download": {
                "sample_count": 120,
                "average": 368.01,
                "median": 306.75,
                "p25": 123.32,
                "p75": 536.64
            },
            "upload": {
                "sample_count": 120,
                "average": 65.8,
                "median": 43.16,
                "p25": 32.59,
                "p75": 82.46
            },
            "ping": {
                "sample_count": 123,
                "average": 34.24,
                "median": 29,
                "p25": 24,
                "p75": 35.5
            }
        },
        {
            "slug": "att",
            "name": "AT&T",
            "country": "US",
            "sample_count": 117,
            "download": {
                "sample_count": 116,
                "average": 253.1,
                "median": 243.05,
                "p25": 87.45,
                "p75": 362
            },
            "upload": {
                "sample_count": 113,
                "average": 154.93,
                "median": 88.94,
                "p25": 35.88,
                "p75": 264.13
            },
            "ping": {
                "sample_count": 117,
                "average": 39.48,
                "median": 33,
                "p25": 23,
                "p75": 57
            }
        },
        {
            "slug": "cox",
            "name": "Cox",
            "country": "US",
            "sample_count": 37,
            "download": {
                "sample_count": 37,
                "average": 246.21,
                "median": 147.03,
                "p25": 77.12,
                "p75": 285.38
            },
            "upload": {
                "sample_count": 37,
                "average": 61.4,
                "median": 35.88,
                "p25": 24.01,
                "p75": 55.89
            },
            "ping": {
                "sample_count": 37,
                "average": 25.41,
                "median": 22,
                "p25": 20,
                "p75": 26
            }
        },
        {
            "slug": "verizon",
            "name": "Verizon",
            "country": "US",
            "sample_count": 46,
            "download": {
                "sample_count": 45,
                "average": 207.37,
                "median": 116.14,
                "p25": 30.79,
                "p75": 307.91
            },
            "upload": {
                "sample_count": 39,
                "average": 168.63,
                "median": 22.43,
                "p25": 7.98,
                "p75": 124.69
            },
            "ping": {
                "sample_count": 46,
                "average": 38.2,
                "median": 30,
                "p25": 14.5,
                "p75": 58.75
            }
        },
        {
            "slug": "tmobile",
            "name": "T-Mobile",
            "country": "US",
            "sample_count": 30,
            "download": {
                "sample_count": 30,
                "average": 148.73,
                "median": 118.05,
                "p25": 54.11,
                "p75": 209.46
            },
            "upload": {
                "sample_count": 28,
                "average": 38.36,
                "median": 25.18,
                "p25": 13.31,
                "p75": 57.55
            },
            "ping": {
                "sample_count": 30,
                "average": 48.67,
                "median": 50.5,
                "p25": 35,
                "p75": 64.25
            }
        },
        {
            "slug": "centurylink",
            "name": "CenturyLink",
            "country": "US",
            "sample_count": 37,
            "download": {
                "sample_count": 37,
                "average": 141.5,
                "median": 29.84,
                "p25": 18.83,
                "p75": 46.75
            },
            "upload": {
                "sample_count": 34,
                "average": 75.56,
                "median": 9.15,
                "p25": 6.33,
                "p75": 13.15
            },
            "ping": {
                "sample_count": 37,
                "average": 55.14,
                "median": 52,
                "p25": 49,
                "p75": 54
            }
        },
        {
            "slug": "totalplay",
            "name": "Totalplay",
            "country": "MX",
            "sample_count": 23,
            "download": {
                "sample_count": 21,
                "average": 122.55,
                "median": 81.39,
                "p25": 40.18,
                "p75": 140.38
            },
            "upload": {
                "sample_count": 22,
                "average": 136.97,
                "median": 82.69,
                "p25": 28.95,
                "p75": 197.43
            },
            "ping": {
                "sample_count": 23,
                "average": 49.26,
                "median": 54,
                "p25": 40.5,
                "p75": 60
            }
        },
        {
            "slug": "telmex",
            "name": "Telmex (UNINET)",
            "country": "MX",
            "sample_count": 31,
            "download": {
                "sample_count": 31,
                "average": 96.9,
                "median": 82.83,
                "p25": 27.11,
                "p75": 122.1
            },
            "upload": {
                "sample_count": 31,
                "average": 74.03,
                "median": 71.73,
                "p25": 22.82,
                "p75": 102.47
            },
            "ping": {
                "sample_count": 31,
                "average": 70.9,
                "median": 66,
                "p25": 59.5,
                "p75": 76.5
            }
        },
        {
            "slug": "starlink",
            "name": "Starlink",
            "country": "US",
            "sample_count": 28,
            "download": {
                "sample_count": 27,
                "average": 90.34,
                "median": 59.33,
                "p25": 28.12,
                "p75": 160.99
            },
            "upload": {
                "sample_count": 26,
                "average": 20.45,
                "median": 17.65,
                "p25": 14.05,
                "p75": 21.38
            },
            "ping": {
                "sample_count": 28,
                "average": 69.75,
                "median": 58.5,
                "p25": 38.5,
                "p75": 84
            }
        },
        {
            "slug": "telkom-indonesia",
            "name": "Telkom Indonesia",
            "country": "ID",
            "sample_count": 30,
            "download": {
                "sample_count": 27,
                "average": 32.18,
                "median": 29.17,
                "p25": 12.99,
                "p75": 40.53
            },
            "upload": {
                "sample_count": 27,
                "average": 20.18,
                "median": 12.24,
                "p25": 4.51,
                "p75": 31.59
            },
            "ping": {
                "sample_count": 30,
                "average": 191.17,
                "median": 213,
                "p25": 87,
                "p75": 222.75
            }
        }
    ]
}