Data sources

class netloss.models.ACLEDEvents(*args, **kwargs)

Data on violent conflict and protest events

Source:

ACLED (https://acleddata.com/data-export-tool/)

Source measurement frequency:

Unknown

Pulse collection frequency:

Manual as needed to update the NetLoss data

class infrastructure.models.ActiveNetworks(*args, **kwargs)

Active Networks (routed ASNs)

Source:

RIPEStat (https://stat.ripe.net/)

Source measurement frequency:

Daily

Pulse collection frequency:

Monthly, at the beginning of the month

class demographics.models.Affordability(*args, **kwargs)

Affordability of Internet access per country

Source:

ITU (https://datahub.itu.int)

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

manual, as new data is identified

class demographics.models.AgeDependency(*args, **kwargs)

Age dependency

Source:

World Bank (https://data.worldbank.org/indicator/ [SP.POP.DPND])

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised

class infrastructure.models.ASNames(*args, **kwargs)

AS Names, Classes and Country Codes

Source:

BGP Tools(https://bgp.tools/kb/api)

Source measurement frequency:

24 hours

Pulse collection frequency:

Weekly?

class rpki.models.ASNROASummary(*args, **kwargs)

ROA statistics per AS Number

Source:

MANRS

Source measurement frequency:

Daily

Pulse collection frequency:

Monthly

class infrastructure.models.ASRelationships(*args, **kwargs)

AS relationships

Source:

CAIDA (https://publicdata.caida.org/datasets/as-relationships/serial-1/)

Source measurement frequency:

Monthly

Pulse collection frequency:

Monthly

class demographics.models.BasicEducation(*args, **kwargs)

Basic education rates

Source:

World Bank (https://data.worldbank.org/indicator/ [SL.TLF.BASC.ZS])

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised

class infrastructure.models.BroadbandCoverage(*args, **kwargs)

Broadband coverage rate per 100 inhabitants per country

Source:

OECD (https://data-explorer.oecd.org/ [OECD.STI.DEP])

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised

class demographics.models.Cities(*args, **kwargs)

Cities with a population of at least 300000

Source:

GeoNames (https://www.geonames.org/) via https://public.opendatasoft.com

Source measurement frequency:

Varies, but doesn’t look like it’s updated regularly

Pulse collection frequency:

Monthly

class resilience.models.CybergreenDDoS(*args, **kwargs)

DDOS Potential

Source:

Cybergreen Stats API (https://stats.cybergreen.net/api/v1/count_by_country)

Source measurement frequency:

Weekly, ending on Sunday

Pulse collection frequency:

Weekly, on Tuesday

class resilience.models.CybersecurityIndex(*args, **kwargs)

Global Cybersecurity Index

Source:

ITU (https://www.itu.int/en/ITU-D/Cybersecurity/Pages/global-cybersecurity-index.aspx)

Source measurement frequency:

custom, every few years

Pulse collection frequency:

manual, as required

class infrastructure.models.DataCenters(*args, **kwargs)

Data centers per country

Source:

PeeringDb (https://www.peeringdb.com/)

Source measurement frequency:

Frequent, as data is updated manually

Pulse collection frequency:

Monthly, at the beginning of the month

class dns_all.models.DNSSECAdoption(*args, **kwargs)

Ratio of DNSSEC-capable to Total count of ccTLDs

Source:

Global DNS

Source measurement frequency:

n/a, the DNS system is updated constantly

Pulse collection frequency:

daily, a snapshot of the current state of DNSSEC adoption by ccTLDs

class dns_all.models.DNSSECAdoptionDomainsPerccTLD(*args, **kwargs)

Counts of signed and unsigned domains per TLD

Source:

https://stats.dnssec-tools.org/

Source measurement frequency:

daily

Pulse collection frequency:

monthly

class dns_all.models.DNSSECAdoptionPerccTLD(*args, **kwargs)

ccTLD DNSSEC capability

Source:

Global DNS

Source measurement frequency:

n/a, the DNS system is updated constantly

Pulse collection frequency:

daily, a snapshot of the current state of DNSSEC adoption by ccTLDs

class dns_all.models.DNSSECValidationPerCountry(*args, **kwargs)

DNSSEC validation rate over 30 days for each country

Source:

https://stats.labs.apnic.net/dnssec

Source measurement frequency:

daily, though not every day it seems

Pulse collection frequency:

weekly

class dns_all.models.DNSSECValidationPerRegion(*args, **kwargs)

DNSSEC validation rate over 30 days for the world, regions and sub-regions

Source:

https://stats.labs.apnic.net/dnssec

Source measurement frequency:

daily, though not every day it seems

Pulse collection frequency:

weekly

class dns_all.models.DomainsPerccTLD(*args, **kwargs)

Counts of domains per TLD

Source:

https://research.domaintools.com/statistics/tld-counts/

Source measurement frequency:

unclear (daily?)

Pulse collection frequency:

monthly (quarterly up to 2025Q4 only)

class resilience.models.EGDI(*args, **kwargs)

E-Government Development Index

Source:

UN (https://publicadministration.un.org/egovkb/en-us/About/Overview/-E-Government-Development-Index)

Source measurement frequency:

every two years

Pulse collection frequency:

manual, as required

class netloss.models.Elections(*args, **kwargs)

Data on whether there were any elections in a month in a particular country

Source:

CLEA (https://electiondataarchive.org/data-and-documentation/clea-lower-chamber-elections-archive/)

Source measurement frequency:

Unknown

Pulse collection frequency:

Manual as needed to update the NetLoss data

class netloss.models.ElectionsIPU(*args, **kwargs)

Data on whether there were any elections in a month in a particular country

Source:

IPU (https://data.ipu.org/elections/)

Source measurement frequency:

Unknown

Pulse collection frequency:

Manual as needed to update the NetLoss data

class demographics.models.FDIInflow(*args, **kwargs)

FDI Inflow (GDP)

Source:

World Bank (https://data.worldbank.org/indicator/ [BX.KLT.DINV.WD.GD.ZS])

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised

class demographics.models.GDP(PPP)
Source:

World Bank (https://data.worldbank.org/indicator/ [NY.GDP.MKTP.PP.CD])

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised

class demographics.models.GDPPerCapita(*args, **kwargs)

GDP per Capita

Source:

Generated locally from World Bank GDP and Population data

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised

class http_all.models.HTTP3GlobalAdoption(*args, **kwargs)

Global http/3 adoption

Source:

Mozilla (https://glam.telemetry.mozilla.org/)

Source measurement frequency:

Daily

Pulse collection frequency:

Daily

class http_all.models.HTTP3TopsitesAdoption(*args, **kwargs)

http/3 adoption among top 1000 websites

Source:

top 1000 websites as per Google CrUX (https://developer.chrome.com/docs/crux)

Source measurement frequency:

Monthly, unknown when new data becomes available

Pulse collection frequency:

Monthly, previous month’s top 1000 websites retrieved on 15th of the month , http/3 measurements taken on 16th of month

class http_all.models.HTTPSGlobalAdoption(*args, **kwargs)

Global https adoption

Source:

Mozilla (https://glam.telemetry.mozilla.org/)

Source measurement frequency:

Daily

Pulse collection frequency:

Daily

class http_all.models.HTTPSPerCountryAdoption(*args, **kwargs)

Per-country https adoption

Source:

Mozilla (https://telemetry.mozilla.org/)

Source measurement frequency:

Daily

Pulse collection frequency:

Daily

class http_all.models.HTTPSTopsitesAdoption(*args, **kwargs)

https adoption among top 1000 websites

Source:

top 1000 websites as per Google CrUX (https://developer.chrome.com/docs/crux)

Source measurement frequency:

Monthly, unknown when new data becomes available

Pulse collection frequency:

Monthly, previous month’s top 1000 websites retrieved on 15th of the month , https measurements taken on 16th of month

class http_all.models.HTTPVersionsAdoption(*args, **kwargs)

Global http versions adoption

Source:

Mozilla (https://glam.telemetry.mozilla.org/)

Source measurement frequency:

Daily

Pulse collection frequency:

Daily

class demographics.models.Inflation
Source:

World Bank (https://data.worldbank.org/indicator/ [NY.GDP.DEFL.KD.ZG.AD])

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised

class demographics.models.InternetUserPopulation(*args, **kwargs)

Internet user population per country. Derived by combining Internet use data from ITU and population data from World Bank.

Source:

World Bank (https://data.worldbank.org/indicator/ [SP.POP.TOTL]) combined with Internet use data from ITU

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Recalculated whenever source data changes (source data is collected monthly)

class ipv6.models.IPv6PerCountryAdoption(*args, **kwargs)

IPv6 deployment per country and global (with code ‘XA’)

Source:

Akamai, APNIC, Cloudflare, Facebook, Google

Source measurement frequency:

Varies

Pulse collection frequency:

Monthly averaged across all sources with outliers removed

class ipv6.models.IPv6PerNetworkAdoption(*args, **kwargs)

IPv6 deployment per network

Source:

Akamai, APNIC, Facebook

Source measurement frequency:

Varies

Pulse collection frequency:

Monthly averaged across all sources with outliers removed

class ipv6.models.IPv6TopsitesAdoption(*args, **kwargs)

IPv6 adoption among top 1000 websites

Source:

top 1000 websites as per Google CrUX (https://developer.chrome.com/docs/crux)

Source measurement frequency:

Monthly, unknown when new data becomes available

Pulse collection frequency:

Monthly, previous month’s top 1000 websites retrieved on 15th of the month , IPv6 measurements taken on 16th of month

class demographics.models.LabourForceTotal(*args, **kwargs)

Total labour force

Source:

World Bank (https://data.worldbank.org/indicator/ [SL.TLF.TOTL.IN])

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised

class lcc.models.LCCResults(*args, **kwargs)

Locally Cached Content per country (was Keeping Traffic Local)

Source:

Internet Society Pulse

Source measurement frequency:

Internet Society Pulse is the source for this data

Pulse collection frequency:

Monthly, new data is available towards the end of each month

class infrastructure.models.MANRSReadinessScores(*args, **kwargs)

MANRS readiness scores per country

Source:

MANRS (https://docs.manrs.org/api/#tag/aggregates/GET/countries/scores/{country})

Source measurement frequency:

Monthly

Pulse collection frequency:

Monthly, at the beginning of the month for the previous month

class infrastructure.models.MobileNetworkCoverage(*args, **kwargs)

Mobile network coverage

Source:

GSMA (https://www.mobileconnectivityindex.com/index.html#year=2023&dataSet=indicator)

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Manually

class demographics.models.Population(*args, **kwargs)

Total human population per country. Total population is based on the de facto definition of population, which counts all residents regardless of legal status or citizenship. Values are midyear estimates.

Source:

World Bank (https://data.worldbank.org/indicator/ [SP.POP.TOTL])

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised

class demographics.models.PopulationWeight(*args, **kwargs)

Global, Regional and Sub-regional weights for population per country.

Source:

Generated locally from World Bank Population data (https://data.worldbank.org/indicator/ [SP.POP.TOTL])

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised

class rpki.models.ROAAdoption(*args, **kwargs)

Per-country and global ROA adoption

Percentage of IPv4 and IPv6 addresses with a valid ROA

Source:

APNIC (https://labs.apnic.net/measurements/)

Source measurement frequency:

Daily

Pulse collection frequency:

Weekly

class infrastructure.models.RoutingIncidents(*args, **kwargs)

Routing incidents per country

Source:

MANRS (https://docs.manrs.org/api/#tag/aggregates/GET/countries/scores/{country})

Source measurement frequency:

Monthly

Pulse collection frequency:

Monthly, at the beginning of the month for the previous month

class rpki.models.ROVAdoptionAPNIC(*args, **kwargs)

Global and per-country ROV adoption

Source:

APNIC (https://labs.apnic.net/measurements/)

Source measurement frequency:

Daily

Pulse collection frequency:

Weekly

class rpki.models.ROVAdoptionRovista(*args, **kwargs)

Global ROV adoption

Source:

RoVista (https://rovista.netsecurelab.org/)

Source measurement frequency:

Daily, though with some gaps

Pulse collection frequency:

Weekly

class demographics.models.SecureInternetServers(*args, **kwargs)

Secure Internet Servers

Source:

World Bank (https://data.worldbank.org/indicator/ [IT.NET.SECR.P6])

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised

class netloss.models.Shutdowns(*args, **kwargs)

Data on Internet shutdowns

Source:

ISOC (https://pulse.internetsociety.org/shutdowns/)

Source measurement frequency:

Manual

Pulse collection frequency:

Manual as needed to update the NetLoss data

class resilience.models.SpeedTestCloudflare(*args, **kwargs)

Cloudflare SpeedTest measurement data :source: Cloudflare Radar (https://radar.cloudflare.com) :source measurement frequency: Daily? :pulse collection frequency: Monthly

class resilience.models.SpeedTestOokla(*args, **kwargs)

Ookla SpeedTest measurement data :source: Ookla (https://www.speedtest.net/global-index) :source measurement frequency: Unknown, data updated monthly :pulse collection frequency: Monthly

class tls.models.TLS13TopsitesAdoption(*args, **kwargs)

TLSv1.3 adoption among top 1000 websites

Source:

top 1000 websites as per Google CrUX (https://developer.chrome.com/docs/crux)

Source measurement frequency:

Monthly, unknown when new data becomes available

Pulse collection frequency:

Monthly, previous month’s top 1000 websites retrieved on 15th of the month , TLSv1.3 measurements taken on 16th of month

class tls.models.TLSVersionsAdoption(*args, **kwargs)

Global TLS versions adoption

Source:

Mozilla (https://glam.telemetry.mozilla.org/)

Source measurement frequency:

Daily

Pulse collection frequency:

Daily

class infrastructure.models.TopServiceProviders(*args, **kwargs)

Top Internet service providers per country

Source:

APNIC (https://stats.labs.apnic.net/aspop?cc=&aa=0&ww=60&rr=1&ff=3&xx=t) (60-day window)

Source measurement frequency:

Unknown, the data comes with a measurement date which seems to change every 5-10 days

Pulse collection frequency:

Daily, only saving data that’s more recent than the latest we have

class infrastructure.models.TopServiceProvidersAggregated(*args, **kwargs)

Top Internet service providers per country, aggregated by AS2OrgPlus groupings

Source:

APNIC (https://stats.labs.apnic.net/cgi-bin/aspop?f=j), WHOIS, PeeringDB, CAIDA

Source measurement frequency:

Unknown, APNIC data comes with a measurement date which seems to change every 5-10 days

Pulse collection frequency:

Weekly

class demographics.models.Unemployment
Source:

World Bank (https://data.worldbank.org/indicator/ [SL.UEM.TOTL.ZS])

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised

class infrastructure.models.UpstreamRedundancy(*args, **kwargs)

Upstream redundancy

Source:

CAIDA AS relationship data (https://publicdata.caida.org/datasets/as-relationships/serial-1/)

Source:

NRO assignment reports (https://www.nro.net/about/rirs/statistics/)

Source:

RIPEStat Country ASNs (https://stat.ripe.net/docs/data-api/api-endpoints/country-asns)

Source measurement frequency:

Monthly

Pulse collection frequency:

Monthly

class demographics.models.UrbanPopulation(*args, **kwargs)

Urban population

Source:

World Bank (https://data.worldbank.org/indicator/ [SP.URB.TOTL.IN.ZS])

Source measurement frequency:

Yearly, unknown when new data becomes available

Pulse collection frequency:

Monthly (3rd of the month), to pick up new datapoints and old datapoints that have been revised