Privacy Policy
Last updated October 19, 2026
Overview
This policy explains what information Clarity collects, why we collect it, who we share it with, and the choices you have. It covers the Clarity iOS app, the Clarity web app, and the public clarityportfolio.co marketing site and waitlist (together, "Clarity" or "the app").
The short version: Clarity is a portfolio intelligence tool, not a broker. We never ask for your bank or brokerage login, account numbers, or routing numbers. You tell Clarity what you hold by typing it in; we don't pull it from anywhere. We don't run ads, we don't use any advertising or cross-app tracking SDKs, and we don't sell your data to anyone, ever. In the iOS app we measure how the app is used, with our own servers and with PostHog, an analytics service hosted in the EU — see “In-app usage analytics” below. The website runs no analytics.
Who we are
Clarity is currently an independently operated product, built and run by its founder. It is not yet organized as a registered company: this policy is issued by the individual who operates Clarity, referred to here as "we," "us," or "Clarity." If Clarity is later operated by a registered legal entity, this policy will be updated to name it.
For any privacy question or request, contact Founder@clarityportfolio.co.
What we collect
Account information
In the iOS app the primary way to create an account is Sign in with Apple. Apple shares your name (on your first sign-in only) and your email address, or, if you choose Apple's "Hide My Email", a private relay address that forwards to your real inbox. Whichever address Apple provides becomes your account email. You can also create an account with an email address and password, or sign in on the web via a one-time "magic link" email. Passwords are handled by our authentication provider, Supabase, and are stored only as a salted hash. We never see or store your password in plain text.
Trying Clarity before signing up: when you first open the iOS app it creates a temporary anonymous account (a random identifier with no name, email, or other personal data) so you can set up your watchlist and see your first brief before deciding to sign up. If you create an account at the end of onboarding, that setup carries over to it. An anonymous account contains nothing that identifies you, and you can erase it at any time via Settings → Delete account.
Portfolio & watchlist data
Holdings you add (ticker symbol, number of shares, and optionally your average cost) and tickers you add to your watchlist. This is entirely self-reported: you type it in manually. Clarity does not connect to any bank, brokerage, or financial account to import this data.
Waitlist & contact information
If you reserve a spot on the public waitlist, we collect your name, email address, phone number, and country, to hold your place, show your position in line, and email you updates (including one welcome email). We also record where your signup came from: the campaign tag on the link you followed, or the referring site. Phone numbers are used only to reach beta testers about the app and are never shared for marketing. You can unsubscribe from any marketing email at any time using the link in the email.
App preferences
Display settings such as theme (light/dark) and display currency are stored locally on your device. Your onboarding answers (your goal, experience level, and how you'd like Clarity to explain things) and your chosen brief cadence are stored with your account, so your briefs are written at the same level wherever you sign in.
Notifications
With your permission, Clarity sends push notifications: a morning brief at a time you choose, an alert when one of your positions moves unusually for that stock, and a Sunday digest. Each type can be switched off individually in Settings, and unprompted alerts are capped at two per day. To compose these messages, our servers read your holdings and watchlist without you having the app open — that is the entire purpose of a notification, and it is the only server-initiated use of your portfolio data. Delivery goes through Apple's notification service using a device push token we store with your account; deleting your account deletes the token, and you can withdraw notification permission in iOS settings at any time.
Portfolio screenshot import
You can add positions by importing a screenshot from another broker app. The image you select is sent to Google's Gemini API solely to read the tickers and quantities on it, processed transiently, and not stored by us or used for anything else. Nothing is added to your portfolio until you have reviewed and confirmed each extracted row — a screenshot names a company, not an exchange, so confirmation is where you pick the right listing.
Technical & usage data
Standard request metadata such as IP address is processed transiently to enforce rate limits and block bots on public forms (see BotID, below), and to operate our servers. We also record aggregate, non-identifying counters of how often we call our upstream data providers (for example, "Twelve Data was called 40 times for AAPL today") so we can size our subscriptions correctly. These counters are keyed by ticker symbol and provider, never by user, and are purged after 90 days.
In-app usage analytics
To improve Clarity during the beta, the app records how it is used: when it’s opened, which screens and stocks are viewed, how far you get through onboarding and how long each step takes, whether notifications were allowed, and whether the app hit an error. These events are recorded by our own servers and by PostHog, a product analytics service we use in its EU cloud (Frankfurt, Germany), together with device and app details: device model and type, iOS version, screen size, language and time zone, and app version and build. They are tied to a random identifier — before you sign up, one PostHog creates for this installation; after, your account’s — never to your name or email address. No advertising identifier, no fingerprinting, no tracking across other apps or websites, no screen recording, and IP addresses are not stored with these events. Our own copy is removed automatically when you delete your account, and in any case after 12 months. PostHog’s copy is kept for at most 12 months; to have it deleted sooner, email us and we will do it within 30 days.
What we don't collect
Clarity does not collect or request:
- Bank account, brokerage, or payment card credentials
- Government ID, Social Security Number, or tax information
- Precise or background location
- Your contacts, photos, camera, or microphone
- Advertising identifiers, and we run no advertising or ad-tracking SDKs
How we use it
- To create and secure your account, and keep you signed in across sessions
- To show your portfolio and watchlist, and generate your daily brief
- To send account-related email (magic links, welcome email) and, if you're on the waitlist, occasional product updates you can opt out of
- To detect and block bots, spam, and abuse on public forms
- To monitor and improve the reliability of the service, and to size our data subscriptions against real usage
AI-generated narratives
Stock detail pages include AI-written narrative text (a short "signal," what changed, and what to watch) generated by Google's Gemini API. These narratives are generated per ticker symbol from public market data and public news headlines, for example, AAPL's narrative is generated once from AAPL's price data and news, then shown to every user who views AAPL. Your personal holdings, watchlist, account details, or identity are never included in the data sent to Gemini.
Who we share data with
We share data only with the service providers ("subprocessors") that help us run Clarity, each bound by contract to use it solely to provide their service to us:
| Provider | Purpose | Data involved |
|---|---|---|
| Supabase | Account authentication, session management, and database hosting (holdings, watchlist, account records). | Email address (or Apple private-relay address), Apple sign-in identifier, hashed password if you set one, authentication tokens, portfolio/watchlist entries, onboarding preferences. |
| Google (Gemini API) | Generates the AI narrative text (the signal, "what moved," "what it means," "what to watch") shown on stock detail pages. Also reads portfolio screenshots you choose to import, to extract the positions on them. | For narratives: ticker symbol, public market data, and public news headlines only — never your holdings, identity, or account information. For the optional screenshot import: the image you select, sent solely to read tickers and quantities off it; we do not store the image, and every extracted row is shown to you for confirmation before it is added. |
| Apple (APNs) | Delivers push notifications (your morning brief, unusual-move alerts, the Sunday digest) to your device. | Your device push token and the notification text. The token is stored with your account and deleted with it. |
| Twelve Data | Live and historical price quotes, charts, and fundamentals data. | Ticker symbol queried. Not linked to your identity by the provider. |
| NewsAPI.ai | News articles referenced in stock briefs. | Company names and topics queried. Not linked to your identity by the provider. |
| Resend | Delivers the waitlist emails (welcome, product updates) and manages the mailing list. Sign-in magic links are delivered by our authentication provider (Supabase). | Name and email address; unsubscribe status. |
| PostHog | In-app product analytics for the iOS app: which screens and stocks are viewed, how far onboarding gets, and errors, so we can improve the app. Hosted in the EU (Frankfurt, Germany). | The usage events described under "In-app usage analytics", a random identifier (the installation’s before sign-up, your account’s after; never your name or email), and device and app details (model, iOS version, screen size, language, time zone, app version). IP addresses are not stored with the events. |
| Hetzner | Hosts the server that streams live price updates from our price provider. | Ticker symbols only. No personal information. |
| Vercel | Hosts the Clarity website and application (our server functions run in Frankfurt, Germany), and provides BotID, an invisible bot-detection challenge that loads across the site to protect the signup form. | Request metadata (IP address, request headers) and the browser and device signals the bot-detection challenge collects to tell humans from bots. |
Beyond these providers, we disclose information only if required by law or legal process, to protect the rights, safety, or property of Clarity or our users, or in connection with a merger, acquisition, or sale of assets, in which case we will notify you before your information becomes subject to a different privacy policy.
We don't sell your data
We do not sell, rent, or trade your personal information to third parties for their own marketing purposes, and we do not run advertising of any kind inside Clarity.
Retention
- Push tokens are kept while notifications are enabled for your account and removed when the account is deleted.
- Account, holdings, and watchlist data are kept while your account is active and deleted when you delete your account. Deleting your account permanently removes your holdings and watchlist records, and also removes your waitlist entry and mailing-list contact for the same email address.
- Waitlist entries are kept until you unsubscribe or until the waitlist is closed out at launch.
- Aggregate, non-identifying API usage counters are kept for 90 days, then deleted.
- In-app usage events: our own copy is deleted with your account and in any case after 12 months; the copy at our analytics provider (PostHog) is kept for at most 12 months, or deleted within 30 days when you ask us.
- Our email provider (Resend) retains standard delivery logs for the emails it sends on our behalf, under its own retention policy.
Security
- All traffic between the app and our servers is encrypted in transit (HTTPS/TLS).
- Our database enforces row-level security: the database itself, not just the app, restricts every query so a user can only ever read or write their own holdings and watchlist rows.
- On the iOS app, your session is encrypted on-device with AES-256 before it touches disk, with the decryption key held in the iOS Keychain rather than stored as plain text.
No system is 100% secure, but this is the standard we hold ourselves to.
Your rights & choices
You can delete your account at any time directly in the app: go to Settings → Delete account. This immediately and permanently removes your account, holdings, and watchlist; no email or waiting period required (the copy of your usage events at our analytics provider is deleted on request; see Retention). You can also remove individual holdings or watchlist entries, and sign out, directly in the app at any time.
For anything account deletion doesn't cover (access, correction, export, or a question about your data) email Founder@clarityportfolio.co.
If you're in the EU/EEA or UK, data-protection law (GDPR/UK GDPR) gives you the right to access, rectify, erase, restrict, or port your data, and to object to certain processing. If you're a California resident, the CCPA gives you the right to know what's collected, to delete it, and to opt out of "sale" or "sharing". We don't sell or share personal information as those terms are defined by the CCPA. We honor these rights for all users, regardless of location.
International transfers
Our database (Supabase), our server functions (Vercel), and our analytics (PostHog) run in Frankfurt, Germany. Some of our other service providers operate infrastructure in other regions, including the United States. Where personal information is transferred outside the EU, our providers rely on standard safeguards such as Standard Contractual Clauses.
Children's privacy
Clarity is not directed to, and we do not knowingly collect personal information from, anyone under 16 years old. If you believe a child has provided us personal information, contact us and we will delete it.
Beta & TestFlight notice
Clarity is currently in a limited beta: app access is granted in waves via Apple TestFlight invitations sent from the public waitlist. During this period the app is under active development: features, data sources, and the specifics described in this policy may change as the product evolves. We'll update the "Last updated" date above whenever this policy changes, and material changes will be called out in the app or by email.
Changes to this policy
We may update this policy as Clarity's features, providers, or legal obligations change. We'll post the revised policy at this URL with an updated "Last updated" date. If a change is significant, we'll take reasonable steps to let you know, such as an in-app notice or an email.
Contact us
Questions, requests, or concerns about this policy or your data: Founder@clarityportfolio.co