bankofamerica.com recorded 14 fewer third-party requests in the visit configured for Brave-list blocking.
The visit with no blocking made 209 requests; the visit configured to apply Brave's ad-block engine and default Shields filter lists (a simulation in this scanner's browser, not a live Brave-browser visit) recorded 14 fewer third-party requests. The blocker directly stopped 30 requests; the remaining difference may include follow-on requests that never started once their sources were blocked, plus run-to-run variance.
Bottom line: this visit has signals worth checking
The scan observed signals a non-expert should not have to decode from raw request tables.
The cards below translate the evidence into plain language. Where a measured distribution exists, severity ranks this visit against percentiles from this report's cohort, with each percentile card naming its metric-specific measured-site denominator; otherwise it uses fixed reference thresholds. That cohort is drawn from a curated set of popular, mostly commercial sites, not a random sample of the web. The request log, domain table, and methodology remain below for verification.
209 requests observed in one controlled visit.
What was checked
Page
https://www.bankofamerica.com/
When
Sep 7, 2026, 4:40 AM UTC
Setup
Both visits used headless Chromium in a desktop window of 1440 × 980, with en-US language and UTC time zone. Both ran from a GitHub Actions Ubuntu runner; the network region was not recorded. Neither sent the Global Privacy Control (GPC) signal.
Visits
Two visits configured to differ in Brave-list blocking: No blocking and Brave-list blocking.
Interactions
Typed a made-up test value into 2 form fields in each visit, never submitting the form. No scrolling, clicking or consent interaction.
Outcome
Both visits completed.
What these visits could not see
Other pages on this site. Only the requested page's activity was recorded. The privacy policy was opened only to read its text, and none of its activity was recorded.
Signed-in visitors, other browsers and other regions. Both visits were automated, from a fixed en-US / UTC profile. Sites can behave differently for real users, browsers, regions, accounts, or network locations.
Anything that loads only after interaction or consent. Trackers that load that late are not observed, so counts are a lower bound.
Services the catalog does not name. Service labels use a US-biased hand-curated catalog, so regional services may be under-labeled.
Worth checking
41 requests matched Brave Shields filter lists
41 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 17 request rows in this visit.Show matched requests
Not flagged
Lower values observed across comparable metrics in the Brave-list blocking attempt
The blocking visit ran with the scanner configured to apply Brave's ad-block engine and default Shields filter lists. It was a simulation in this scanner's browser, not a live Brave-browser visit, and application was not verified. Compared with the unblocked visit, it showed 14 fewer third-party requests, 4 fewer third-party cookies and 1 fewer tracking-related service request.
Services only seen in the unblocked visit: Adobe. The blocking visit's engine directly blocked 30 requests; the remaining difference may include follow-on requests that never started once their sources were blocked. A single paired comparison can also reflect run-to-run variance (ad rotation, caching, experiments). Treat this as an observed difference, not a measured blocking rate.
Signed per-metric differences between the two visits; nothing is summed across metrics.Show matched requests
Worth checking
1 first-party DNS alias matched tracking checks
Of the resolved targets, 1 matched Brave filter lists; those matches do not identify the operators.
The scanner followed DNS CNAME chains from first-party subdomains and checked resolved targets against the service catalog and Brave filter lists. These matches do not establish a request's purpose, profiling, or an intent to conceal tracking. A filter-list match alone is not a verified service identity or proof of tracking.
Consent tooling and requests to tracking-service entities appeared before any choice
www.bankofamerica.com sent a request to OneTrust, a consent management platform (the tooling that shows cookie banners). The request log included 2 distinct catalogued tracking-related services before the scanner made any consent choice; 2 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.
Opens the request log at its catalog-matched rows, which include requests to the tracking-related services counted here; this visit never clicked the banner.
Context
Tracking companies the privacy policy does not appear to name
Tealium and Adobe were sent requests during this visit. However, 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.
Policy at https://*.bankofamerica.com/en/privacy; 0 checkable statements matched; 0 of 2 observed tracking companies named in the policy.
Opens the request log at its catalog-matched rows, which include the requests to the companies this card names.
Context
Catalogued service domains recorded responses during this visit
Tealium and Adobe 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 tag management / customer data and analytics / advertising. This scan could not identify 5 of the 9 third-party hosts recorded here, so it cannot say who operates them. That is a limit of identity coverage, not evidence about the site.
113 cross-site requests across 9 third-party hosts.At or above the median for third-party domains across the 81 sites measured for this metric. Modest distinct tracking-service entities count.Show third-party requests
Not flagged
No requests to major-platform domains were recorded
No requests to catalogued Google, Meta, TikTok, X, Microsoft, LinkedIn, or Pinterest domains were observed in this visit.
Major-platform domains were not observed in this single passive visit; interaction-gated requests could still load for real users.
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.
58 cookies total in this report.At or above the median for third-party cookies across the 81 sites measured for this metric.
Opens this site's history page, which lists the third-party cookie count each of its retained reports recorded.
Context
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. That is 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. The card therefore 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.
Session-recording listener coverage: 530 interaction-listener registrations with https://cdn.cookielaw.org/, https://*.bac-assets.com/ and https://*.tiqcdn.com/, plus 1 other in the registration call chain. Input-monitoring listener coverage: 200 input-listener registrations with https://cdn.cookielaw.org/, https://*.bac-assets.com/ and https://*.tiqcdn.com/, plus 1 other in the registration call chain.
Opens this report's request log filtered to cdn.cookielaw.org, a script origin recorded in the listener's call chain.
Worth checking
Behavioral fingerprinting heuristics matched
4 behavioral heuristics matched: Canvas fingerprinting heuristic, Offline audio rendering heuristic, Canvas font probing heuristic and WebRTC peer-connection probing.
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.
Canvas fingerprinting heuristic: 3 canvases matched; reads: canvas.toDataURL. Offline audio rendering heuristic: 1 offline render with audio.OfflineAudioContext.createOscillator and audio.OfflineAudioContext.startRendering. Canvas font probing heuristic: 31 measureText calls across up to 16 fonts; measured text contents are not stored. WebRTC peer-connection probing: 4 peer connections with 4 data channels, 4 offers, and 4 local descriptions.
Raw evidence
Open the interactive evidence explorer
The findings above are built from the stored report. Load the request rows, domains, cookies, storage keys, browser signals, visit phases, charts and CSV export when you want to check them; the versioned report JSON is always available below without this interface.
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.
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. 17 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 14 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. A study has been recorded for pixel-events and does not support a published rate under the current build. How detector accuracy is measured.
Severity percentiles come from this report's exact schema, methodology, tracker-catalog, ServiceRole-taxonomy, metric-contract, producer, and Global Privacy Control cohort. Each percentile card's measured sites are among 99 sites with a successful load across all cohorts. Other methodologies, request-capped visits, and post-choice consent visits are excluded from each card's denominator, while failed or block-page attempts are outside that coverage.
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 .