Baseline visit v1 schema · facts legacy-derived · descriptive report

www.npr.org

https://www.npr.org/

Sep 7, 2026, 4:49 AM UTC

cut short: the visit hit the scanner's request-recording cap, so its counts are truncated; the visit hit the scan proxy's traffic budget, so it stopped forwarding further traffic; the in-page fingerprint observer could not read every frame, so the fingerprinting evidence is incomplete; derived from status and warnings

Evidence quality

This report is built on an incomplete visit

Incomplete evidence: evidence was cut short before completion (the visit hit the scanner's request-recording cap, so its counts are truncated; the visit hit the scan proxy's traffic budget, so it stopped forwarding further traffic; and 1 more). Counts for the affected evidence are lower bounds; families that completed carry only their ordinary limits. The evidence receipt states the exact per-visit quality.

Scan report ready for www.npr.org: 1,000 recorded request rows.

Comparison Reportv1 schema · facts legacy-derived · descriptive reportrecording capped

Brave-list blocking off/on comparison

https://www.npr.org/ (opens in a new tab)

The selected visit hit the request-recording cap. Request and domain counts are lower bounds; cookie and storage availability is reported separately.

ShareDownloads the No blocking visit's request CSV, source report and correction context in a ZIP. Follows the evidence switcher below.PDF + evidence (opens in a new tab)Downloads a ZIP containing the PDF for every recorded visit, exact source JSON, correction context and file hashes. The scanner renders it on request.

What this actually means

npr.org's retained request log includes catalogued Google and LinkedIn domains.

Retained request rows include 23 distinct catalogued tracking-service entities; 22 of the retained service matches recorded responses across at least 163 retained cross-site domains. A catalog match identifies the service domain, not why the request occurred or what it carried. It also looks like keyboard-input listeners were registered through a call chain that included a cross-site script and 3 browser-fingerprinting heuristics matched.

≥23tracking-service entities retained
≥961cross-site requests
Snapshot incompletethird-party cookie records
≥3fingerprint-like patterns retained

Plain-Language Findings

What this visit means

Unfamiliar terms are defined in the glossary
playwright-chromium

Review-worthy

Bottom line: this visit has review-worthy signals

The scan observed signals a non-expert should not have to decode from raw request tables. Some activity evidence was also incomplete: request counts are retained lower bounds, cookie counts are an incomplete end-state snapshot and storage counts are an incomplete end-state snapshot.

The cards below translate the evidence into plain language; severity reflects fixed reference thresholds, not measured population percentiles. The request log, domain table, and methodology remain below for verification.

at least 1,000 retained requests observed in one controlled visit.

Worth checking

at least 599 retained requests matched Brave Shields filter lists

at least 599 retained requests matched the default filter lists of Brave Shields, the ad and tracker blocker built into the Brave browser, while loading normally.

Computed with Brave's own ad-block engine and default filter lists in classification mode: matched requests were not blocked by the scanner and remain in this report's observed request counts. Matching shows what Shields would target on this visit's traffic; an actual Shields visit blocks these and also prevents their follow-on requests, so this number is neither a measured block count nor the total effect.

The hand-curated service catalog separately matched at least 379 retained request rows in this visit.Show matched requests

Context

This Shields comparison is not conclusive

The "No blocking" visit hit the 1,000-request recording cap, so its counts are truncated. and The "No blocking" visit exhausted its proxy connection and target safety budget, so its request evidence is incomplete.

The raw request logs of both visits remain below for transparency, but the diff between them supports no claim about what the compared condition changed.

2 disqualifying conditions named by the report's claim policy.Show matched requests

Worth checking

Consent tooling and requests to tracking-service entities appeared before any choice

www.npr.org sent a request to OneTrust, a consent management platform (the tooling that shows cookie banners), and the request log included at least 23 retained distinct catalogued tracking-related services before the scanner made any consent choice; 22 companies answered.

A request to the platform's loader proves the page attempted to fetch consent tooling; an observed response supports delivery, but neither fact proves a banner was visibly shown to this scanner. Banner display can vary by region and visit context. The scanner never clicks a banner in this mode, so this report records requests made before the scanner made a consent choice. It does not determine whether any request required consent or whether the site's behavior complied with applicable law. More tracking-service entities or requests may appear after "Accept" than this report captures, so the counts here are lower bounds for users who consent.

Consent platform detected via a request to cdn.cookielaw.org.

Context

Tracking companies the privacy policy does not appear to name

PubMatic, Magnite and Sovrn, plus 8 others were sent requests during this visit, but the policy text matched none of the names this scan knows those companies by.

Policies often disclose vendor categories rather than company names, so an unnamed vendor is a transparency gap worth reviewing, not automatically a violation. Named in the policy: Google, LiveRamp and Chartbeat.

Policy at https://www.npr.org/{seg}/{n}/privacy-policy; 0 checkable statements matched; 3 of 14 observed tracking companies named in the policy; policy mentions of Amazon Ads are unknown because the historical alias matcher was incomplete.

Review-worthy

Requests were dispatched to catalogued service domains

Google, Amazon Ads and PubMatic, plus 20 others appeared in the request log.

A catalog match identifies a maintainer-reviewed service/domain mapping; it does not establish why an individual request occurred, what it carried, or whether profiling happened. Functional catalog labels include analytics / tag management, advertising and advertising / supply-side platform. This scan could not identify 118 of the 163 third-party hosts recorded here, so it cannot say who operates them. That is a limit of identity coverage, not evidence about the site. Catalog labels include session-replay or behavior-analytics services: Crazy Egg; the domain match alone does not prove that a recording occurred.

at least 961 retained cross-site requests across at least 163 retained third-party hosts.Show third-party requests

Context

Requests were dispatched to catalogued major-platform domains

This visit dispatched requests to catalogued domains for Google and LinkedIn.

The domain matches identify services, not the requests' purpose, payload, or whether any profile linking occurred.

at least 81 retained requests to these platforms.Show catalog-matched requests

Context

Incomplete evidence: Google Analytics present, no remarketing signal in retained evidence before collection stopped

Google Analytics was observed, but no DoubleClick remarketing sync appeared in this visit.

Standard analytics collection was observed, without the stats.g.doubleclick.net advertising sync. Evidence collection was cut short, so this covers only what was recorded before the cutoff.

Google Analytics host observed; no stats.g.doubleclick.net request.Show catalog-matched requests

Review-worthy

Third-party cookies were present

164 third-party cookies showed up during the visit.

The scanner observed cookie metadata whose domain crossed the scanned site's registrable-domain boundary. This report does not retain cookie values or partition keys, so it does not establish whether a cookie was a persistent identifier or could recognize a visitor across sites.

206 cookies total in this report.

Worth checking

Input-monitoring signal involving a third-party script

Listener coverage that could observe typing-related input events was registered through call chains that included a third-party script.

This is a behavioral instrumentation signal from listener registration, stack-attributed script origins, and known-vendor requests: it shows the page was instrumented to observe interaction, not that anything was transmitted. Stack attribution records the script origins present in the bounded registration call chain; a cross-site origin in that chain does not by itself establish that the cross-site script registered the listener, because first-party code can register its own listeners through a helper served from elsewhere. A different registrable domain is also not by itself a different operator: sites commonly serve their own scripts from a separate asset domain, so the card says third party only when the catalog or reviewed ownership attributes an origin to another organization. On scanners that run the active keystroke-capture probe, actual transmission is tested separately (a synthetic value is typed, never real input, and no typed values are collected); treat this card as a review prompt rather than proof.

646 interaction-listener registrations with https://ads.pubmatic.com/, https://cdn.cookielaw.org/ and https://cdn.cxense.com/, plus 11 others in the registration call chain, 186 input-listener registrations with https://cdn.cookielaw.org/, https://cdn.cxense.com/ and https://cdn.piano.io/, plus 7 others in the registration call chain and known session-replay vendor(s): Crazy Egg

Worth checking

Behavioral fingerprinting heuristics matched

At least 3 behavioral heuristics matched in retained evidence: Canvas fingerprinting heuristic, Canvas font probing heuristic and Offline audio rendering heuristic.

These heuristics look for behavior patterns such as canvas readback after drawing, repeated canvas font measurement, WebGL entropy reads, offline audio rendering, or WebRTC peer-connection setup. They are review prompts for this visit, not proof of cross-site identity tracking.

2 canvases matched; reads: canvas.toDataURL, 69 measureText calls across up to 57 fonts; measured text contents are not stored and 1 offline render with audio.OfflineAudioContext.createAnalyser, audio.OfflineAudioContext.createDynamicsCompressor and audio.OfflineAudioContext.createOscillator, plus 2 others

Brave Shields Comparison

No blocking and Brave-list blocking: two visits, no comparable metric delta

No blocking: 20,116msBrave-list blocking: 10,614ms
These two visits do not support a side-by-side comparison, so no deltas are shown.
  • The "No blocking" visit hit the 1,000-request recording cap, so its counts are truncated.
  • The "No blocking" visit exhausted its proxy connection and target safety budget, so its request evidence is incomplete.

Each visit's own evidence still stands: use the “Evidence shown” switcher below to inspect either visit's tables, and both visits are in the downloaded JSON.

Measurement limits

10 conditions affect how this evidence reads

This report

  • Brave-list blocking comparison runs should be collected under matched crawl conditions, and the blocking run is a simulation with Brave's engine and default lists in this scanner's browser, not a live Brave visit. Differences can still reflect timing, experiments, cache state, consent state, or bot detection.
  • The two visits ran in randomized order; the "Brave-list blocking" visit ran first.

Both visits

  • Each visit in this report is one automated, headless Chromium visit from a fixed en-US / UTC profile, with no scrolling, clicking, or consent interaction. Sites can behave differently for real users, browsers, regions, accounts, or network locations.
  • Counts are a lower bound: trackers that load only after interaction or consent are not observed; Service Workers are blocked, and Web Worker or WebSocket traffic may be incomplete. Service labels use a US-biased hand-curated catalog, so regional services may be under-labeled. Cookie and storage figures are an end-of-visit snapshot, with storage keys read from the top frame only.
  • Read the site's privacy policy (https://www.npr.org/{seg}/{n}/privacy-policy) and compared its text against this visit's observed behavior. Policy checks are an automated text match with the matched sentences quoted, not a legal reading.

No blocking visit only

  • The page did not reach network idle before the scan window ended.
  • The in-page fingerprint observer could not read one or more frames, so fingerprint-like API calls and heuristics for this visit are incomplete.
  • The scan stopped opening additional proxy requests after reaching its connection and target safety budget.
  • The scan stopped recording or loading additional requests after 1000 requests.

Brave-list blocking visit only

  • Brave Shields block simulation was enabled; matching requests were aborted before loading and are not included in request totals.

This versioned report is currently retained in the public corpus. Follow the currently retained site history, repeat the same public route when it is available, or request a transparent evidence correction.

Report ID
20260907-41f8d692713f9ce811ebce94ce62726b
Site
www.npr.org
Latest visit
Schema
v1 schema · facts legacy-derived · descriptive report
Verify recorded provenance

Baseline visit

Started
Run quality
cut short: the visit hit the scanner's request-recording cap, so its counts are truncated; the visit hit the scan proxy's traffic budget, so it stopped forwarding further traffic; the in-page fingerprint observer could not read every frame, so the fingerprinting evidence is incomplete; derived from status and warnings
Scanner
playwright-chromium
Browser
151.0.7922.34
Redaction
not recorded by this schema
Provenance
Exact build and instrument digests were not recorded by this legacy schema.

Variant visit

Started
Run quality
complete; derived from status and warnings
Scanner
playwright-chromium
Browser
151.0.7922.34
Redaction
not recorded by this schema
Provenance
Exact build and instrument digests were not recorded by this legacy schema.

Recorded provenance is self-reported measurement metadata, not a cryptographic attestation. The public versioned report JSON contains the retained public evidence; see the methodology for interpretation and retention limits.

This report covers what the scanner measures, not everything a site can do. 16 browser surfaces are not instrumented at all (Every page except the one that was scanned; Anything that only loads after scrolling or interaction; Why a request happened, as a causal chain; and 13 others), 3 capabilities are declined by policy, and 3 are outside what any single visit can see. Their absence from this report is not evidence that they did not occur. Read the published coverage boundary.

Detector accuracy is unmeasured. No calibration study currently publishes a precision or recall for the detectors on this page, so a detector match here is a recorded observation, not a calibrated classification. How detector accuracy is measured.

Approved use boundary: This report is investigative evidence that requires independent corroboration. It is not a standalone legal determination and not the sole exhibit in a legal proceeding. Recorded in this project's release manifest on .