Independent measurement of the open web

Raw data · Report 01

Content provenance — complete results

Every domain we attempted, what happened to it, and what we found. Published so the study can be checked rather than believed.

2,800 rows · · Back to the study · Methodology · CC BY 4.0

Files

FileFormatRowsSHA-256
results.csv CSV2,800 c09d487b…c48c25
results.jsonl JSON Lines2,800 21fb5385…dba096
manifest.json JSON frame, instrument, totals, full checksums

Identifying the sample frame

Tranco is regenerated daily, so naming the list is not enough to make a study reproducible. The exact snapshot used is identified by hash:

source          Tranco top-1M
snapshot date   2026-08-08
sha256          4f1bb436fc18013db538199e324c6d1a533a4d59ea
                7550a63bacc395df6b7531
rows            1,000,000
Reproduction will not be identical, and we would rather say so. Tranco changes daily and websites change constantly, so a re-run against a later snapshot draws different domains and encounters different images. It should produce a similar rate, not the same one. Anyone reproducing against this exact snapshot, on a date close to ours, is testing the instrument. Anyone reproducing later is measuring a different web.

Field reference

FieldMeaning
domainThe domain attempted, as it appears in Tranco.
rankTranco rank in the snapshot above.
stratumtop1k · top10k · top100k · tail
oktrue if the homepage was reached and images were fetched.
failReason, where ok is false. Classified from the Chromium error code, not inferred.
checkedImages successfully fetched and scanned.
prefilterStage-1 byte-scan hits, before confirmation.
confirmedManifests confirmed by c2patool. This is the counted figure.
imgFetchFailImage URLs found but not retrievable.
aiLabelsImages carrying an IPTC digitalSourceType generative value.

Totals

domains sampled
domains measured
images scanned
with provenance

What is not in here

No personal data of any kind. Rows contain a domain, a rank, a band and a set of counts. We did not store IP addresses, user agents, cookies, page content, image bytes or any identifier. There was nothing to anonymise because nothing personal was collected.

Image URLs are also absent. They are numerous, frequently signed or expiring, and publishing them adds nothing a reviewer needs — the per-domain counts are the unit of analysis. Available on request for verification.

Verify it yourself

sha256sum results.csv results.jsonl
# compare against manifest.json

# recompute the headline from the raw rows
awk -F, 'NR>1 && $4=="true" {img+=$6; prov+=$8} END {
  printf "%d images, %d with provenance, %.4f%%\n", img, prov, prov/img*100 }' results.csv

If your numbers differ from ours, we want to know: corrections@netcensus.org.