Symbols LLC ("we," "us," or "our") is committed to protecting your privacy. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our trading platform and related services (the "Service"). By using the Service, you consent to the data practices described in this policy.
We share information with the following categories of service providers:
4.1 Brokerage Services
We transmit your self-directed trading orders and retrieve account information through your brokerage provider's OAuth 2.0 APIs. Your connection is authorized via industry-standard OAuth 2.0 protocol; we never receive or store your brokerage login credentials. Your OAuth access token is encrypted before it is stored (see Section 6.1) and is transmitted only over TLS-encrypted connections.
4.2 Market Data Providers
We obtain market data from the following providers to display quotes, charts, options data, and financial information:
- Financial Modeling Prep (FMP) — equity quotes, company profiles, financial statements, earnings data, and ratios
- Databento — equity and options market data, including historical OPRA options data
- Unusual Whales — options flow and related market data
- Finnhub — corporate actions such as stock splits and dividends
- Alpha Vantage — supplementary company fundamentals
- OpenFIGI — instrument identifier mapping
- Public sources — SEC EDGAR filings, FRED and U.S. Treasury data, and OpenAlex research metadata
- AISStream and OpenSky Network — vessel and flight positions for the map features
Requests to these providers contain the symbols, identifiers or map regions you look up, not your account or personal information.
4.3 AI Services
Chat conversations are processed through third-party AI APIs to provide AI-powered trading insights:
- OpenAI: Conversations processed via OpenAI's API. Usage is subject to OpenAI's data policies.
- Anthropic (Claude): Conversations processed via Anthropic's API. Usage is subject to Anthropic's data policies.
AI-generated content is for informational and educational purposes only and does not constitute investment advice.
4.4 Payment Processing
Stripe: Subscription payments are processed securely through Stripe. We do not have access to your full payment card details.
4.5 Email and Messaging Services
Resend: Transactional email (alerts, security notices and account emails) is delivered through Resend. We do not currently send SMS messages. If we introduce SMS alerts, we will name the provider here and ask for your consent before sending any text message.
4.6 Authentication
Clerk: We use Clerk's authentication services for secure login with Google, GitHub, and email/password.
4.7 Code Execution
Sandboxed execution: Notebook code and AI-agent workspaces run on our own infrastructure inside isolated containers (gVisor kernel isolation with CPU, memory and process limits). Deployed trading strategies run as a separate, resource- and time-limited process on our application host; moving them into the same container isolation model is in progress. No access to your local machine is granted.
4.8 Bank Account Linking (Plaid) and Money Movement (Alpaca)
Where automated withdrawals are available to you, you can link a bank account using Plaid, a third-party service that lets you sign in to your bank and authorize sharing your account details. We use Plaid's Auth product only, to verify the account and pass its details to your brokerage; we do not use Plaid to read your balances, transactions or identity information.
- Your bank login credentials are entered on Plaid's screens and never reach Symbols
- Your account and routing numbers are transmitted by Plaid to Alpaca, the broker that holds your brokerage account and executes transfers; Symbols never stores them
- Symbols receives and keeps only your bank's name, the last four digits of the account, the account holder's name and an encrypted Plaid identifier
- Withdrawals are executed by Alpaca as ACH transfers from your brokerage account to your linked bank account, and only after you approve each one; Symbols never holds your funds
- You can unlink a bank account at any time in Settings → Balances, which cancels any pending withdrawal proposals and asks Alpaca to remove the transfer relationship; bank-linking and withdrawal records are kept for at least two years afterwards (Section 7)
- You can also review and revoke Plaid connections at Plaid's own portal, my.plaid.com
By linking a bank account you grant Plaid the right, power and authority to act on your behalf to access and transmit your personal and financial information from your financial institution, and you agree to your information being transferred, stored and processed by Plaid in accordance with the Plaid End User Privacy Policy. We do not sell, rent or share bank account information obtained through Plaid with anyone other than Alpaca, for the purpose described above.
4.9 Infrastructure and Operations Providers
The following providers host or process data on our behalf as part of running the Service, or are services your browser connects to directly when you use a feature:
- DigitalOcean — application hosting (New York, United States)
- Neon — managed PostgreSQL database
- Cloudflare (R2) — object storage for market data, files you upload, database backups and the status page
- GitHub — source code, build pipeline and container images
- Google Cloud DNS — domain name resolution
- Sentry — error reporting, with tokens, keys and secrets removed before events are sent
- Resend — transactional email
- Video rooms: Jitsi Meet (8x8) — live rooms open the public meet.jit.si service; your audio and video go from your browser to 8x8 directly, not through our servers
- Map basemaps: Carto — map tiles are loaded by your browser from Carto's CDN
These, together with the providers named in Sections 4.1 to 4.8, are the third parties that process data on our behalf. We maintain a vendor register and will provide the current list on request at services@symbols.finance.
Alerts and notices are delivered by email and inside the app. Depending on your settings, these may include:
- Price alerts and trading notifications
- Order execution confirmations
- Account security alerts
- Service announcements
You can change your notification preferences in your account settings at any time. We do not currently offer SMS alerts. If we introduce them, we will ask for your consent before sending any text message, and you will be able to opt out at any time by replying STOP or updating your settings. Message and data rates may apply. Carriers are not liable for delayed or undelivered messages.
We implement multiple layers of security to protect your data:
6.1 Encryption
- In Transit: All data transmitted between your browser and our servers is encrypted using TLS 1.2 or higher
- At Rest: Sensitive credentials, including brokerage OAuth access tokens, are encrypted before they are written to our database using Fernet authenticated encryption (AES-128 in CBC mode with an HMAC-SHA256 integrity check) under a key derived with PBKDF2-HMAC-SHA256 (100,000 iterations) from a master key held in our server configuration and never in the application database
- Provider Encryption: Our database provider (Neon) and object-storage provider (Cloudflare) apply their own volume-level encryption at rest; nightly database backups are stored on Cloudflare R2 under Cloudflare's server-side encryption
- OAuth access tokens are never stored in plaintext; they are encrypted before being written to the database
- Payment card information is handled entirely by Stripe and never touches our servers
- All API calls to third-party services (Stripe, AI providers, brokerage services) use HTTPS exclusively
- WebSocket connections for real-time data use the secure WebSocket (WSS) protocol
6.2 Access Controls
- Authentication is managed through Clerk. You can enable multi-factor authentication (authenticator-app codes with backup codes) in Settings; MFA is currently optional and not yet required for all accounts
- API endpoints that read or change your data require a verified Clerk JWT; tokens are validated against Clerk's JWKS endpoint
- Infrastructure access is restricted to the founders via SSH key authentication; password login to our servers is disabled
- Database access uses parameterized queries (sqlx) to prevent SQL injection
- Requests are validated against typed schemas (serde) on all API endpoints
6.3 Monitoring and Incident Response
- Server errors are reported to our error-tracking service only after tokens, keys, credentials and other sensitive fields have been removed
- Login history (time, IP address, device and browser) is recorded and shown to you in Settings so you can spot unfamiliar sign-ins
- In the event of a security incident affecting your data, we will notify you without undue delay (our target is within 72 hours of confirming it) and may revoke OAuth tokens and sessions as a precaution
6.4 Code Execution Security
- Notebook code and AI-agent workspaces run in isolated containers (gVisor) on our own infrastructure, with no access to other users' data
- Containers are subject to CPU, memory, process and time limits to prevent resource abuse
- Deployed trading strategies run as a separate, resource- and time-limited process; moving them into the same container isolation model is in progress
- Orders placed by strategies and by the AI agent pass through server-side risk checks and kill switches before they reach your brokerage
6.5 Data Backup and Recovery
- Database backups are taken nightly, verified after upload, stored on Cloudflare R2 under server-side encryption and retained for 30 days; our database provider additionally supports point-in-time recovery
- Restore procedures are documented and we are introducing scheduled restore drills, with results recorded in our internal security log
- Critical user data (account information, trade records) is prioritized in recovery procedures
6.6 Third-Party Security
- Stripe: PCI-DSS Level 1 certified payment processor
- Clerk: Authentication provider with built-in MFA support
- All third-party API communications use TLS-encrypted connections
- Credentials for third-party services are held in server-side configuration, never in the application database
We keep personal information for as long as your account is active, and for the periods below afterwards:
- Account and profile information: the life of your account, then deleted or anonymized within 30 days of a verified deletion request
- Brokerage OAuth access tokens: deleted immediately when you disconnect your brokerage account or delete your Symbols account; encrypted tokens are not retained after disconnection
- Trading records (orders, fills, positions): up to 7 years, to meet financial record-keeping obligations
- Bank-linking and withdrawal records (bank name, last four digits, account holder name, approvals and transfer events): at least 2 years after the account is unlinked or the transfer completes; approval and transfer records cannot be edited once written
- Login history and security records: up to 6 years
- Database backups: 30 days; a deleted account's data may persist in backups for up to that period
- Server logs and error reports: kept for operational troubleshooting and rotated automatically; we are moving to a fixed 90-day retention
How to delete your account
Email services@symbols.finance from the address on your account. Within 30 days we will delete your login, disconnect your brokerage account, unlink any bank accounts, delete your uploaded files and anonymize your remaining profile fields. Records we are required to keep (the trading, money-movement and security records above) are retained for their stated periods. Subscription and payment records are retained by Stripe under its own policies.
Depending on your location, you may have the following rights:
- Access: Request a copy of your personal data
- Correction: Request correction of inaccurate data
- Deletion: Request deletion of your personal data
- Portability: Request your data in a portable format
- Opt-out: Opt out of marketing communications
- Do Not Sell: California residents may opt out of the sale of personal information
To exercise these rights, contact us at services@symbols.finance.
California residents have additional rights under the California Consumer Privacy Act. We do not sell personal information, and we do not sell, rent or share bank account information obtained through Plaid. You may request disclosure of information collected, used, or disclosed about you, and request deletion of your personal information.
Symbols LLC is a United States company and your information is stored and processed in the United States by us and by the providers listed in Section 4. If you use the Service from outside the United States, your information will be transferred to and processed in the United States.
The Service is not intended for individuals under 18 years of age. We do not knowingly collect personal information from children. If we learn we have collected information from a child, we will delete it promptly.
We may update this Privacy Policy from time to time. We will notify you of material changes by posting the updated policy on our website and updating the "Last Updated" date. Your continued use of the Service after changes constitutes acceptance of the updated policy.