{
    "schema_version": "1.0",
    "report_version": "2026-01",
    "generated_at": "2026-09-04T14:21:41+00:00",
    "measurement_window_start": "2026-01-01T00:00:00+00:00",
    "measurement_window_end": "2026-02-01T00:00:00+00:00",
    "timezone": "UTC",
    "measurement_engine": "LibreSpeed",
    "total_valid_tests": 3194,
    "total_excluded_tests": 84,
    "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": 3140,
            "average": 168.8,
            "median": 71.1,
            "p25": 20.39,
            "p75": 204.58
        },
        "upload": {
            "sample_count": 3028,
            "average": 85.75,
            "median": 28.37,
            "p25": 10.21,
            "p75": 84.67
        },
        "ping": {
            "sample_count": 3192,
            "average": 81.75,
            "median": 64,
            "p25": 38,
            "p75": 95
        }
    },
    "countries": [
        {
            "code": "US",
            "sample_count": 656,
            "download": {
                "sample_count": 648,
                "average": 373.68,
                "median": 259.3,
                "p25": 90.27,
                "p75": 558.42
            },
            "upload": {
                "sample_count": 626,
                "average": 155.06,
                "median": 39.88,
                "p25": 17.23,
                "p75": 112.57
            },
            "ping": {
                "sample_count": 656,
                "average": 35.91,
                "median": 31,
                "p25": 21,
                "p75": 42
            }
        },
        {
            "code": "TR",
            "sample_count": 403,
            "download": {
                "sample_count": 399,
                "average": 67.98,
                "median": 30.68,
                "p25": 13.29,
                "p75": 73.91
            },
            "upload": {
                "sample_count": 391,
                "average": 21.69,
                "median": 13.88,
                "p25": 8.25,
                "p75": 20.49
            },
            "ping": {
                "sample_count": 403,
                "average": 80.92,
                "median": 72,
                "p25": 61,
                "p75": 87
            }
        },
        {
            "code": "ID",
            "sample_count": 315,
            "download": {
                "sample_count": 311,
                "average": 39.62,
                "median": 28.26,
                "p25": 12.64,
                "p75": 49.54
            },
            "upload": {
                "sample_count": 292,
                "average": 26.66,
                "median": 15.48,
                "p25": 6.12,
                "p75": 32.38
            },
            "ping": {
                "sample_count": 315,
                "average": 151.97,
                "median": 124,
                "p25": 85.5,
                "p75": 217
            }
        },
        {
            "code": "MX",
            "sample_count": 218,
            "download": {
                "sample_count": 213,
                "average": 117.36,
                "median": 83.75,
                "p25": 35.5,
                "p75": 152.65
            },
            "upload": {
                "sample_count": 212,
                "average": 73.61,
                "median": 45.23,
                "p25": 10.22,
                "p75": 104.23
            },
            "ping": {
                "sample_count": 216,
                "average": 72.04,
                "median": 62.5,
                "p25": 54,
                "p75": 76
            }
        },
        {
            "code": "CA",
            "sample_count": 132,
            "download": {
                "sample_count": 130,
                "average": 138.52,
                "median": 99.99,
                "p25": 39.63,
                "p75": 121.07
            },
            "upload": {
                "sample_count": 124,
                "average": 51.89,
                "median": 27.88,
                "p25": 7.11,
                "p75": 36.94
            },
            "ping": {
                "sample_count": 132,
                "average": 69.19,
                "median": 47,
                "p25": 39,
                "p75": 57
            }
        },
        {
            "code": "ES",
            "sample_count": 92,
            "download": {
                "sample_count": 90,
                "average": 206.31,
                "median": 135.65,
                "p25": 34.98,
                "p75": 288.76
            },
            "upload": {
                "sample_count": 89,
                "average": 133.84,
                "median": 95.25,
                "p25": 35.39,
                "p75": 202.15
            },
            "ping": {
                "sample_count": 92,
                "average": 51.67,
                "median": 46,
                "p25": 40,
                "p75": 54.25
            }
        },
        {
            "code": "CO",
            "sample_count": 76,
            "download": {
                "sample_count": 75,
                "average": 144.1,
                "median": 100.14,
                "p25": 23.47,
                "p75": 207.9
            },
            "upload": {
                "sample_count": 71,
                "average": 105.75,
                "median": 77.48,
                "p25": 12.78,
                "p75": 140.5
            },
            "ping": {
                "sample_count": 76,
                "average": 95.5,
                "median": 86,
                "p25": 73,
                "p75": 94
            }
        },
        {
            "code": "GB",
            "sample_count": 55,
            "download": {
                "sample_count": 55,
                "average": 149.02,
                "median": 87.05,
                "p25": 36,
                "p75": 219.49
            },
            "upload": {
                "sample_count": 53,
                "average": 65.87,
                "median": 37.69,
                "p25": 8.91,
                "p75": 73.96
            },
            "ping": {
                "sample_count": 55,
                "average": 37.45,
                "median": 31,
                "p25": 17,
                "p75": 56.5
            }
        },
        {
            "code": "AU",
            "sample_count": 54,
            "download": {
                "sample_count": 54,
                "average": 59.24,
                "median": 41.56,
                "p25": 12.56,
                "p75": 70.81
            },
            "upload": {
                "sample_count": 50,
                "average": 18.08,
                "median": 10.66,
                "p25": 6.57,
                "p75": 18.37
            },
            "ping": {
                "sample_count": 54,
                "average": 198.54,
                "median": 175.5,
                "p25": 118.5,
                "p75": 266.5
            }
        },
        {
            "code": "DE",
            "sample_count": 43,
            "download": {
                "sample_count": 42,
                "average": 147.36,
                "median": 60.26,
                "p25": 25.77,
                "p75": 164.55
            },
            "upload": {
                "sample_count": 41,
                "average": 76.72,
                "median": 23.12,
                "p25": 13.93,
                "p75": 53.81
            },
            "ping": {
                "sample_count": 43,
                "average": 82.05,
                "median": 38,
                "p25": 19,
                "p75": 74.5
            }
        },
        {
            "code": "PE",
            "sample_count": 34,
            "download": {
                "sample_count": 34,
                "average": 130.99,
                "median": 95.86,
                "p25": 18.58,
                "p75": 191.39
            },
            "upload": {
                "sample_count": 31,
                "average": 113.65,
                "median": 96.79,
                "p25": 40.4,
                "p75": 168.78
            },
            "ping": {
                "sample_count": 34,
                "average": 107.88,
                "median": 99,
                "p25": 89,
                "p75": 106.5
            }
        },
        {
            "code": "IN",
            "sample_count": 32,
            "download": {
                "sample_count": 32,
                "average": 166.65,
                "median": 112.38,
                "p25": 33.6,
                "p75": 308.9
            },
            "upload": {
                "sample_count": 30,
                "average": 61.22,
                "median": 47.24,
                "p25": 10.58,
                "p75": 85.65
            },
            "ping": {
                "sample_count": 32,
                "average": 210.94,
                "median": 226,
                "p25": 209.75,
                "p75": 241.5
            }
        }
    ],
    "isps": [
        {
            "slug": "spectrum",
            "name": "Spectrum (Charter)",
            "country": "US",
            "sample_count": 155,
            "download": {
                "sample_count": 153,
                "average": 412.79,
                "median": 369.36,
                "p25": 151.76,
                "p75": 603.75
            },
            "upload": {
                "sample_count": 150,
                "average": 42.37,
                "median": 29.99,
                "p25": 12.25,
                "p75": 39.9
            },
            "ping": {
                "sample_count": 155,
                "average": 33.95,
                "median": 32,
                "p25": 26,
                "p75": 39.5
            }
        },
        {
            "slug": "att",
            "name": "AT&T",
            "country": "US",
            "sample_count": 54,
            "download": {
                "sample_count": 52,
                "average": 341.35,
                "median": 258.63,
                "p25": 129.94,
                "p75": 510.02
            },
            "upload": {
                "sample_count": 52,
                "average": 218.13,
                "median": 151.68,
                "p25": 29.14,
                "p75": 357.18
            },
            "ping": {
                "sample_count": 54,
                "average": 35.52,
                "median": 25.5,
                "p25": 19.25,
                "p75": 33.75
            }
        },
        {
            "slug": "xfinity",
            "name": "Xfinity (Comcast)",
            "country": "US",
            "sample_count": 123,
            "download": {
                "sample_count": 122,
                "average": 314.14,
                "median": 192.3,
                "p25": 87.93,
                "p75": 483.99
            },
            "upload": {
                "sample_count": 119,
                "average": 87.51,
                "median": 42.5,
                "p25": 28.53,
                "p75": 95.4
            },
            "ping": {
                "sample_count": 123,
                "average": 32.25,
                "median": 30,
                "p25": 20,
                "p75": 36.5
            }
        },
        {
            "slug": "cox",
            "name": "Cox",
            "country": "US",
            "sample_count": 25,
            "download": {
                "sample_count": 24,
                "average": 273.01,
                "median": 270.12,
                "p25": 170.88,
                "p75": 376.81
            },
            "upload": {
                "sample_count": 23,
                "average": 55.87,
                "median": 33.45,
                "p25": 11.27,
                "p75": 53.01
            },
            "ping": {
                "sample_count": 25,
                "average": 29.52,
                "median": 28,
                "p25": 19,
                "p75": 41
            }
        },
        {
            "slug": "verizon",
            "name": "Verizon",
            "country": "US",
            "sample_count": 43,
            "download": {
                "sample_count": 43,
                "average": 236.59,
                "median": 211.26,
                "p25": 59.43,
                "p75": 331.32
            },
            "upload": {
                "sample_count": 39,
                "average": 119.83,
                "median": 67.07,
                "p25": 11.4,
                "p75": 138.8
            },
            "ping": {
                "sample_count": 43,
                "average": 35.6,
                "median": 28,
                "p25": 13,
                "p75": 55
            }
        },
        {
            "slug": "movistar",
            "name": "Movistar (Telef\u00f3nica)",
            "country": "ES",
            "sample_count": 25,
            "download": {
                "sample_count": 24,
                "average": 195.68,
                "median": 59.75,
                "p25": 16.37,
                "p75": 291.11
            },
            "upload": {
                "sample_count": 24,
                "average": 115.27,
                "median": 42.98,
                "p25": 23.52,
                "p75": 193.83
            },
            "ping": {
                "sample_count": 25,
                "average": 49.72,
                "median": 43,
                "p25": 40,
                "p75": 47
            }
        },
        {
            "slug": "totalplay",
            "name": "Totalplay",
            "country": "MX",
            "sample_count": 41,
            "download": {
                "sample_count": 41,
                "average": 187.69,
                "median": 147.99,
                "p25": 39.34,
                "p75": 234.93
            },
            "upload": {
                "sample_count": 41,
                "average": 116.58,
                "median": 95.92,
                "p25": 53.08,
                "p75": 159.66
            },
            "ping": {
                "sample_count": 41,
                "average": 95,
                "median": 62,
                "p25": 53,
                "p75": 102
            }
        },
        {
            "slug": "tmobile",
            "name": "T-Mobile",
            "country": "US",
            "sample_count": 90,
            "download": {
                "sample_count": 90,
                "average": 183.74,
                "median": 153.93,
                "p25": 73.34,
                "p75": 278.45
            },
            "upload": {
                "sample_count": 86,
                "average": 62.82,
                "median": 65.69,
                "p25": 16.5,
                "p75": 101.56
            },
            "ping": {
                "sample_count": 90,
                "average": 41.08,
                "median": 34,
                "p25": 30.25,
                "p75": 45
            }
        },
        {
            "slug": "bell",
            "name": "Bell Canada",
            "country": "CA",
            "sample_count": 38,
            "download": {
                "sample_count": 38,
                "average": 135.29,
                "median": 37.9,
                "p25": 19.46,
                "p75": 126.69
            },
            "upload": {
                "sample_count": 37,
                "average": 92.63,
                "median": 4.2,
                "p25": 1.35,
                "p75": 108.68
            },
            "ping": {
                "sample_count": 38,
                "average": 117.95,
                "median": 60,
                "p25": 29.25,
                "p75": 89
            }
        },
        {
            "slug": "telmex",
            "name": "Telmex (UNINET)",
            "country": "MX",
            "sample_count": 70,
            "download": {
                "sample_count": 70,
                "average": 87.42,
                "median": 72.69,
                "p25": 17.15,
                "p75": 99.71
            },
            "upload": {
                "sample_count": 70,
                "average": 65.5,
                "median": 57.85,
                "p25": 20.87,
                "p75": 97.04
            },
            "ping": {
                "sample_count": 68,
                "average": 66.49,
                "median": 60,
                "p25": 56.75,
                "p75": 71.5
            }
        },
        {
            "slug": "starlink",
            "name": "Starlink",
            "country": "US",
            "sample_count": 41,
            "download": {
                "sample_count": 40,
                "average": 74.4,
                "median": 56.26,
                "p25": 16.97,
                "p75": 88.63
            },
            "upload": {
                "sample_count": 39,
                "average": 15.81,
                "median": 14.86,
                "p25": 7.93,
                "p75": 23.18
            },
            "ping": {
                "sample_count": 41,
                "average": 76.37,
                "median": 66,
                "p25": 53,
                "p75": 91
            }
        },
        {
            "slug": "telkom-indonesia",
            "name": "Telkom Indonesia",
            "country": "ID",
            "sample_count": 118,
            "download": {
                "sample_count": 116,
                "average": 34.29,
                "median": 32,
                "p25": 13.88,
                "p75": 49.97
            },
            "upload": {
                "sample_count": 106,
                "average": 23.96,
                "median": 15.12,
                "p25": 7.16,
                "p75": 32.84
            },
            "ping": {
                "sample_count": 118,
                "average": 190.64,
                "median": 213.5,
                "p25": 137,
                "p75": 223
            }
        },
        {
            "slug": "indosat",
            "name": "Indosat",
            "country": "ID",
            "sample_count": 41,
            "download": {
                "sample_count": 40,
                "average": 33.97,
                "median": 18.77,
                "p25": 11.16,
                "p75": 44.15
            },
            "upload": {
                "sample_count": 38,
                "average": 24.62,
                "median": 15.09,
                "p25": 4.24,
                "p75": 25.24
            },
            "ping": {
                "sample_count": 41,
                "average": 102.93,
                "median": 95,
                "p25": 83,
                "p75": 118
            }
        },
        {
            "slug": "telkomsel",
            "name": "Telkomsel",
            "country": "ID",
            "sample_count": 57,
            "download": {
                "sample_count": 57,
                "average": 30.93,
                "median": 29.51,
                "p25": 16.92,
                "p75": 41.76
            },
            "upload": {
                "sample_count": 53,
                "average": 13.37,
                "median": 8.64,
                "p25": 3.27,
                "p75": 19.62
            },
            "ping": {
                "sample_count": 57,
                "average": 188.89,
                "median": 213,
                "p25": 111,
                "p75": 232
            }
        }
    ]
}