← Back to AirScore
Privacy Policy
Effective: May 2026 · Last updated: May 2026
This page explains what AirScore collects, why, and how to remove your data. Plain English, no dark patterns.
What we collect
- Email address. Required — it's where we send your daily brief and alerts.
- First name (optional). Used in the email greeting.
- Zip code. Required — it's how we know which air quality station to read.
- Sensitive household conditions (optional). A list of categories you select at signup (children / elderly / asthma / pollen allergies / heart or lung disease / pregnancy). Used to tailor the brief copy and lower alert thresholds.
- Stripe customer ID and subscription ID. Generated by Stripe after checkout. We use these to match webhook events to your subscriber record.
- Timestamps for when you signed up, when your last brief / alert was sent, and when you completed welcome onboarding.
That's the entire list. We don't ask for your home address, real name, phone number, date of birth, household income, or browsing history. We don't track you across the web. We don't have advertising on the site.
What we don't collect
- Payment card details — these go directly to Stripe and never touch our servers.
- Persistent identifiers, advertising IDs, or behavioral profiles.
- Cookies. The landing page uses zero cookies; the API doesn't set any either.
- Any health data beyond the broad sensitivity categories you optionally select.
Aggregate analytics
The landing page uses Goatcounter to count page views in aggregate. Specifically:
- No cookies are set. Goatcounter doesn't set any.
- No individual tracking. Visits are counted as anonymous events; we cannot tell which page view came from which person.
- IP addresses are hashed with a daily-rotating salt and immediately discarded. Goatcounter only retains the hash for ~24 hours to deduplicate "this is the same visitor returning later today" without storing your IP.
- What we see: total page views, referrer (which site sent you here), country, browser, and screen size — nothing that could identify you personally.
- What we don't see: your IP, your name, your email (the form data goes to our backend, not Goatcounter), what you hover or click outside the form.
This helps us understand how many people are reading the page and where they came from, without compromising your privacy. Goatcounter is GDPR/CCPA-compliant by default and used by privacy-respecting services across the web.
How we use what we collect
- Email and zip — to send you the daily brief and alerts you signed up for.
- Sensitive conditions — to tailor the brief copy and adjust alert thresholds in your favor.
- Stripe IDs — to handle billing events (renewals, cancellations, failed payments).
We do not sell, rent, or share your data with anyone outside the listed processors below. We don't profile you for marketing. We don't build look-alike audiences.
Who else sees your data
To make AirScore work, your data passes through:
- Supabase — stores your subscriber record. Row-level security is enabled; only AirScore's backend can access the table.
- Stripe — handles payments. Stripe sees your email and the amount charged.
- Resend — delivers the actual email. Resend sees your email address and the email contents.
- Anthropic (Claude API) — generates the personalized brief copy. We send Claude your name (first name only), city, and air quality conditions; Claude returns the email body. Anthropic does not retain prompts for training per their commercial API terms.
- Render — hosts the backend. Render sees inbound requests in standard HTTP server logs (retained 7 days on the free tier).
- EPA AirNow, NOAA, Tomorrow.io, Zippopotam.us — receive your zip code (or its lat/lng) to return air quality data. They don't receive your email or any other identifier.
- Goatcounter — receives anonymous page-view events from the landing page. See the "Aggregate analytics" section below for what they do and don't see.
How long we keep your data
- While you're an active subscriber: indefinitely.
- After cancellation: your subscriber record is retained for billing reconciliation. Email it to our contact form and we'll delete the record within 7 days.
- Air quality history table contains anonymous AQI readings tied only to zip code, not to you personally.
Your rights
You can:
- Unsubscribe at any time — every email has a one-click unsubscribe link in the footer. This cancels your Stripe subscription and stops future emails.
- Request a data export — message the contact form and we'll send you everything we have on file within 30 days.
- Request deletion — same channel. We'll remove your subscriber record within 7 days, with the caveat that Stripe retains transaction records per their own policy (not under our control).
Children
AirScore is intended for adults. We don't knowingly collect data from anyone under 13. If you're a parent and believe a child has signed up, contact us and we'll delete the record immediately.
Changes
If this policy changes materially, we'll email all active subscribers at least 30 days before the change takes effect. Trivial wording changes will be reflected in the "Last updated" date at the top.
Contact
Questions? Use the contact form on the landing page. Replies route to a real human (the AirScore maker), not a queue.