What we know about you.
Most fintech companies hide their data practices in a fifty-page privacy policy nobody reads. This is the opposite: a one-screen audit of every data type WealthSpan touches, where it lives, who can read it, and how long it stays. If anything below isn't true of how we operate, the page is a bug — please tell us.
- Your Schwab username or password (we use OAuth — Schwab handles auth)
- Your SSN, tax ID, or driver's license number
- Your trading history, transaction-level data, or individual trades
- Your account routing or bank account numbers (only last-4 of brokerage accounts, for display)
- Any biometric data
- Your location, device fingerprint, or browser metadata beyond what's needed to serve the request
- Anything we don't have a specific reason to store and surface back to you
Everything runs on Cloudflare Workers — code executes at the edge, data lives in D1 (SQLite at edge, encrypted at rest) and KV (encrypted at rest with 60-day rolling rotation). No third-party databases, no shared infrastructure with other companies.
Connections are HTTPS-only with HSTS preload. We send a Content-Security-Policy header on every response so the browser refuses to load scripts or styles from anywhere we haven't allow-listed. X-Frame-Options: DENY prevents anyone from embedding the dashboard in their own page.
Access requires the demo password (signed cookie, 24-hour expiry) or an API key (server-to-server only). Real email-link authentication is the next milestone — single-use tokens delivered to your inbox, no passwords to remember or lose.
Schwab refresh tokens follow the OAuth 2.0 standard: 7-day expiry with no activity, rotation on every use. If your token is ever revoked at Schwab's end, our access dies with it — Schwab is the ultimate authority on what we can see.
Export. Email hello@wealthspanhq.com with the subject "Data export request" and we'll send you a JSON file of everything we hold on you within 7 days. No questions asked.
Delete. Same address, subject "Delete my data." We'll permanently remove your D1 rows, all KV entries, and disconnect Schwab. Confirmation within 24 hours.
Audit. If you suspect we have something we shouldn't, ask. We'll either remove it or explain why it's necessary for the product to work.