11 Apr 2025
In reviewing and updating the code we use to generate the Internet Resilience Index, we noticed a few bugs, two of which had an impact on the data we use to generate the scores. We’ve fixed them, and then updated our methodology document to reflect the latest updates. The scores are now more accurate, although, as a result of these updates, many have been adjusted up or down by a few points.
Bug Fixes
Normalized the values for data centers, domain count, and IXPs
In our methodology, we say that we use normalized values for data centers, domain counts, and the number of IXPs in operation. But we were using full raw values. We fixed this, so the values are now normalized—and in line with our methodology.
Changed how we remove outliers
The way we removed outliers from the source data sometimes led to a re-ordering of values, which had an overall effect on the indicators. This added up into the dimensions and the overall resilience pillars, which affected how the final Internet Resilience Score was calculated for a country. We’ve changed the way we do this, so now the values are more accurate.
If you want more detail, we were using these rules to remove outliers in the data:
- Any value greater than Q3 + 1.5*IQR, is replace by Q3 (75th percentile)
- Any value less than Q1 – 1.5*IQR, is replaced by Q1 (25th percentile)
The replacement values were different to the thresholds, which meant there were a few situations where removing them re-ordered the values. That left some of the top-end outliers replaced with other values, but they were still lower than others that weren’t being replaced. We’ve changed the processing rules, so that outliers are replaced with the threshold used to determine them. The top-end outliers will be the largest values and the bottom-end outliers will be the smallest.
Removed the “raw value” field in the API
The Pulse API used to return a “raw value” for each indicator. But in reality, we don’t have raw data in the API, and even where the data is fairly “raw”, there’s often been some processing. The label wasn’t helpful, wasn’t accurate, and isn’t something we’re aiming for with the API. So we removed the field. If you want to retrieve the raw values, you can still get the indexed values at all pillars, dimensions, and indicators, and you’ll find all the original scores referenced in the methodology.