Skip to content

Privacy Policy

Last updated: October 2026

Informed Portfolio is built to need as little of your personal data as possible. Here's exactly what we collect and why, in plain English.

1. What we collect

Without an account: analyses run anonymously; we keep standard server logs (IP, timestamps) for security and abuse prevention, and we record product usage (which pages and features are used, and where visitors arrive from): without any cookie until you answer the analytics question, with a first-party analytics cookie if you accept, and not at all if you decline (details and how to change your mind in §4). With an account: your email, an irreversibly hashed password (bcrypt: we never store or see the plain password), an optional display name, your answer to the analytics question, and the things you choose to save: portfolios (tickers and weights), analyses, monitoring settings and, in a portfolio's plan, a current value, a goal and a monthly contribution only if you enter them. If you ask us to email you a report (“Email me this report”), we keep that address for 30 days. If you sign up for the newsletter, we keep your address from the moment you confirm it until you unsubscribe; an address that is never confirmed is deleted after 7 days. If you write to us through the contact form we also store that message with your name and email address, so your enquiry survives an email-delivery failure (see §7 for how long).

2. What we use it for

To run the product: signing you in, saving and re-opening your work, sending the emails you asked for (monitoring alerts, reports, the newsletter), and enforcing plan limits. That's it.

3. What we never do

We do not sell your data, share it with advertisers, or build advertising profiles. We never ask for (and you should never enter) brokerage credentials or account numbers: portfolios here are ticker lists and percentages, not linked accounts. A portfolio's plan can hold a current value, a goal and a monthly contribution, but only if you choose to enter them. (One honest caveat: if you use the optional screenshot import, whatever is visible in the image you choose to upload is sent for reading; see §6.)

4. Cookies & analytics

We use only first-party cookies. Essential ones keep the app working: an httpOnly session cookie so you stay signed in, a short-lived security cookie during Google sign-in, a small preference cookie that remembers which entry lane you picked, and a consent cookie that remembers your answer to the analytics question (it holds only “granted” or “denied”, for up to a year). When you run the free tools without an account, we also set a functional device cookie (a random, signed ID, kept for up to a year) and keep a 30-day usage counter against it, plus a looser counter keyed to a keyed hash of your IP address (a one-way code made with a secret key, never the address itself), to enforce the free allowance of 10 runs per 30 days. The same keyed hash keeps that limit, and the test group we measure the feature with, the same if you clear your cookies. We measure the feature only as daily totals per group (runs completed, limits reached, sign-ups), with no device ID or IP address attached. None of this is used for advertising or to track you across sites, and elapsed counters are deleted automatically. Signing in removes the limit and the need for them. For analytics we use PostHog, which sets a first-party analytics cookie (plus a matching browser-storage entry) holding a random ID, so it can recognize a returning browser and measure which pages and features are used. It receives page paths (never the query string, where holdings and links travel), feature events, how long a page stayed open and how far down it was scrolled, campaign tags, the site you came from, and standard device details (browser, operating system, screen size), and never your name, email address, holdings or balances. When you sign in, we link that activity to your account by an opaque account ID and your plan. It is first-party only, with no cross-site or advertising tracking, and we never sell or share it. We ask for your consent before setting this cookie: it isn't set unless you accept, and you can change your choice anytime from “Cookie settings” in the footer; withdrawing deletes the analytics cookie and its storage. Until you answer, we count your visit without the cookie: nothing is stored in your browser, and PostHog tells visits apart with a code it works out on its own servers from your connection details and a secret that changes every day, so it cannot recognize you from one day to the next; it records the pages and features used, never with your account, and keeps no IP address. Declining stops that too: nothing is sent at all. A browser that sends Do Not Track or Global Privacy Control counts as a “no”. A few account events are recorded by our server rather than your browser (signing up, starting a trial, subscribing or cancelling). They follow the same choice: they are sent only for an account whose holder accepted analytics, never while the browser sends Do Not Track or Global Privacy Control, and never for a visitor without an account. We also use Cloudflare Web Analytics for aggregate traffic stats, which is cookieless (and needs no consent).

5. Service providers, and where they process data

We use a small number of providers to operate the product, and share the minimum each one needs. Google Cloud runs the app and Neon (a Databricks company) hosts the database (on Amazon Web Services), both in the United States (Oregon). An email delivery service (Resend, in the United States) receives your email address and the contents of the emails we send you. Stripe handles payments: it receives your email address and takes your card details directly, and we never see or store your card number. A market-data provider (Twelve Data) receives the tickers and search terms being looked up, never who is asking. PostHog (product analytics, hosted in the United States) receives page and feature events and, once you sign in and only if you accepted analytics, an opaque account ID and plan; it is set not to store IP addresses. Cloudflare provides the cookieless traffic stats (Web Analytics) and the human check on some forms (Turnstile), which sees your IP address and browser signals to tell people from bots. Anthropic runs the AI features (§6), and Google signs you in only if you choose “Continue with Google”. The analytics providers never receive your name, email address, holdings or balances. Several of these providers are in the United States. Where data protection law requires it, our transfers to the providers that process data for us rely on the EU-U.S. Data Privacy Framework (with its UK and Swiss counterparts) where the provider is certified, and otherwise on the EU Standard Contractual Clauses in the provider's data processing terms. Google, when you sign in with it, acts as an independent controller under its own privacy policy, as do Stripe (for its own fraud prevention and legal compliance) and Cloudflare (to improve its bot detection). Email you send us is the exception: mail to any @informedportfolio.com address, including support and account-deletion requests, is forwarded by ImprovMX (an email forwarding service in the United States) to our inbox, a personal Gmail account, and both services handle it under their own terms, not a data processing agreement with us.

6. The AI provider, including screenshot import

Two features send data to our AI provider (Anthropic's API), and it's worth being specific about what: AI Insights sends the condensed, derived figures from the analysis being explained, not your email address or account details. Screenshot import sends the image you upload, because reading the holdings out of it is the whole feature. Before that image leaves our servers we resize it to a pixel ceiling and re-encode it, which strips embedded metadata such as camera and location EXIF tags; we don't store the image afterwards, and we never use your data to train models. Anthropic processes it as our service provider under their API terms. A brokerage screenshot can show your name, an account number and your balances, so if you'd rather not send those, crop to the holdings table first, or type the tickers in instead. Screenshot import is entirely optional and every tool works without it.

7. Retention & deletion

Saved work is kept while your account exists. On the Free plan a saved analysis stays open for 30 days and then locks: it is kept, you can still export or delete it, and upgrading opens it again; nothing in your account is deleted because of a plan change. Deleting a portfolio, analysis or monitor removes it, together with any public share link made from it. Messages you send us through the contact form are stored (your name, email address and the message itself) so that an enquiry is never lost if our email delivery fails; we keep them for up to 24 months and then delete them automatically. Report-email addresses are deleted after 30 days; newsletter addresses are deleted 30 days after you unsubscribe. Security logs (two-factor checks, account-security changes and administrator actions) are kept for 12 months. To get a copy of your data, use “Download my data” on your account page: one file with everything saved in the account and what we keep about it. To delete your whole account, use “Delete my account” on your account page (you'll be asked to sign in again). We delete the account and everything saved in it, its public share links, and every record kept under its email address (report emails, the newsletter, contact messages); an active subscription is cancelled at once, with no refund for the unused time; your analytics record is erased from PostHog; and security-log entries lose your email address and are kept under a random pseudonym until their 12 months run out. Stripe keeps its own payment records as the law requires. To delete a contact message you've sent us, email us too.

8. Security

Passwords are bcrypt-hashed, sessions are httpOnly cookies, traffic runs over HTTPS in production, and API keys are kept server-side only. No system is perfectly secure, but we follow standard practices and keep the data we hold to a minimum.

9. Changes & contact

If this policy changes materially we'll note it here with a new date. Questions: support@informedportfolio.com or the contact page.