Methodology
This page documents exactly how the numbers on this hub are produced. It covers the hub itself; each network site publishes its own methodology page for its own data.
Network stats (home page, mission page)
"Sites live" counts manifests with status of live or
beta. "Datasets" counts live sites with kind of data. "Records" sums each live site's records field. "Countries" takes
the maximum countries value across live sites, not a sum, since coverage
overlaps between sites. "Page views, last 30 days" sums
totalPageViews from the last 30 rows of the network analytics export.
Growth chart
The default series charted is Cloudflare Web Analytics visits where a site
has a
webAnalyticsToken configured, falling back to Cloudflare zone page
views where it does not. Zone-level figures are pulled from the Cloudflare GraphQL
Analytics API and include all traffic Cloudflare's edge sees, including bots,
health checks, and scrapers. Web Analytics figures come from a JavaScript beacon
and approximate human readers more closely, since most bots do not execute it.
pipeline/export_analytics.py runs daily after 03:00 Pacific and pulls
the prior day's complete data; a failed run leaves the previous export in place
rather than publishing a gap.
Freshness ("last run") on site pages
Each site's own site.json manifest publishes its own lastRun field, set by that site's own pipeline. This hub displays that value as published;
it does not independently verify it. pipeline/fetch_manifests.py refetches every site's manifest daily and keeps the last successfully validated
copy if a fetch or validation fails.
What we do not compute
This hub does not run its own analytics on network sites beyond what each site's Cloudflare zone reports, and does not deduplicate readers across sites. A person reading three sites in the network counts as a visit on each.