{
    "schema_version": "1.0",
    "report_version": "2026-06",
    "generated_at": "2026-09-04T14:22:09+00:00",
    "measurement_window_start": "2026-06-01T00:00:00+00:00",
    "measurement_window_end": "2026-07-01T00:00:00+00:00",
    "timezone": "UTC",
    "measurement_engine": "LibreSpeed",
    "total_valid_tests": 1079,
    "total_excluded_tests": 75,
    "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": 1062,
            "average": 289.68,
            "median": 165.39,
            "p25": 57.54,
            "p75": 470.51
        },
        "upload": {
            "sample_count": 1010,
            "average": 95.54,
            "median": 41.65,
            "p25": 18.01,
            "p75": 110.58
        },
        "ping": {
            "sample_count": 1078,
            "average": 64.49,
            "median": 39,
            "p25": 22,
            "p75": 74
        }
    },
    "countries": [
        {
            "code": "US",
            "sample_count": 674,
            "download": {
                "sample_count": 671,
                "average": 322.77,
                "median": 200.21,
                "p25": 93.14,
                "p75": 485.73
            },
            "upload": {
                "sample_count": 647,
                "average": 104.65,
                "median": 41.04,
                "p25": 20.67,
                "p75": 118.99
            },
            "ping": {
                "sample_count": 674,
                "average": 44.55,
                "median": 30,
                "p25": 19,
                "p75": 49.75
            }
        },
        {
            "code": "CA",
            "sample_count": 96,
            "download": {
                "sample_count": 95,
                "average": 533,
                "median": 651.25,
                "p25": 352.03,
                "p75": 754.67
            },
            "upload": {
                "sample_count": 93,
                "average": 97.25,
                "median": 86.21,
                "p25": 45.4,
                "p75": 146.99
            },
            "ping": {
                "sample_count": 96,
                "average": 71.43,
                "median": 69,
                "p25": 60,
                "p75": 74.25
            }
        },
        {
            "code": "GB",
            "sample_count": 51,
            "download": {
                "sample_count": 50,
                "average": 263.8,
                "median": 130.11,
                "p25": 67.04,
                "p75": 404.38
            },
            "upload": {
                "sample_count": 48,
                "average": 110.44,
                "median": 51.21,
                "p25": 16,
                "p75": 104.74
            },
            "ping": {
                "sample_count": 51,
                "average": 33.71,
                "median": 25,
                "p25": 16.5,
                "p75": 33
            }
        },
        {
            "code": "IQ",
            "sample_count": 37,
            "download": {
                "sample_count": 34,
                "average": 27.38,
                "median": 20.34,
                "p25": 5.81,
                "p75": 41.04
            },
            "upload": {
                "sample_count": 34,
                "average": 32.12,
                "median": 28.74,
                "p25": 13.41,
                "p75": 49.93
            },
            "ping": {
                "sample_count": 37,
                "average": 108.03,
                "median": 106,
                "p25": 99,
                "p75": 113
            }
        }
    ],
    "isps": [
        {
            "slug": "rogers",
            "name": "Rogers",
            "country": "CA",
            "sample_count": 66,
            "download": {
                "sample_count": 66,
                "average": 668.54,
                "median": 689.3,
                "p25": 600.82,
                "p75": 771.5
            },
            "upload": {
                "sample_count": 66,
                "average": 103.56,
                "median": 94.41,
                "p25": 59.36,
                "p75": 154.81
            },
            "ping": {
                "sample_count": 66,
                "average": 68.47,
                "median": 69,
                "p25": 63.5,
                "p75": 73
            }
        },
        {
            "slug": "cox",
            "name": "Cox",
            "country": "US",
            "sample_count": 25,
            "download": {
                "sample_count": 25,
                "average": 424.54,
                "median": 321.16,
                "p25": 165.84,
                "p75": 631.42
            },
            "upload": {
                "sample_count": 24,
                "average": 72.51,
                "median": 80.96,
                "p25": 36.76,
                "p75": 114.57
            },
            "ping": {
                "sample_count": 25,
                "average": 44.04,
                "median": 30,
                "p25": 16,
                "p75": 43
            }
        },
        {
            "slug": "xfinity",
            "name": "Xfinity (Comcast)",
            "country": "US",
            "sample_count": 120,
            "download": {
                "sample_count": 119,
                "average": 382.64,
                "median": 382.84,
                "p25": 85.91,
                "p75": 607.43
            },
            "upload": {
                "sample_count": 114,
                "average": 53.76,
                "median": 42.78,
                "p25": 25.2,
                "p75": 46.21
            },
            "ping": {
                "sample_count": 120,
                "average": 33.41,
                "median": 26.5,
                "p25": 20,
                "p75": 34
            }
        },
        {
            "slug": "spectrum",
            "name": "Spectrum (Charter)",
            "country": "US",
            "sample_count": 99,
            "download": {
                "sample_count": 99,
                "average": 324.14,
                "median": 200.26,
                "p25": 101.75,
                "p75": 448.47
            },
            "upload": {
                "sample_count": 98,
                "average": 84.26,
                "median": 24.5,
                "p25": 21.05,
                "p75": 41.45
            },
            "ping": {
                "sample_count": 99,
                "average": 36.32,
                "median": 29,
                "p25": 25,
                "p75": 38
            }
        },
        {
            "slug": "att",
            "name": "AT&T",
            "country": "US",
            "sample_count": 49,
            "download": {
                "sample_count": 49,
                "average": 318.36,
                "median": 314.64,
                "p25": 166.05,
                "p75": 443.41
            },
            "upload": {
                "sample_count": 49,
                "average": 200.16,
                "median": 150.53,
                "p25": 55.84,
                "p75": 240.32
            },
            "ping": {
                "sample_count": 49,
                "average": 38.96,
                "median": 31,
                "p25": 22,
                "p75": 39
            }
        },
        {
            "slug": "tmobile",
            "name": "T-Mobile",
            "country": "US",
            "sample_count": 23,
            "download": {
                "sample_count": 23,
                "average": 317.6,
                "median": 286.35,
                "p25": 147.17,
                "p75": 409.34
            },
            "upload": {
                "sample_count": 23,
                "average": 32.1,
                "median": 16.71,
                "p25": 10.32,
                "p75": 39.93
            },
            "ping": {
                "sample_count": 23,
                "average": 45.7,
                "median": 36,
                "p25": 29,
                "p75": 52.5
            }
        },
        {
            "slug": "verizon",
            "name": "Verizon",
            "country": "US",
            "sample_count": 55,
            "download": {
                "sample_count": 55,
                "average": 211.14,
                "median": 130.5,
                "p25": 85.01,
                "p75": 236.24
            },
            "upload": {
                "sample_count": 55,
                "average": 90.72,
                "median": 14.52,
                "p25": 10.55,
                "p75": 81.86
            },
            "ping": {
                "sample_count": 55,
                "average": 43.98,
                "median": 53,
                "p25": 15.5,
                "p75": 56
            }
        }
    ]
}