{
    "schema_version": "1.0",
    "report_version": "2026-08",
    "generated_at": "2026-09-04T01:18:38+00:00",
    "measurement_window_start": "2026-08-01T00:00:00+00:00",
    "measurement_window_end": "2026-09-01T00:00:00+00:00",
    "timezone": "UTC",
    "measurement_engine": "LibreSpeed",
    "total_valid_tests": 2066,
    "total_excluded_tests": 78,
    "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": 2018,
            "average": 267.49,
            "median": 145.05,
            "p25": 43.81,
            "p75": 406.25
        },
        "upload": {
            "sample_count": 1838,
            "average": 90.41,
            "median": 34.68,
            "p25": 15.33,
            "p75": 81.85
        },
        "ping": {
            "sample_count": 2062,
            "average": 63.36,
            "median": 36,
            "p25": 22,
            "p75": 69.75
        }
    },
    "countries": [
        {
            "code": "US",
            "sample_count": 1475,
            "download": {
                "sample_count": 1443,
                "average": 299.35,
                "median": 212.89,
                "p25": 64.46,
                "p75": 466.41
            },
            "upload": {
                "sample_count": 1330,
                "average": 97.8,
                "median": 35.73,
                "p25": 16.97,
                "p75": 88.28
            },
            "ping": {
                "sample_count": 1475,
                "average": 43.87,
                "median": 31,
                "p25": 20,
                "p75": 50
            }
        },
        {
            "code": "BD",
            "sample_count": 77,
            "download": {
                "sample_count": 75,
                "average": 29.93,
                "median": 20.65,
                "p25": 12.23,
                "p75": 41.65
            },
            "upload": {
                "sample_count": 74,
                "average": 49.32,
                "median": 42.21,
                "p25": 20.78,
                "p75": 66.84
            },
            "ping": {
                "sample_count": 77,
                "average": 141.68,
                "median": 130,
                "p25": 126,
                "p75": 135
            }
        },
        {
            "code": "GB",
            "sample_count": 66,
            "download": {
                "sample_count": 66,
                "average": 149.68,
                "median": 99.34,
                "p25": 64.26,
                "p75": 156.85
            },
            "upload": {
                "sample_count": 61,
                "average": 56.95,
                "median": 33.22,
                "p25": 9.56,
                "p75": 53.44
            },
            "ping": {
                "sample_count": 66,
                "average": 41.02,
                "median": 30.5,
                "p25": 21.25,
                "p75": 41
            }
        },
        {
            "code": "VN",
            "sample_count": 58,
            "download": {
                "sample_count": 55,
                "average": 300.99,
                "median": 326.77,
                "p25": 184.8,
                "p75": 440.88
            },
            "upload": {
                "sample_count": 34,
                "average": 199.33,
                "median": 201.87,
                "p25": 13.18,
                "p75": 350.97
            },
            "ping": {
                "sample_count": 58,
                "average": 81.6,
                "median": 7,
                "p25": 6,
                "p75": 185.75
            }
        },
        {
            "code": "CA",
            "sample_count": 51,
            "download": {
                "sample_count": 50,
                "average": 557.88,
                "median": 730.79,
                "p25": 127.53,
                "p75": 878.29
            },
            "upload": {
                "sample_count": 45,
                "average": 76.88,
                "median": 70.27,
                "p25": 26.98,
                "p75": 107.84
            },
            "ping": {
                "sample_count": 51,
                "average": 61.31,
                "median": 51,
                "p25": 45,
                "p75": 61.5
            }
        },
        {
            "code": "IN",
            "sample_count": 31,
            "download": {
                "sample_count": 30,
                "average": 52.48,
                "median": 30.79,
                "p25": 21.46,
                "p75": 44.93
            },
            "upload": {
                "sample_count": 30,
                "average": 27.18,
                "median": 26.8,
                "p25": 14.44,
                "p75": 32.46
            },
            "ping": {
                "sample_count": 31,
                "average": 209.48,
                "median": 170,
                "p25": 152.5,
                "p75": 274
            }
        }
    ],
    "isps": [
        {
            "slug": "rogers",
            "name": "Rogers",
            "country": "CA",
            "sample_count": 32,
            "download": {
                "sample_count": 31,
                "average": 776.93,
                "median": 843.01,
                "p25": 775.12,
                "p75": 908.35
            },
            "upload": {
                "sample_count": 30,
                "average": 81.86,
                "median": 80.55,
                "p25": 46.41,
                "p75": 109.24
            },
            "ping": {
                "sample_count": 32,
                "average": 57.75,
                "median": 52,
                "p25": 46,
                "p75": 61
            }
        },
        {
            "slug": "centurylink",
            "name": "CenturyLink",
            "country": "US",
            "sample_count": 22,
            "download": {
                "sample_count": 22,
                "average": 589.61,
                "median": 403.97,
                "p25": 122.39,
                "p75": 789.16
            },
            "upload": {
                "sample_count": 22,
                "average": 397.95,
                "median": 179.66,
                "p25": 56.53,
                "p75": 684.75
            },
            "ping": {
                "sample_count": 22,
                "average": 21.68,
                "median": 20.5,
                "p25": 8.25,
                "p75": 34
            }
        },
        {
            "slug": "spectrum",
            "name": "Spectrum (Charter)",
            "country": "US",
            "sample_count": 290,
            "download": {
                "sample_count": 285,
                "average": 396.89,
                "median": 385.26,
                "p25": 106.3,
                "p75": 602.02
            },
            "upload": {
                "sample_count": 273,
                "average": 65.41,
                "median": 25.63,
                "p25": 21.74,
                "p75": 42.05
            },
            "ping": {
                "sample_count": 290,
                "average": 33.56,
                "median": 29,
                "p25": 23,
                "p75": 37
            }
        },
        {
            "slug": "xfinity",
            "name": "Xfinity (Comcast)",
            "country": "US",
            "sample_count": 217,
            "download": {
                "sample_count": 215,
                "average": 372.72,
                "median": 305.36,
                "p25": 103.99,
                "p75": 558.37
            },
            "upload": {
                "sample_count": 204,
                "average": 74.94,
                "median": 41.91,
                "p25": 25.47,
                "p75": 77.29
            },
            "ping": {
                "sample_count": 217,
                "average": 31.41,
                "median": 25,
                "p25": 19,
                "p75": 40
            }
        },
        {
            "slug": "att",
            "name": "AT&T",
            "country": "US",
            "sample_count": 164,
            "download": {
                "sample_count": 161,
                "average": 336.37,
                "median": 276.72,
                "p25": 113.89,
                "p75": 461.18
            },
            "upload": {
                "sample_count": 150,
                "average": 157.15,
                "median": 75.64,
                "p25": 23,
                "p75": 220.55
            },
            "ping": {
                "sample_count": 164,
                "average": 34.66,
                "median": 23.5,
                "p25": 15.75,
                "p75": 46.5
            }
        },
        {
            "slug": "optimum",
            "name": "Optimum",
            "country": "US",
            "sample_count": 26,
            "download": {
                "sample_count": 25,
                "average": 333.44,
                "median": 224.08,
                "p25": 139.48,
                "p75": 464.54
            },
            "upload": {
                "sample_count": 23,
                "average": 38.54,
                "median": 37.85,
                "p25": 30.56,
                "p75": 39.94
            },
            "ping": {
                "sample_count": 26,
                "average": 40.96,
                "median": 48,
                "p25": 18,
                "p75": 56.75
            }
        },
        {
            "slug": "viettel",
            "name": "Viettel",
            "country": "VN",
            "sample_count": 57,
            "download": {
                "sample_count": 54,
                "average": 305.63,
                "median": 335.64,
                "p25": 185.74,
                "p75": 442.07
            },
            "upload": {
                "sample_count": 33,
                "average": 202.23,
                "median": 202.28,
                "p25": 12.71,
                "p75": 354.15
            },
            "ping": {
                "sample_count": 57,
                "average": 80.58,
                "median": 7,
                "p25": 6,
                "p75": 201
            }
        },
        {
            "slug": "cox",
            "name": "Cox",
            "country": "US",
            "sample_count": 38,
            "download": {
                "sample_count": 38,
                "average": 277.96,
                "median": 197.12,
                "p25": 97.67,
                "p75": 359.6
            },
            "upload": {
                "sample_count": 36,
                "average": 96.09,
                "median": 39.22,
                "p25": 29.79,
                "p75": 58.12
            },
            "ping": {
                "sample_count": 38,
                "average": 21.61,
                "median": 20.5,
                "p25": 17.25,
                "p75": 23
            }
        },
        {
            "slug": "verizon",
            "name": "Verizon",
            "country": "US",
            "sample_count": 134,
            "download": {
                "sample_count": 126,
                "average": 173.09,
                "median": 105.68,
                "p25": 32.78,
                "p75": 260.24
            },
            "upload": {
                "sample_count": 115,
                "average": 90.61,
                "median": 20.51,
                "p25": 4.47,
                "p75": 119.43
            },
            "ping": {
                "sample_count": 134,
                "average": 41.9,
                "median": 32.5,
                "p25": 14,
                "p75": 55.5
            }
        },
        {
            "slug": "tmobile",
            "name": "T-Mobile",
            "country": "US",
            "sample_count": 187,
            "download": {
                "sample_count": 182,
                "average": 96.99,
                "median": 37.5,
                "p25": 23.64,
                "p75": 102.49
            },
            "upload": {
                "sample_count": 173,
                "average": 21.73,
                "median": 10.37,
                "p25": 4.99,
                "p75": 25.13
            },
            "ping": {
                "sample_count": 187,
                "average": 66.48,
                "median": 44,
                "p25": 37,
                "p75": 62
            }
        },
        {
            "slug": "starlink",
            "name": "Starlink",
            "country": "US",
            "sample_count": 26,
            "download": {
                "sample_count": 25,
                "average": 53.79,
                "median": 41.14,
                "p25": 18.03,
                "p75": 78.43
            },
            "upload": {
                "sample_count": 16,
                "average": 15.51,
                "median": 16.9,
                "p25": 4.78,
                "p75": 21.38
            },
            "ping": {
                "sample_count": 26,
                "average": 54.19,
                "median": 38.5,
                "p25": 32,
                "p75": 48.75
            }
        },
        {
            "slug": "windstream-bd",
            "name": "Windstream Communication (Bangladesh)",
            "country": "BD",
            "sample_count": 55,
            "download": {
                "sample_count": 55,
                "average": 24.96,
                "median": 22.14,
                "p25": 12.23,
                "p75": 40.63
            },
            "upload": {
                "sample_count": 54,
                "average": 36.33,
                "median": 35.33,
                "p25": 19.45,
                "p75": 55.61
            },
            "ping": {
                "sample_count": 55,
                "average": 131.4,
                "median": 130,
                "p25": 127.5,
                "p75": 133
            }
        }
    ]
}