timbers-chrome-ext

Privacy Policy — PDX Matchday

Effective date: August 3, 2026

Summary

PDX Matchday does not request your name, email address, precise location, browsing history, visited URLs, or page content. Community polling uses a pseudonymous Firebase anonymous account so the backend can accept at most one response from that anonymous installation for a match poll. An anonymous installation is not proof of one unique person. Optional notification preferences stay in extension storage; kickoff and goal alerts are generated locally from public match data.

Data the extension handles

Data Purpose Storage and access
Upcoming match data Show the next Portland Timbers or Thorns match and countdown Cached in chrome.storage.local; fetched from the Matchday API, which sources it from ESPN
Local vote state Remember that this browser installation already responded Stored in chrome.storage.local
Firebase anonymous UID and auth session Authenticate the community submission without requesting a personal account Auth tokens and UID are stored in extension-local storage; the ID token is sent only to the Matchday API
Confidence choice Add High, Medium, or Low to the current match aggregate Stored server-side in a restricted raw response record keyed by the anonymous UID; never exposed by the public aggregate API
Pending submission and idempotency key Retry safely after a temporary network or service failure Stored locally until the backend accepts the response
Daily abuse-control counter Limit one anonymous UID to ten newly accepted poll responses per UTC day Stored under a SHA-256-derived daily key without the raw UID and deleted within 72 hours
Deletion request Make deletion retry-safe and schedule removal of the Firebase anonymous account Temporarily stores the anonymous UID, a random receipt, and deletion timestamps in a server-only record until account removal succeeds
Aggregate response counts Display community High, Medium, and Low totals Returned by the Matchday API without UIDs or raw response records

Community response integrity

The backend verifies the Firebase ID token, confirms that the identity is anonymous, checks the provider-backed poll window and extension version, validates the choice, and creates at most one response document for that UID and poll. Clearing extension data or reinstalling can create a new anonymous UID, so the product does not describe responses as verified people or representative fan research.

Analytics and browsing data

The public extension package does not include analytics code or analytics credentials and does not send product analytics. It does not request tab, browsing-history, page-content, geolocation, or broad website access.

Infrastructure providers may process standard network metadata such as an IP address in transient request and security logs. The application does not add raw IP addresses to poll records or product analytics.

Host access

Host Purpose
Matchday API Retrieve normalized Timbers and Thorns schedule, standings, and live event data; the server uses ESPN as its provider
identitytoolkit.googleapis.com Create a Firebase anonymous account when community polling is first used
securetoken.googleapis.com Refresh the anonymous Firebase ID token
us-central1-timbers-matchday.cloudfunctions.net Read integrity-controlled aggregates and submit an authenticated response

Retention and deletion

Data sharing and advertising

Raw responses, Firebase UIDs, auth tokens, and pending submissions are not sold, used for personalized advertising, or shared with clubs, sponsors, data brokers, or advertisers. Public aggregate community counts are a user-facing extension feature.

Security

Raw responses and authentication data are server-only. Public clients can read aggregate counts but cannot read raw response documents. Firebase web API configuration is public client configuration and is not treated as a secret; authorization relies on verified ID tokens, server validation, IAM, and deny-by-default Firestore rules.

Children

PDX Matchday is not directed to children under 13 and does not knowingly request personal information from children.

Changes and contact

Behavior changes that affect data handling require an updated extension disclosure and privacy policy in the same release. Use the in-extension deletion control for community data. For questions or non-sensitive deletion-failure reports, use the public support form. The public form cannot process a deletion request because identifiers must never be posted publicly; an out-of-extension deletion request may be offered only after a dedicated private support route is live.

PDX Matchday’s use of information received from Chrome APIs adheres to the Chrome Web Store User Data Policy, including the Limited Use requirements.